Bonjour,
Je me permets de vous écrire car j'ai réaliser un code pour mon arduino nano, un bandeau led RGB en 4 pins et un capteur IR avec une télécommande.
Pour activer la réception IR, il faut cette ligne de code : irrecv.enableIRIn(); mais lorsque que je l'ajoute dans ce programme :
#include <IRremote.h>
const int IR_PIN = 3;
IRrecv irrecv(IR_PIN);
decode_results results;
// Définir le code de la télécommande comme une valeur numérique
const unsigned long code1 = 0x1270C;
const byte PIN_LED_R = 9;
const byte PIN_LED_G = 10;
const byte PIN_LED_B = 11;
void setup() {
// EMPLACEMENT DU CODE POUR l'ACTIVATION RECEPION IR
pinMode(PIN_LED_R, OUTPUT);
pinMode(PIN_LED_G, OUTPUT);
pinMode(PIN_LED_B, OUTPUT);
displayColor(0, 0, 0);
}
void loop() {
if (irrecv.decode(&results)) {
// Comparer avec la valeur numérique
if (code1 == results.value) {
displayColor(255, 0, 0);
delay(1000);
}
irrecv.resume();
}
}
void displayColor(byte r, byte g, byte b) {
analogWrite(PIN_LED_R, ~r);
analogWrite(PIN_LED_G, ~g);
analogWrite(PIN_LED_B, ~b);
}
Le bandeau s'initialise en bleu et reste en bleu, impossible de l'éteindre mais grâce à la télécommande il est possible de faire virer le bleu au violet. Alors que normalement il doit s'éteindre et rester éteint jusqu'à un bouton pressé via la télécommande.
Merci d'avance pour vos réponse.
Cordialement,
Norak
Le displayColor(255, 0, 0); a pour but d’allumer le bandeau en rouge lorsque le bouton de la télécommande est pressé et par contre je ne comprends pas la question en rapport avec une inversion des valeurs.
Dans ce cas où est le code qui est censé éteindre ton bandeau?
Comme te l'indique @jpbbricole, si tu utilise une complétion à 1, lorsque ton paramètre vaut 0, le analogWrite(PIN_LED_R, ~0) est équivalant à analogWrite(PIN_LED_R, 255)
Pourquoi faire ça?
J'ai essayé ton programme, avec 3 LED, je n'ai pas de LED RGB et, mise à part ces tildes en trop, ça fonctionne très bien.
Ta LED RGB est anode ou cathode commune? Mets un lien sur le produit.
Je n'ai pas compris votre post #2 par rapport à la valeur en paramètre.
Et je ne sais pas si ma LED est cathode commune ni se que ça veut dire donc si vous avez des explications je suis preneur.
Et je voudrais que le bandeau LED s’éteigne au lieu d'être cyan et de le rester.
Dans ce post, je t'indique que tu as peut être un problème de câblage, as tu regardé?
pour le reste @jpbbricole t'a pourtant expliquer ce que cela voulais dire.
pour l'explication je te laisse regarder sur internet.
une LED RGB est un regroupement de 3led (rouge, vert, bleu).
une LED est une diode électroluminescence, comme toutes diode, chacune on une anode et une cathode.
Du coup cathode commune, indique que les 3 LED se partage la même broche pour leur cathode.
l'autre possibilité est d'avoir leur anode commun.
Si tu ne sais pas comment il faut brancher ta LED, la seul solution est d'expérimenter.
Ce que tu as fait puisque tu as constaté que ta LED ne s'éteignait pas au setup et mais tout les LED ne s'éclaire pas de la même façon, donc le problème n'est pas uniquement le branchement en cathode ou anode commun.
Si tu prend ta LED bleu qui d'éclaire quand tu donne 0 et que tu as inversé avec le ~.
Cela veut dire que tu demande à l'Arduino, d'appliquer 5V en permanence sur la broche de la LED.
Donc je crois que tu dois avoir une LED en anode commune
Mais comme tu ne nous donne pas ton schéma de montage, cela reste très hypothétique.
Tu l'as donc branché en anode commune.
Donc pour éteindre, il faut donner le même voltage aux cathodes indépendantes que ton anode commune (5V), comme tu utilises une inversion(~), il faut bien envoyé 0.
Si ce n'est pas le cas ou si uniquement certaines LED s'allume, soit le câblage n'est pas bon, soit la broche que tu utilise n'est pas PWM.
Je ne suis pas spécialiste des nano, mais je crois que normalement les broches 9,10,11 sont en PWM, mais la carte en photo, semble indiquer que la broche 11 n'est pas en PWM.
Tu as combien de LED sur ton bandeau?
Si tu alimentes le tout pas la connexion USB du Nano, il y a de fortes chances que tu n'aies pas assez de courant et que tu doives mettre une alimentation 5V. externe.
Je possède 15 LED et oui plus tard il est prévue de mettre une alim en plus c'est juste que pour le moment je n'ai pas mise pour éviter de souder puis de dessouder si je dois changer un composant