IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Erreur de compilation IRrec


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 228
    Par défaut Erreur de compilation IRrec
    Bonjour,

    Après 2 ans où j'ai laissé tomber l'électronique pour cause de pbs familiaux (décès avec un "s") et un changement de PC nécessitant de redownloader certaines bibliothèques, je me remets péniblement à mes projets, et je suis plus que rouillé !

    Donc excusez mes questions...

    J'utilisais souvent une UNO où j'avais uploadé un programme me permettant de lire les codes des télécommandes infra-rouges, donc et cette carte a toujours fonctionné et avec plusieurs télécommandes.

    Aujourd'hui j'ai tenté de recompiler le programme depuis l'IDE Arduino, j'obtiens l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    exit status 1
    'class IRrecv' has no member named 'blink13'
    Voici le programme basique de lecture des codes qui est intégré à la carte (que j'avais trouvé sur le Web à l'époque), mais qui ne passe plus à la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    // Filename: "Code tuto 10.3.ino"
    /* Ceci est le code correspondant au Tuto 10.2 (càd complété avec la 2ème partie permettant l'allumage des LEDs)
    sur la Réception IR sur Arduino, MAIS adapté à la télécommande de HiFiCollective envisagée pour le PERREAUX
    et qui utilise les mêmes codes que ma Philips de BANDOL.
    disponible sur Arduino TV, ici: http://arduinotvfr.livehost.fr/tutoriels/tutoriel-n102--interpretati.html
    */
    #include <IRremote.h>  // librairy permettant d'utiliser l'IR
    const int RECV_PIN = 12; // car on relie la sortie du récepteur IR à la pin 12 de l'Arduino
    IRrecv irrecv(RECV_PIN); 
    decode_results results; 
    void setup()
    {
    Serial.begin(9600); // Démarre le transmetteur série pour voir les résultats sur PC
    irrecv.enableIRIn(); //
    irrecv.blink13(true);
     
    pinMode(3,OUTPUT);  // c'est à cette Pin 3 qu'est reliée la 1ère LED de sortie
    pinMode(4,OUTPUT); // c'est à cette Pin 4 qu'est reliée la 2ème LED de sortie
    pinMode(5 ,OUTPUT); // c'est à cette Pin 5 qu'est reliée la 3ème LED de sortie
    } 
    void loop() {
    if (irrecv.decode(&results)) {
    if (results.decode_type == NEC) {
    Serial.print("NEC: ");          // comme dans le Tuto 10 précédent, cela affiche la marque de la télécommande
    } else if (results.decode_type == SONY) {
    Serial.print("SONY: ");
    } else if (results.decode_type == RC5) {
    Serial.print("RC5: ");
    } else if (results.decode_type == RC6) {
    Serial.print("RC6: ");
    } else if (results.decode_type == UNKNOWN) {
    Serial.print("UNKNOWN: ");
    }
    Serial.println(results.value, HEX); // comme dans le tuto 10 précédent cela affiche en Hexadécimal ce que reçoit le capteur IR
     
    // c'est dans cette section que l'on rajoute les lignes supplémentaires par rapport au Tuto 10 précédent
    if(results.value==0xFD08F7){  // "FD08F7" correspond au Bouton 1 de la Télécommande DFRobot DFR0107 utilisée: les codes ont été trouvés au précédent Tuto 10
    // au cours duquel il a lu la valeur reçue par le capteur IR quand il appuyait sur le Bouton 1
    // ATTENION: bien mettre 0x devant FD087 car sinon l'Arduino ne comprends pas que c'est un code hexadécimal...
     
    digitalWrite(3,HIGH); // si le capteur a reçu "FD08F7" càd si on a appuyé sur le Bouton 1, alors on allume la 1ère LED et on éteint les 2 autres LED.
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
    delay(100);           // on introduit ici un délai de 100millisecondes pour que le code de la télécommande ne se répète pas plusieurs fois
    }
    if(results.value==0xFD8877){ // on répète le raisonnement avec la valeur "FD8877" correspondant au Bouton 2 de la Télécommande
    // sans oublier le 0x devant le code pour que l'Arduino comprenne que c'est de l'hexadécimal...
    digitalWrite(3,LOW);      // et ici on décide d'allumer la LED 2 et d'éteindre les LED 1 et 3.
    digitalWrite(4,HIGH);
    digitalWrite(5,LOW);
    delay(100);           // on introduit ici un délai de 100millisecondes pour que le code de la télécommande ne se répète pas plusieurs fois
    }
    if(results.value==0xFD48B7){ // idem avec la valeur "FD48B7" correspondant au Bouton 3 de la Télécommande
     
    digitalWrite(3,LOW);      // on éteint LED 1
    digitalWrite(4,LOW);      // on éteint LED 2
    digitalWrite(5,HIGH);     // où on allume la LED 3
    delay(100);           // on introduit ici un délai de 100millisecondes pour que le code de la télécommande ne se répète pas plusieurs fois
    }
     
    irrecv.resume();
    }}
    Cette erreur de compilation me surprend car le membre "blink13();" semble exister d'après cette page:
    https://arduino-irremote.github.io/A...ions_func.html

    Donc vos suggestions pour faire fonctionner ce bête programme et pour lire mes codes de télécommande sont les bienvenues !

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 910
    Par défaut
    Vous avez donc réinstallé la dernière version de la bibliothèque IRremote.h et elle a beaucoup changé depuis 2 ans

    il faut lire la documentation de conversion aux nouvelles APIs

    pour blink13() la nouvelle fonction s'appelle setLEDFeedback()

  3. #3
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 228
    Par défaut
    Vous avez donc réinstallé la dernière version de la bibliothèque IRremote.h
    Votre explication semble la bonne bien sûr (j'avais déjà eu des problèmes en passant de la 2.x à la 3.x), mais je suis sûr d'avoir sélectionné la version 3.3 lorsque je l'ai réinstallé sur mon PC actuel il y a quelques jours.

    D'alleurs le Gestionnaire de Bibliothèque indique bien que c'est la version 3.3.0 qui est installée 'voir capture écran ci-dessous):

    Nom : 02.version de IRremote.jpg
Affichages : 81
Taille : 99,3 Ko

    Et ma carte Arduino chargée à demeure avec mon programme pour lire les codes (elle est dédiée à la lecture des codes) fonctionne toujours parfaitement, et elle utilise la v3 de IRremote.

    donc la version de la bibliothèque installée étant la 3.3.x, pourquoi cette erreur apparait-elle ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 228
    Par défaut
    Bon si je comprends bien la doc, les différences majeures ont commencé avec la v3.1, donc je suppose que j'ai utilisé la v3.0.x lorsque j'avais développé mes programmes.

    Je mets donc ce sujet en "résolu", et je vais chercher comment forcer l'usage (et l'installation) d'une ancienne version de bibliothèque, car je n'ai pas le temps de modifier tous mes programmes actuellement (comme j'avais dû le faire lors d passage de la v2 à la v3)...

    Merci

  5. #5
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 228
    Par défaut
    Je viens de retrouver mes posts de quand j'avais eu le problème:

    https://www.developpez.net/forums/d2...-bibliotheque/

    et ils montrent que j'étais bien avec la v3.3.0, donc je ne comprends pas pourquoi cette erreur pisque le programme avait bien été compilé avec cette v3.3.0 et que le gestionnaire de bibliothèque indique bien que c'est la v.3.3.0 qui est installée??

  6. #6
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 228
    Par défaut
    Bon je passe ce topic en résolu car il n'a pas de passionner les foules !

    J'ai résolu l'erreur de compilation en mettant simplement cette instructin en commentaire (derrière //), et ça fonctionne.

    Je ne sais pas pourquoi car le v3.3.0 est censée supporter cette instruction , et ça fonctionnait avec le 3.3.0 avant, mais bon...

  7. #7
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 910
    Par défaut
    difficile de dire pourquoi, il faudrait vraiment retrouver l'état du disque dur à l'époque...

  8. #8
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 228
    Par défaut
    Oui je suis bien d'accord avec toi ! ce qui est évidemment impossible..

    Sinon en réinstallant une version antérieure (3.4.x) du driver CH340, j'arrive maintenant à uploader sur une NANO (qui représente 95% de mes cartes sur mes projets), alors qu'avant rien de s'uploadait, ni sur UNO ni sur NANO.

    Désormais seul UNO ne s'uploade pas, que ce soit avec l'IDE Ardino (1.8.19) ou avec PlatformIO (dernière version).

    Je pense donc réinstaller le driver USB virtuel de Windows (je suis sur W11), mais j'ouvrirai un autre topic pour ce sujet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Erreur de compilation du noyau
    Par pierreg dans le forum Administration système
    Réponses: 12
    Dernier message: 31/01/2007, 18h53
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo