Ca ne fonctionne toujours pas
fdufnews si t'as une idée et un peu de temps, merci à toi.
Voici le code, c'est juste pour tester et quand ça fonctionnera... pour un projet plus gros
#include <IRremote.h>
int receiver = 11; // pin Data du recepteur IR
int ledR = 3; // pin led Rouge
int ledG = 5; // pin led Verte
int ledB = 6; // pin led Bleue
IRrecv irrecv(receiver); // crée une intance de 'irrecv'
decode_results results;
// pointeur vers une fonction qui ne reçoit pas d'argument et ne retourne rien
void (*func)(void);
void setup(){
Serial.begin(9600);
irrecv.enableIRIn(); // démarre le receiver
pinMode(ledR, OUTPUT); // pin en sortie
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
routine(results.value);
Serial.println(results.value); // affiche le code en décimal
irrecv.resume(); // reçoit la valeur suivante
}
func();
}
void routine(long code){
switch(code){
case 16775175: func=(void*)AA; break;
case 16750695: func=(void*)BB; break;
case 16767015: func=(void*)CC; break;
case 16746615: func=(void*)DD; break;
case 16734375: func=(void*)EE; break;
defaut: RGB(0,0,0);
}
}
// affichage RGB
void RGB(int R, int G, int B) {
analogWrite (ledR, R);
analogWrite (ledG, G);
analogWrite (ledB, B);
}
void AA(void){ RGB(0,0,0);}
void BB(void){ RGB(255,0,0);}
void CC(void){ RGB(0,255,0);}
void DD(void){ RGB(0,0,255);}
void EE(void){
RGB(0,0,255);
RGB(0,255,0);
RGB(0,255,255);
RGB(255,0,0);
RGB(255,0,255);
RGB(255,255,0);
RGB(255,255,255);
RGB(0,0,255);
RGB(0,255,0);
RGB(0,255,255);
RGB(255,0,0);
RGB(255,0,255);
RGB(255,255,0);
}
Et les erreurs:
In function 'void routine(long int)'
error: invalid conversion from 'void*' to 'void (*)()' -> pour les 5 lignes commençant par 'case'