Compatibilité autres kit au niveau du timer d'interruption

Un shield de pilotage pour 4 moteurs à courant continu ou 2 moteurs pas à pas, qui permet une alimentation sur 12V et qui n'utilise que 4 sorties Pwm (sur 6) et 2 entrées analogiques (sur 6) de l'Arduino

Compatibilité autres kit au niveau du timer d'interruption

Message non lude jbayard » Mer 12 Oct 2011 15:26

Tout d'abord bravo pour ce rotoshield, pratique (4 moteurs DC) et bien documenté.

Je suis débutant et j'accompagne mon fils dans la découverte de la robotique.
Nous avons monté ce shield sur une plateforme DFRobot 4 roues (4WD).
Jusque là, pas de problème et tout fonctionne bien (en appliquant la modif indiquée sur le forum (http://forum.snootlab.com/viewtopic.php?f=31&t=155#p536) sur l'initialisation des moteurs pour que ceux-ci tournent au même rythme).

Nous avons ensuite ajouté un kit télécommande IR ce qui a conduit a un fonctionnement erratique.
En analysant le code, nous sommes remonté jusqu'à un conflit d'interruption car les librairies du rotoshield et de pilotage IR (librairie IRremote basée sur NECIRrc) utilisent toutes les deux le timer 2 !

En bibouillant (cf. TCCR ...) les sources de la libraires IR (plus simple que celle du rotoshield), on arrive à contourner le problème.

Ensuite, en cherchant sur le web (merci google), nous avons trouvé une librairie modifiée permettant de choisir le timer à utiliser. Je vous donne l'adresse car celle-ci est très pratique : http://www.pjrc.com/teensy/arduino_libraries/IRremote.zip (et le site de présentation : http://www.pjrc.com/teensy/td_libs_IRremote.html)
Attention : le timer 2 utilise les pins 3 ou 11 alors que le timer 1 utilise les PIN 9 ou 10.
jbayard
 
Messages: 20
Inscription: Mer 12 Oct 2011 15:06

Re: Compatibilité autres kit au niveau du timer d'interrupti

Message non lude Lionel » Lun 7 Nov 2011 16:12

Bonjour,

merci pour cette information que j'avais manqué !!!

Lionel
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Compatibilité autres kit au niveau du timer d'interrupti

Message non lude Copernic » Jeu 6 Juin 2013 00:41

Bonsoir,
Pourriez-vous me venir en aide??? svp :-)
Pourriez-vous me dire ce que vous avez modifié pour faire cohabiter le lib IRremote et les signaux PWM pour un rotoshield?

Je tourne sous Arduino 1.04 & 1.5.2 afin de faire mes tests.
Mais dans les 2 cas j'ai un conflits.

Quand je met la libraire IR venant de: https://github.com/shirriff/Arduino-IRremote
Si j'importe les deux libs:
#include <IRremote.h> & #include <IRremoteInt.h>, j'ai une erreur de compilation:

Arduino_IRremote_master/IRremote.cpp.o: In function `MATCH(int, int)':
/Users/Copernic/Downloads/Arduino.app/Contents/Resources/Java/libraries/Arduino_IRremote_master/IRremoteInt.h:176: multiple definition of `MATCH(int, int)'

Si je supprime #include <IRremoteInt.h>, ca compile mais ca ne fonctionne pas.
Enfin, si ca fonctionne tant que j'envoie 255 sur mes pins de sorties (pour le rotoshield).

Si je modifie le fichier IRremoteInt.h comme suit pour selectionner un autre Timer, ca ne change rien...
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
#endif

Si je n'active pas la IRremote: //irrecv.enableIRIn(); Je peux sans probleme faire tourner les moteurs
avec un PWM quelconque...
Pour infos, mon dernier montage utilise un Arduino Uno avec:
le capteur IR sur A0
et les com PWM pour les moteurs suivants:
com 1 = 11
com 2 = 10
com 3 = 6
com 4 = 5

Habituellement, je me débrouilles plus tôt bien avec mes montages mais je ne suis pas un expert surtout avec les libs... Et là je deviens fou...
Un petit coup de main serait bienvenu...

Un grand merci :-)
Copernic
 
Messages: 1
Inscription: Jeu 6 Juin 2013 00:23


Retourner vers Rotoshield

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron