Bonjour,
J'ai fait un petit montage très simple avec un shield Grove monté sur carte Arduino Uno. Jai monté 1 émetteur Grove IR (réf : 101020026) en D3 et un récepteur Grove IR (réf : 101020016) en D2. (j'ai également essayé sur d'autres ports). Mon objectif est de réaliser une barrière IR et d'afficher le résultat sur le port série.
Le problème ou plutôt les problèmes rencontrés sont les suivants : (dans l'ordre de mes priorités de résolution)
La détection se fait à moins de 1cm (ces types de composants sont donnés pour beaucoup plus réf : Grove - Infrared Emitter | Seeed Studio Wiki) ;
Le module IR chauffe fortement ;
Au niveau de mon programme, le récepteur est à 1 lorsqu'il ne reçoit pas et à 0 lorsqu'il reçoit.
La carte est alimenté par le port USB de mon portable. J'ai essayé également avec une alimentation externe de la carte Arduino mais aussi de passer la carte en 5V et 3,3V. J'ai testé le module récepteur IR, il capte bien les signaux de ma télécommande de télévision.
J'ai fait plein de recherches et je ne trouve rien. Je fais peut-être une erreur grossière mais je ne la vois pas et suis complètement bloqué..
Je remercie par avance celui ou celle qui pourrait m'aider.
Je joint le programme me permettant de piloter ma carte (version Ardublock et sa traduction effectuée par Ardublock compréhensible par l'Arduino)
Sinon je crois que la diode peut consommer jusqu'à 200mA c'est bcp trop pour une pin de l'Arduino mais je n'utilise pas leur module / shield donc je ne sais pas comment ils gèrent le courant
J'ai exactement le même problème. Et la réponse donnée ne m'aide pas (trop d'anglais !).
Et comme je débute avec arduino et grove, j'utilise mblock pour programmer et pas le langage arduino.
En fait, je ne vois pas ce qui pose problème.
Est-ce que je dois racheter un module grove émetteur ?
il ne faut pas voir l'IR comme un laser qui s'allume et est capté de l'autre côté puis coupé si quelqu'un passe devant. l'infra-rouge est extrêmement perturbé par des rebonds, la lumière du jour, des sources de chaleur etc.. Donc pour pouvoir vraiment déterminer si le récepteur reçoit bien l'émission, il faut moduler le signal - faire clignoter la diode avec une certaine fréquence et éventuellement moduler l'amplitude et de l'autre coté vous essayez de détecter si le signal reçu correspond exactement à cela ou pas. S'il n'y a pas de perturbation, vous recevez le signal direct et il y a quasi conformité, s'il y a une obstacle, vous recevrez des rebonds sans doute mais il y aura eu des décalages de phase ou d'intensité ou de fréquence et donc vous pouvez détecter qu'il y a un problème sur le trajet du signal IR direct. Il y a aussi ensuite des phénomènes de "fatigue" côté réception si le récepteur est soumis à un signal constant, il finit par ne plus le voir (en simplifiant) donc vous ne pouvez pas laisser l'émetteur allumé en permanence.
Ce que vous faites dans votre code avec __ardublockDigitalWrite(3, HIGH); c'est juste allumer plein pot la LED IR... donc c'est pas prévu pour fonctionner comme cela.
Les librairies IR fournissent la modulation / démodulation nécessaire au bon fonctionnement de ce genre d'émetteur/récepteur.
Votre montage fonctionnerait avec un laser et une photodiode ou photorésistance de l'autre côté par exemple.