Bonjour bonjour,
Petit souci, petite question que je me permets de vous soumettre. Je viens récupérer dans un "buffer" des données stockées sur plusieurs bit qui correspondent à la distance en mm d'une roue codeuse . Jusque là pas de problème !
J'ai défini mes ports I/O :
#define PIN_D0 4
#define PIN_D1 5
#define PIN_D2 6
#define PIN_D3 7
#define PIN_D4 8
#define PIN_D5 9
#define PIN_D6 10
#define PIN_D7 11
#define PIN_RSTNX A4
#define PIN_RSTNY A5
#define PIN_OE A0
#define PIN_SEL1 A1
#define PIN_SEL2 A2
Jusque là tout va bien, et je mesure correctement ce que je souhaite mesurer à savoir pour un tour de roue :
Note : ED = encodeur droit, et EG encodeur gauche.
Le problème est que je dois libérer absolument (et c'est la seul que je puisse changer) la pin 11 (car PWM) pour un autre besoin.
=> Pas de soucis il y a la PIN 12 disponible sur la carte arduino micro ..
Me voilà qui fait ma petite bidouille pour changer mon cablage et inverser electriquement ma pin 12 et ma pin 11, et fais ensuite la modif dans le code (rien de sorcier à priori) :
#define PIN_D0 4
#define PIN_D1 5
#define PIN_D2 6
#define PIN_D3 7
#define PIN_D4 8
#define PIN_D5 9
#define PIN_D6 10
#define PIN_D7 12
#define PIN_RSTNX A4
#define PIN_RSTNY A5
#define PIN_OE A0
#define PIN_SEL1 A1
#define PIN_SEL2 A2
Et là surprise ... ca marche pas (valeurs mesurées complètement à l'ouest, le D7 étant le pin le plus "lourd"). Pour autant le reste de mon code est identique. Alors la question que je me pose est : Y-a-t-il une particularité sur la PIN 12 ??? (A part qu'elle se trouve tout en bas x) )
Des idées sur ce que j'aurai pu louper ? :s
PS : Si ca vous intéresse, on utilise ici un HTCL2032 cadensé avec un quartz à 32MHz, très utile pour éviter des traitements important à notre petite arduino. Le code source est en PJ.
[OEZ]Mesure en mm des encodeurs.txt (5.76 KB)