0xffa25d
Les règles vous demandent de ne pas publier de code partiel car ceux d’entre nous qui essaient de vous aider ne comprennent pas bien ce que vous avez fait. Par exemple, vous parlez d’interruptions qui ne sont pas présentes dans le code présenté.
Merci pour votre réponse. En suivant vos instructions, j’ai lu les règles du forum et j’ai édité le post (je vois que vous aimez l’appeler ainsi) avec le code complet et les liens postés en utilisant des balises.
Je viens de tester le code que vous avez écrit. Le comportement est plus ou moins le même que celui que j’avais déjà : à première vue, je ne vois pas que la réponse est plus rapide (bien que je croie ce que vous me dites qu’elle le sera), et lorsque j’appuie sur le bouton “FLASH”, la transition entre les lumières ne se produit qu’une fois, c’est-à-dire que chaque boucle “for” n’est exécutée qu’une fois, elle ne se répète pas indéfiniment.
D’autre part, pendant que chacune des boucles “for” est en cours d’exécution, le programme ne répond pas si vous appuyez sur un autre bouton du bouton. Vous m’avez déjà dit que cela est dû à l’utilisation de “delay” et que je devrais le changer en “millis”, je dois approfondir ce sujet.
Allez envoyer arduino
Ce capteur possède un filtre interne pour détecter uniquement les fréquences infrarouges proches de 38KHz, ce qui le rend compatible avec la plupart des commandes infrarouges. Il possède 3 broches de connexion : GND, VCC et DATA, ce qui nous permet de le connecter directement à une broche numérique de notre Arduino ou de tout microcontrôleur que nous souhaitons utiliser.
*Comme vous pouvez le voir, les données sont formées par l’adresse, la commande et ses négations, par exemple pour la touche OK : les données 32 bits sont 0x00FF02FD, où l’adresse est 00 et sa négation FF, et la commande ou fonction est 02 et sa négation FD.
IRremote est l’une des bibliothèques les plus utilisées et complètes pour travailler avec les protocoles de contrôle infrarouge, elle a implémenté plusieurs protocoles des marques les plus connues comme Sony, LG, Samsung, Sanyo, etc.
Expliquons un peu le code : Avec IRrecv irrecv(RECV_PIN) nous créons la variable ou l’objet pour le récepteur IR, dans le pin spécifié, puis nous créons la variable de résultat, qui est une structure où toutes les données relatives seront stockées quand une donnée est reçue par le capteur. Dans Setup() nous initialisons la réception des données avec irrecv.enableIRIn() et configurons la broche 13 comme sortie. Dans void loop() nous vérifions simplement si une donnée arrive au récepteur, ceci est fait avec if(irrecv.decode(&results)), s’il y a une donnée, nous allumons ou éteignons la LED.
Module arduino infrarouge
Le problème que j’ai est qu’avec le code sans la télécommande, l’arc-en-ciel se déplace d’une led à l’autre, mais avec celui avec la télécommande il ne se répète qu’une fois, donc il ne met que les leds arc-en-ciel et elles ne tournent pas.
Essayez votre code en laissant le code ci-dessus plus un delay(200) ; hors de la touche et regardez sur le moniteur pour voir s’il n’écrit qu’une seule fois lorsque vous appuyez sur un bouton de la télécommande infrarouge ou s’il imprime le code de valeur continue toutes les 200 millisecondes.
Si le moniteur série n’écrit qu’une seule fois lorsque vous envoyez une commande, alors tout ce qui doit être fait une fois doit se trouver à l’intérieur de if(irrecv.) et tout ce qui doit être répété constamment doit être pris à l’extérieur mais à l’intérieur de la boucle.
Essayez votre code en laissant ce qui précède plus un delay(200) ; en dehors de la touche et vérifiez le moniteur pour voir s’il n’écrit qu’une seule fois lorsque vous appuyez sur un bouton de la commande infrarouge ou s’il imprime le code continu.value toutes les 200 millisecondes.
Si le moniteur série n’écrit qu’une seule fois lorsque vous envoyez une commande, alors tout ce qui ne doit être fait qu’une seule fois doit se trouver à l’intérieur de if(irrecv.) et tout ce qui doit être répété constamment doit être pris à l’extérieur mais à l’intérieur de la boucle.
Capteur ir tinkercad
Chacun des émetteurs infrarouges du capteur génère des faisceaux lumineux IR. Chaque faisceau a la même intensité et est dévié par un miroir à l’intérieur du capteur vers un photorécepteur, qui mesure le niveau d’IR reçu. Le faisceau “de mesure”, d’une fréquence d’environ 3,3μm, est absorbé par les molécules d’hydrocarbures gazeux, l’intensité du faisceau est donc réduite. Le faisceau ” de référence ” (environ 3,0μm) n’est pas absorbé, de sorte qu’il atteint le récepteur avec toute son intensité. Le %LEL de gaz présent est déterminé par la différence d’intensité entre les faisceaux mesurée par le photorécepteur.