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 :

Nouvelles versions de la bibliothèque IRremote.h


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut Nouvelles versions de la bibliothèque IRremote.h
    Bonjour,

    Je porte sur MEGA 2560 un programme que j'avais réalisé sur Nano, et qui en synthèse active un relais lorsqu'un code est reçu par I.R.
    Mon problème n'est pas de gérer les actions, ça c'est OK depuis longtemps sur mon programme Nano, mais aujourd'hui sur la MEGA le Moniteur Série m'envoie le message suivant:

    The function decode(&results) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData.<fieldname> .


    Mon code est le suivant:

    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
    #include <IRremote.h>  // librairy permettant d'utiliser l'IR
    const int RECV_PIN = 49; 
    IRrecv irrecv(RECV_PIN); 
    decode_results results; 
     
            if(irrecv.decode(&results))
    	{
     
    	// Partie GESTION DE LA FONCTION "STOP" PAR TELECOMMANDE I.R.
     
    		if((results.value==0x3F6)||(results.value==0xBF6))
    		{ 
     
    			Serial.println("Appui sur Bouton STOP:");
    			Serial.println(results.value, HEX);
     
     
    			//on active le relais 6 correspondant à la Fonction "STOP"
    			digitalWrite(relai_STOP, HIGH); 
    			delay(500);
    			digitalWrite(relai_STOP, LOW); 
     
    			strcpy(active_input, "STOP");  // on affecte donc la valeur "STOP" puisqu'on vient d'activer le Relai_STOP
     
    			lcd.clear(); 
    			lcd.setCursor(5,1); // 5ème position pour centrer . Left second line (1 from 1-16, Ligne 1 from 0-1)
    			lcd.print(active_input); // puis affiche la valeur de la chaine active_input en ligne du bas
     
    			// il me semble qu'il faut réinitialiser "results.value" sinon l'instruction IF se répètera
    			results.value==0x000;
    			irrecv.resume();
     
    		} //Fin du IF pour la Fonction STOP

    Je viens de vérifier et la version de la librairie IRremote.h qui est installée est la 3.3.0, càd la dernière semble-t-il.

    (je n'ai pas de message à la compilation mais juste à l'exécution via le Moniteur Série) ---> ça ce serait surtout pour les nombreux programmes déjà écrits que je ne voudrais pas devoir adapter...


    Sans doute est-il plus sage d'utiliser la nouvelle librairie pour mes nouveaux programmes...

    J'ai suivi le Tuto ici:

    et donc j'ai remplacé:

    a). Toutes les occurrences de irrecv par IrReceiver

    b). enlevé les occurrence de decode_results

    c).remplacé les (decode_results *aResults) par un simple decode(); comme indiqué

    d). Pour faire imprimer sur le Moniteur Série la valeur reçue, j'ai utilisé: Serial.println(IrReceiver.decodeIRData.decodeRawData, HEX);.

    Mais à la compilation ça bugue:

    MEBT_v310:617:18: error: 'class IRrecv' has no member named 'decodeIRData'; did you mean 'decodedIRData'?
    if((IrReceiver.decodeIRData.decodedRawData==0x3F6)||(IrReceiver.decodeIRData.decodedRawData==0xBF6))
    C'est comme si IRrecv était toujours appelé et que "decodeIRData" n'était pas reconnu...or une recherche me montre qu'il n'y a pas de IRrecv actif (ils sont tous en commentaires).
    Pourtant si c'est bien la librairie IRremote 3.3.0 qui est utilisée, le membre 'decodeIRData' devrait être reconnu non ?

    Le compilateur me sort aussi comme message d'erreur:
    Plusieurs bibliothèque trouvées pour "IRremote.h"
    Utilisé : C:\Users\Michel\Documents\Arduino\libraries\IRremote
    Non utilisé : C:\Users\Michel\Documents\Arduino\libraries\Arduino-IRremote-master
    mais le Gestionnaire de Bibliothèques ne me montre que IRremote en version 3.3.0 et ne me montre pas Arduino-IRremote-master



    Pouvez-vous éclairer ma lanterne ?
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    J'ai trouvé, c'est une bête erreur de syntaxe !
    Il faut utiliser "IrReceiver" et non pas "IRreceiver"...

    Maintenant c'est bon à la compilation, donc s'il y a d'autres problèmes, j'ouvrirai un autre post pour ne pas polluer celui-ci.

    Merci à tous,

  3. #3
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    Salut

    Sans doute est-il plus sage d'utiliser la nouvelle librairie pour mes nouveaux programmes...
    oui, ça vaut mieux !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    Merci JayM: j'ai modifié tout mon programme (et il est gros !) pour coller à la version 3.3.0 de IRremote.h, et ça fonctionne nickel.

    Je ferai donc de même pour les programmes futurs, mais pour les programmes que j'utilise déjà, c'est un peu la galère: pas envie de les remodifier tous !

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

Discussions similaires

  1. Formulaire de recherche prêt à l'emploi (nouvelle version)
    Par Darlay Jean_Louis dans le forum IHM
    Réponses: 2
    Dernier message: 24/11/2005, 11h29
  2. déclarer une nouvelle version de Tomcat
    Par keopsk dans le forum JBuilder
    Réponses: 9
    Dernier message: 02/07/2004, 22h28
  3. Réponses: 1
    Dernier message: 06/04/2004, 11h01
  4. Nouvelle version de MySql
    Par syannic dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 17/03/2003, 17h39

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