dimanche 3 juin 2012

Lecture multi-senseurs

Voila bien longtemps que je n'ai plus eu l'occasion de blogger sur ArduinoCar.
C'est que les activités de MCHobby (y compris les traductions française) nous occupent à plein temps.
Et oui, je dis nous car depuis sa création, je peux compter sur la précieuse aide de mon épouse.

Ma voiture est-elle folle?
Dans un précédent article, je relatais un problème que je pensais être un bug logiciel.
En effet, ma voiture se met en marche avant (état asMove) puis passe immédiatement dans l'état asChangeDir pour éviter un mûr ou un obstacle qui n'existe pas!

C'est en traduisant une documentation AdaFruit sur les senseurs pĥoto-sensibles (pour MCHobby) que j'ai trouvé la raison à mon problème.

Lecture multi-senseur et lectures erronées
Si vous utilisez plusieurs senseurs de type analogiques, vous pourriez rencontrer quelques problèmes. Voici donc le contenu issus du cas des photo-résistance... qui s'applique aussi aux senseurs Sharp Infra-Rouges.

Si vous ajoutez plusieurs senseurs, vous pourriez remarquer que la température (détection de niveau lumineux) est inconstante. Cela indique que les senseurs interfèrent les un avec les autres lorsque vous passer la lecture analogique d'une broche à l'autre.

Cela peut être corrigé en faisant deux lectures (avec pause et ignorant le résultat de la première lecture) sur le premier senseur. Cette méthode est décrite dans l'article "How to multiplex analog readings what can go wrong with high impedance sensors and how to fix it".

En effet, si le senseur présente une haute impédance et qu'il y a une capacitance (capacité ou toute sorte de matériel équivalent) sur le convertisseur ADC, cela prendra un certain temps pour que la capacitance se charge.
Raison de la première lecture erronée :-)

Vous trouverez plus de détail à ce sujet à partir du wiki de MCHobby.