Bonjour !
Ce code reçois le code IR d'une télécommande et permet de sélectionner une des 4 leds puis d'en modifier l'éclairage.
Le soucis : Tout fonctionne à merveille sauf la led en pin 11 qui est soit allumée soit éteinte, 0v ou 5v. Or elle est pourtant PWM comme la 10, la 9 et la 6 ?!!!
#include <IRremote.h>
#include <IRremoteInt.h>
#define GREEN 9
#define BLUE 10
#define RED 6
#define YELLOW 11
#define LGREEN 5
#define LBLUE 5
#define LRED 5
#define LYELLOW 5
#define CHP 16769565
#define CHM 16753245
#define PLUS 16754775
#define MOINS 16769055
byte pin[]={GREEN, BLUE, RED, YELLOW,'\0'};
byte lux[]={LGREEN, LBLUE, LRED, LYELLOW};
byte i = 0;
byte light = 50;
byte RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Début du récepteur
while(pin[i]){
analogWrite(pin[i], lux[i]);
i++;
}
pinMode(13, OUTPUT);
i = 0;
}
void up_lux()
{
if((lux[i] + light) <= 255)
lux[i] += light;
else
lux[i] = 255;
}
void down_lux()
{
if((lux[i] - light) >= 0)
lux[i] -= light;
else
lux[i] = 0;
}
void up_led()
{
if(pin[i + 1])
i++;
else
i = 0;
}
void down_led()
{
byte tmp;
if((i - 1) >= 0)
i--;
else {
for (tmp = 0; pin[tmp]; tmp++);
i = tmp - 1;
}
}
void loop() {
if (irrecv.decode(&results)) {
switch(results.value)
{
case CHP:
up_led();
break;
case CHM:
down_led();
break;
case PLUS:
up_lux();
break;
case MOINS:
down_lux();
break;
}
Serial.println(i);
analogWrite(pin[i], lux[i]);
irrecv.resume(); // Recevoir la prochaine valeur
}
}
J'ai donc essayé de commander par 4 interrupteurs afin d'enlever la librairie IR pensant que cela pouvait venir de là, mais rien ne change.
Si quelqu'un peut m'apporter une réponse car après étude des datasheets je n'ai toujours pas trouvé réponse à mon problème.
Merci !
