Nouveau dans le monde de la programmation de carte Arduino je souhaite réaliser un protocole de feux de départ pour du rc drift.
Je voudrais réaliser une rampe avec 4 leds (une rouge, deux oranges et une verte).
Au branchement de l'Arduino (elegoo uno r3) il faut que la led rouge s'allume et reste allumée.
Puis via la télécommande infrarouge fourni dans le kit je voudrais lancer une sorte de décompte en appuyant sur un bouton de celle-ci comme suit : La led Rouge s'éteint une seconde puis se rallume, une seconde après une deuxième led (Orange) s'allume en plus puis une seconde après une troisième led (Orange aussi) s'allume et une seconde après les trois leds s'éteignent pour allumer la quatrième led (la Verte) et 5 seconde après la led verte s'éteint et la rouge se rallume et reste allumée jusqu'au prochaine appuis sur la télécommande.
J'ai réussi à faire le protocole pour les leds, j'ai réussi à initialiser la télécommande IR mais pour le reste je suis à la ramasse...
Voici mon message d'erreur :
C:\Users\Stéphane\Downloads\copy_of_feux_de_d_part1 (3)\copy_of_feux_de_d_part1 (3).ino:51:1: error: expected declaration before '}' token
Plusieurs bibliothèque trouvées pour "IRremote.h"
Utilisé: C:\Users\Stéphane\Documents\Arduino\libraries\IRremote
Non utilisé: C:\Users\Stéphane\Documents\Arduino\libraries\IRremote-3.9.0
exit status 1
Compilation error: expected declaration before '}' token
Et voici ma programmation :
// C++ code
#include <IRremote.h>
int counter;
int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN); //le capteur infrarouge est connecté à la broche 8
decode_results results;
void setup()
{ irrecv.enableIRIn(); // Initialise le recepteur infrarouge
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(13, HIGH);
}
void loop()
{ if (irrecv.decode(&results)) {
if (results.value==0xFF0FD)//on appuie sur la touche pause de la télécommande
{
for (counter = 0; counter < 1; ++counter) {
digitalWrite(13, LOW);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(13, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(12, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(11, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
delay(5000); // Wait for 5000 millisecond(s)
digitalWrite(10, LOW);
}
}
else { digitalWrite(13, HIGH); }
}
irrecv.resume();
}
Désolé, même pour publié sur le forum j'ai eu du mal. En espérant avoir posté au bon endroit.
D'avance merci.
Merci beaucoup pour votre aide, c'est cool vraiment.
J'ai essayé avec votre code mais rien, juste la led rouge qui s'allume et si j'appuie sur le bouton play/pause de la téléco rien ne se passe.
Le truc bizarre c'est que lorsque j'ouvre le moniteur série aucun bouton de la téléco ne s'affiche.
Je vois bien la led du récepteur IR s'allumé mais rien d'autre.
J'ai l'impression qu'il ne reconnait pas la télécommande.
En fait je me suis servi de ce code pour reconnaitre la téléco IR.
Tout ça était fourni dans le kit.
Peut être n'ai je pas enregistré le code, je suis perdu pour le moment...
//www.elegoo.com
//2016.12.9
#include "IRremote.h"
int receiver = 8; // Signal Pin of IR receiver to Arduino Digital Pin 8
/*-----( Declare objects )-----*/
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results; // create instance of 'decode_results'
/*-----( Function )-----*/
void translateIR() // takes action based on IR code received
// describing Remote IR codes
{
switch(results.value)
{
case 0xFFA25D: Serial.println("POWER"); break;
case 0xFFE21D: Serial.println("FUNC/STOP"); break;
case 0xFF629D: Serial.println("VOL+"); break;
case 0xFF22DD: Serial.println("FAST BACK"); break;
case 0xFF02FD: Serial.println("PAUSE"); break;
case 0xFFC23D: Serial.println("FAST FORWARD"); break;
case 0xFFE01F: Serial.println("DOWN"); break;
case 0xFFA857: Serial.println("VOL-"); break;
case 0xFF906F: Serial.println("UP"); break;
case 0xFF9867: Serial.println("EQ"); break;
case 0xFFB04F: Serial.println("ST/REPT"); break;
case 0xFF6897: Serial.println("0"); break;
case 0xFF30CF: Serial.println("1"); break;
case 0xFF18E7: Serial.println("2"); break;
case 0xFF7A85: Serial.println("3"); break;
case 0xFF10EF: Serial.println("4"); break;
case 0xFF38C7: Serial.println("5"); break;
case 0xFF5AA5: Serial.println("6"); break;
case 0xFF42BD: Serial.println("7"); break;
case 0xFF4AB5: Serial.println("8"); break;
case 0xFF52AD: Serial.println("9"); break;
case 0xFFFFFFFF: Serial.println(" REPEAT");break;
default:
Serial.println(" other button ");
}// End Case
delay(500); // Do not get immediate repeat
} //END translateIR
void setup() /*----( SETUP: RUNS ONCE )----*/
{
Serial.begin(9600);
Serial.println("IR Receiver Button Decode");
irrecv.enableIRIn(); // Start the receiver
}/*--(end setup )---*/
void loop() /*----( LOOP: RUNS CONSTANTLY )----*/
{
if (irrecv.decode(&results)) // have we received an IR signal?
{
translateIR();
irrecv.resume(); // receive the next value
}
}/* --(end main loop )-- */
Et après avoir télécharger le code, je vois dans mon moniteur serie les touches sur lequel j'appuis.
Vous avez un œil de lynx!!!
Effectivement l'erreur venait de là, mille mercis à vous.
Tous fonctionne à merveille, je suis super heureux.
Merci merci merci.