Voila j'ai un petit problème de parasites sur mes capteurs IR Sharp. je vous expose les faits:
je possède trois capteur IR à l'avant de mon robot (1 au centre, 1 à gauche et un autre à droite) couplés à mon arduino uno.
Pour info, j'ai soudé un condensateur comme recommandé dans la datasheet pour éviter les parasites. http://www.robotshop.com/eu/content/PDF/datasheet-gp2d120xj00f.pdf
Voir photo: http://darylrobotproject.wordpress.com/2012/12/09/daryl-et-son-chassie-finalise/p1020268/
J'ai l'algo suivant:
Je fais avancer mon robot, puis dans mon code j'ai:
rightSensorCm = getRightIRSensor(); delay(50); centerSensorCm = getCenterIRSensor(); delay(50); leftSensorCm = getLeftIRSensor(); delay(50); ... puis algo de comparaison...
avec
int getLeftIRSensor() { int leftSensorValue; leftSensorValue = irValueToCm(analogRead(leftSensorIr)); sendValue('X',leftSensorValue); return leftSensorValue; } ...
Ça marche plutôt pas mal, mais entre le moment ou mon robot avance, et la détection d'un obstacle (et donc l'arrêt du robot) j'ai 150ms qui se sont écoulé (3*50ms), ce qui est assez conséquent pour mon robot qui avance relativement vite.
j'ai donc fait un petit test en réduisant mes delay(50) par des delay(5) pour voir.
La, j'ai constaté que ca partait complètement en cacahuète (mon robot s'arrête sans cesse car la mesure du capteur gauche tombe sous le seuil de sécurité que j'ai programmé).
Bon la je me dis bizarre. Je coupe les moteurs, idem toujours le problème, donc pas des parasites moteurs...
Je pense à un problème d’interférence entre les trois capteurs IR.
Pour en avoir le coeur net, je pose mon robot sur ma table (sans obstacle devant) Voir photo de mon robot plus haut.
Pour comprendre imaginez le robot devant vous la tête au dessus, (avant du robot vers l'avant).
Je met mon doigt sur le capteur IR se trouvant sur la droite du robot -> le capteur IR gauche déconne toujours à plein tube
Je met mon doigt sur le capteur IR se trouvant au milieu du robot (sous le capteur ultrason) -> le capteur IR gauche marche parfaitement!

Il s'agirait donc bien d'un problème d’interférence entre le capteur du milieu et gauche?
Ce problème n’apparaît pas lorsque j'ai mes delay à 50.
Est-ce le rayon du capteur du milieu qui arrive dans le capteur de gauche, car la prise de mesure du capteurs gauche se fait trop tôt?
Je pense qu'en mettant des delay de 50, la probabilité que de tomber sur une mesure parasite est vraiment réduite.
En supprimant le delay, je fais plus de mesures, j'ai donc plus de probabilité de tomber sur une mesure erroné.
Y'aurait-il une solution pour éviter ces parasites? je pense que j'aurais du inverser les capteur gauche et droite afin que les rayons se croisent et pour que les capteur du milieu et gauche ne soient pas dans le même "sens". Seulement ca m'embête d’apporter cette modification.
On m'a conseillé de mettre la pin à high avant de prendre la mesure puis de la remettre à low après la mesure (pour chacun des capteurs) afin de ne pas les parasiter entre eux. Est-ce la bonne solution?
Merci pour votre aide.