Aller au contenu


Photo
- - - - -

Décodage infrarouge avec Arduino


  • Veuillez vous connecter pour répondre
26 réponses à ce sujet

#1 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 01:23

:crigon_04:
Bonjour à tous,

Je possède une Arduino et j'ai acheté il y a pas longtemps un kit infrarouge pour Arduino, c'est celui-ci: http://www.robotshop.com/ca/kit-infrarouge-pour-arduino-2.html
J'ai téléchargé la bibliothèque, je l'ai inclu dans le dossier "Libraires", lors de la programation au début du code j'ajoute #include <IRremote.h>, j'ouvre les fichiers contenu dans le dossier de la bibliothèque (fichiers .h et .cpp) mais des erreurs se produisent à plusieurs endroits; cela fait 1mois que j'essaye d'arranger le problème mais je n'y arrive pas :(
J’aimerais savoir si il y a une autre façon plus facile de décoder l'infrarouge avec l'Arduino.

Je vous demande donc votre aide,
:help:

#2 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 02 janvier 2013 - 01:37

Salut,

Deux choses :
- présente-toi dans la section appropriée pour que l'on sache un peu quelles sont tes compétences en électronique / informatique. Ca nous aidera à te guider dans la résolution de ton problème.
- donne nous les erreurs, ton code (ou le morceau pertinent), ... As-tu testé les exemples de la bibliothèque, s'il y en a ?
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#3 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 02:33

Daccord,

Mais il y a plusieurs centaines de lignes quand j'ouvre les fichiers .h et .cpp
J'ai essayé de supprimer la partie ou l'erreur se produisait mais encore d'autres erreurs plus loin de produisent...
Les exemples... ah les exemples: quand je les ouvre sans les fichiers .h et .cpp il y a une erreur mais si j'ouvre les fichiers des erreurs se produisent dans les fichiers ouverts comme je l'ai dis en haut...
Autant dire que c'est un travail de Titan !! :angry:
J'ai aussi essayé avec analogRead et digitalRead mais sa donne rien: Quand j'appuie sur le bouton de la télécommande la valeur ne change pas

C'est dommage car cette télécommande pourrait bien faire évoluer considérablement mon robot, le rendre plus évolutif (PS: Je fais un robot qui évite les obstacles un peu comme les robots aspirateurs...Avec la télécommande je voudrais faire un mode auto (il se débrouille tout seul) et un mode manuel (on appuie sur les boutons de la télécommande pour le faire bouger) et bien d'autres choses !! )

#4 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 02:38

Regarde ici, tu as un exemple de code qui marche avec cette bibliothèque justement :
http://www.robot-maker.com/forum/topic/5741-projet-lexplorateur-un-robot-exploreur/page__view__findpost__p__35767

Pour le fichier h et cpp que tu as télécharger, tu n'as pas à y toucher.
Tu places juste le dossier dans le bon répertoire et c'est tout.

Mon site internet : http://ferdinandpiette.com/


#5 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 02:53

Sa marque: "Erreur de compilation" :( :( :(
Avec plein d'erreur.

J'ai importer le dossier de la bibliothèque "IRremote" dans le dossier "Libraries" du dossier arduino; C'est bien ce qu'il fallait faire ??

#6 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 02:57

montre nous TON code ainsi que les messages d'erreurs exacts

Mon site internet : http://ferdinandpiette.com/


#7 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 03:00

D'accord:

Donc j'ai mis ce code:

#include <IRremote.h>

#define DEBUG

int IR_RECEIVER = 2;            // Pin d'entrée du signal IR
IRrecv ir_receiver(IR_RECEIVER);  // Objet gérant la réception du signal
decode_results result;          // Résultat 

/* Initialisation */
void setup()
{ 
  ir_receiver.enableIRIn();   // Active le module IR

  #ifdef DEBUG
  Serial.begin(9600);
  Serial.write("Mode Debug : On");
  Serial.println();
  #endif
}

/* Boucle principale */
void loop()
{
  if (ir_receiver.decode(&result))  // Si le module IR reçoit des données
  {
        #ifdef DEBUG
        Serial.print("IR Remote Signal Detected : ");
        Serial.print(result.value, DEC);
        Serial.print(" | ");
        Serial.println(result.value, HEX);
        #endif

        ir_receiver.resume();  // Attend la prochaine valeur
  }
}








et les messages d'erreur sont:




In file included from C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:13:
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\/IRremoteInt.h:87: error: 'uint8_t' does not name a type
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\/IRremoteInt.h:88: error: 'uint8_t' does not name a type
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\/IRremoteInt.h:89: error: 'uint8_t' does not name a type
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\/IRremoteInt.h:92: error: 'uint8_t' does not name a type
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'void IRsend::mark(int)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:173: error: 'delayMicroseconds' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'void IRsend::space(int)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:181: error: 'delayMicroseconds' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'void IRsend::enableIROut(int)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:200: error: 'OUTPUT' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:200: error: 'pinMode' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:201: error: 'LOW' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:201: error: 'digitalWrite' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In constructor 'IRrecv::IRrecv(int)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:217: error: 'volatile struct irparams_t' has no member named 'recvpin'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:218: error: 'volatile struct irparams_t' has no member named 'blinkflag'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'void IRrecv::enableIRIn()':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:241: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:242: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:246: error: 'volatile struct irparams_t' has no member named 'recvpin'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:246: error: 'INPUT' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:246: error: 'pinMode' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'void IRrecv::blink13(int)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:252: error: 'volatile struct irparams_t' has no member named 'blinkflag'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:254: error: 'OUTPUT' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:254: error: 'pinMode' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In function 'void __vector_9()':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:268: error: 'volatile struct irparams_t' has no member named 'recvpin'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:268: error: 'digitalRead' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:271: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:273: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:275: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:284: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:285: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:287: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:293: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:295: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:300: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:302: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:310: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:321: error: 'volatile struct irparams_t' has no member named 'blinkflag'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:323: error: 'B00100000' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:326: error: 'B11011111' was not declared in this scope
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'void IRrecv::resume()':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:332: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:333: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'int IRrecv::decode(decode_results*)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:343: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:344: error: 'volatile struct irparams_t' has no member named 'rcvstate'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'long int IRrecv::decodeNEC(decode_results*)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:392: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:400: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'long int IRrecv::decodeSony(decode_results*)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:433: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:443: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp: In member function 'long int IRrecv::decodeRC5(decode_results*)':
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:518: error: 'volatile struct irparams_t' has no member named 'rawlen'
C:\Users\Maison\Desktop\arduino-1.0.3-windows\arduino-1.0.3\libraries\IRremote\IRremote.cpp:529: error: 'volatile struct irparams_t' has no member named 'rawlen'



Voila beh vous avez de quoi lire Image IPB

EDIT : rajout des basises [ code]

#8 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 02 janvier 2013 - 03:38

Alors, pour commencer : http://arduino.cc/en/Reference/Define

Ensuite, les types que tu utilises au début (decode_results particulièrement) me semblent bizarre ... Tu es sûr qu'ils existent dans ta library ?
De plus, on dirait qu'il manque l'inclusion vers les headers standards d'Arduino (voir les premières lignes d'erreur). Fais un code très basique, avec juste des instructions de base (pas d'appel aux fonctions de cet lib en particulier) et mets juste l'inclusion de IRemote. Si ça compile, c'est un problème dans l'utilisation des fonctions, sinon, c'est que la lib elle-même est bugguée (dans ce cas, il va falloir en chercher une autre ou rentrer dans le code et voir ce qui ne va pas).
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#9 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 05:09

J'ai utiliser le lien que m'a donné Black Templar; je pense qu'il va pouvoir me guider sur le code...
J'ai utilisé la library sur le site où je l'ai acheté : http://www.robotshop.com/ca/kit-infrarouge-pour-arduino-2.html Il faut aller dans "Liens utiles"


Je suis débutant, j'ai eu mon arduino ce noël.
Pourriez vous me faire ce code "tres basique" svp (au cas ou) ??

#10 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 05:31

Re.
Sympa comme cadeau de Noël ! J'espère que tu t'amuseras bien avec ^^

C'est normal que ça ne marche pas.
Arduino est passé à la version 1 il y a quelques mois. Il y a pas mal de choses qui ont changé, du coup il faut que tu télécharges la nouvelle version de la bibliothèque (la tienne date de 2009).

Rend-toi directement sur le site de l'auteur : https://github.com/s...rduino-IRremote
Avec cette nouvelle version, tu n'auras plus de problème (je viens de tester)

Mon site internet : http://ferdinandpiette.com/


#11 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 05:45

Et bien non :dash2: ! Je viens de changer de biblothèque, je n'ai pas réussit à compiler le code; Une erreur se produit à cette ligne: [IRrecv ir_receiver(IR_RECEIVER); // Objet gérant la réception du signal]

et les erreurs sont:

[sketch_dec14a:6: error: 'IRrecv' does not name a type
sketch_dec14a:7: error: 'decode_results' does not name a type
sketch_dec14a.ino: In function 'void setup()':
sketch_dec14a:12: error: 'ir_receiver' was not declared in this scope
sketch_dec14a.ino: In function 'void loop()':
sketch_dec14a:24: error: 'ir_receiver' was not declared in this scope
sketch_dec14a:24: error: 'result' was not declared in this scope]

#12 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 05:46

Et bien non Image IPB ! Je viens de changer de biblothèque, je n'ai pas réussit à compiler le code; Une erreur se produit à cette ligne: [IRrecv ir_receiver(IR_RECEIVER); // Objet gérant la réception du signal]

et les erreurs sont:

[sketch_dec14a:6: error: 'IRrecv' does not name a type
sketch_dec14a:7: error: 'decode_results' does not name a type
sketch_dec14a.ino: In function 'void setup()':
sketch_dec14a:12: error: 'ir_receiver' was not declared in this scope
sketch_dec14a.ino: In function 'void loop()':
sketch_dec14a:24: error: 'ir_receiver' was not declared in this scope
sketch_dec14a:24: error: 'result' was not declared in this scope]


Pas normal, c'est comme si la bibliothèque n'était pas au bon endoit.
Il faut mettre le dossier IRremote contenant les sources dans le dossier {dossier_d_installation_d_arduino}/libraries
Puis redémarre l'IDE

Mon site internet : http://ferdinandpiette.com/


#13 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 05:48

Ah oui sa c'est compilé !! Merci !! Je me suis rendu compte que les fichiers nécessaires étaient dans un dossier puis encore dans un dossier. C'est normal. Je vais essayer voir si sa marche

#14 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 05:53

GENIAL !!!!!!!!!!! SA MARCHE !!!!!!!!! :ignat_02: :ignat_02: :ignat_02:
Mille merci pour votre aide !!!!!!!

#15 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 06:31

Par contre j'ai encore un problème Image IPB
Je voudrais que quand j'appuie sur le bouton POWER ma led s'allume, pour cela j'ai rajouté une variable "bouton". J'ai fais mon programme mais ma led reste allumée sans arret Image IPB

PS: j'ai remarqué qu'il fallait appuier brèvement sur le bouton pour qu'il fonctionne correctement et que la valeur reste la même pour le même bouton, est-ce normal ??


#include <IRremote.h>

#define DEBUG

int bouton = 0;

int IR_RECEIVER = 2;       	
IRrecv ir_receiver(IR_RECEIVER); 
decode_results result;     	

void setup()
{ 
  ir_receiver.enableIRIn();  

  #ifdef DEBUG
  Serial.begin(9600);
  Serial.write("Mode Debug : On");
  Serial.println();
  #endif
  pinMode(10, OUTPUT);
}

void loop()
{
  digitalWrite(10, LOW);
 
 
  if (ir_receiver.decode(&result))
  {
        #ifdef DEBUG
     	bouton = result.value, DEC;
     	#endif
   	}
  
  if (bouton =  16580863) //16580863 est normalement la valeur du bouton POWER
  {
   digitalWrite(10, HIGH); 
   delay(500);
   digitalWrite(10, LOW);
   bouton = 0;
   
  }
  
  
  
}


#16 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 06:41

Je te conseil d'apprendre dans un premier temps le langage C afin d'être capable de concevoir tes programme et de les comprendre.
http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html

Dans l'esprit, ton code est bon, MAIS il y a un petit problème à cette ligne :
if (bouton =  16580863) //16580863 est normalement la valeur du bouton POWER

Une comparaison ne se fait pas avec l'opérateur = mais avec l'opérateur ==

Mon site internet : http://ferdinandpiette.com/


#17 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 02 janvier 2013 - 06:48

Je vais y jetter un coup d'oeil merci.

Cependant mon programme ne fonctionne pas même après la modification; la led reste éteinte sans arrêt

#18 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 02 janvier 2013 - 07:04

Cependant mon programme ne fonctionne pas même après la modification; la led reste éteinte sans arrêt


Parce que cette ligne ne veut rien dire
bouton = result.value, DEC;

Mon site internet : http://ferdinandpiette.com/


#19 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 02 janvier 2013 - 07:05

Lorsque tu allumes ton Arduino, les différentes variables sont initialisées, puis setup() est exécutée. Ensuite, loop() est répété. Si tu appuies sur le bouton et que ton système reçoit le signal, la condition est validée et bouton vaut le code reçu par IR. Tu mets bouton à zéro à la fin de ta boucle, donc si tu n'appuies pas sur la télécommande, rien n'est reçu, et bouton reste à zéro. Donc ta condition n'est jamais vérifié et ta led ne s'allume pas.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#20 jojo3544

jojo3544

    Membre

  • Membres
  • 16 messages

Posté 03 janvier 2013 - 10:38

Aye c'est dur !!

J'ai encore besoin de votre aide...
J'ai fais à peu près le même code; quand j'appuie sur le bouton 7, la condition est validée, la led s'allume, et bouton reste à la valeur du bouton "7" donc la condition se répete indéfiniment, et sa reste bloqué sur cette condition; il faudrais remettre à zero bouton mais je n'y arrive pas même en mettant bouton = 0 ! Comment je pourrai faire ??

Voici mon code:

#include <IRremote.h>

#define DEBUG

int bouton = 0;

int IR_RECEIVER = 2;       	
IRrecv ir_receiver(IR_RECEIVER); 
decode_results result;     	

void setup()
{ 
  ir_receiver.enableIRIn();
  Serial.begin(9600);
  pinMode(12, OUTPUT);
}


void loop()
{
  if (ir_receiver.decode(&result))
  {
  bouton = result.value, DEC;
  }
  
  
  Serial.print(bouton);
  Serial.print("\n");
  
  
  if(bouton == -2843 || bouton == 6375)
{
  digitalWrite(12, HIGH);
  delay(500);
  digitalWrite(12, LOW);
}
 
}





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users