Go Down

Topic: Mega Projet Contrôleur de Température et d'Humidité  (Read 3030 times) previous topic - next topic

Col68

Vous etes trop fort J-M-L tres grand Respect, je m'attaque de suite merci encore pour ce grand service.

Col68

Dommage pour moi, cela na pas fonctionner :smiley-sweat:  bon je baisse pas les bras mais je suis epuiser :smiley-mr-green:  j'ai perdu le bras de fer faut que je reprenne des forces.

voici l'erreur annoncer :

Code: [Select]
Arduino : 1.8.4 (Windows 7), Carte : "Arduino/Genuino Uno"

" "C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp" -o "C:\Users\\AppData\Local\Temp\arduino_build_415906\libraries\DFR_Key\DFR_Key.cpp.o"
C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp: In constructor 'DFR_Key::DFR_Key(int)':

C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp:29:14: error: 'DFR_KEY' was not declared in this scope

   if (def == DFR_KEY)

              ^

C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp: At global scope:

C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp:84:38: error: no 'void DFR_Key::setARV(int, int)' member function declared in class 'DFR_Key'

 void DFR_Key::setARV(int key, int dev)

                                      ^


exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

J-M-L

Ah c'est parce que c'est DFROBOT qu'il faut tester

Souvenez vous que dans votre code vous appelez le constructeur comme cela

DFR_Key keypad(0);  // Utilise 0 pour le tableau DFRobot et 1 pour le tableau Cytron (?)

Code: [Select]
DFR_Key::DFR_Key(int dev)
{
  _refreshRate = 10;
  _keyPin = DEFAULT_KEY_PIN;
  _threshold = DEFAULT_THRESHOLD;
  _keyIn = NO_KEY;
  _curInput = NO_KEY;
  _curKey = NO_KEY;
  _prevInput = NO_KEY;
  _prevKey = NO_KEY;
  _oldTime = 0;
 
  if (dev == DFROBOT)  // UTILISER DEV et DFROBOT ICI PAS DEF ni DFR_KEY
  {
  UPKEY_ARV = 150;
  DOWNKEY_ARV = 300;
  LEFTKEY_ARV = 460;
  RIGHTKEY_ARV = 50; 
  SELKEY_ARV = 690;
  NOKEY_ARV = 1000;
  }
  else if (dev == CYTRON) // UTILISER DEV ICI PAS DEF
  {
  UPKEY_ARV = 131;
  DOWNKEY_ARV = 307;
  LEFTKEY_ARV = 480;
  RIGHTKEY_ARV = 0;
  SELKEY_ARV = 723;
  NOKEY_ARV = 1023;
  }
}
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Col68

Je vous remercie pour tout le soutien mais ca ne fonctionne pas, je suis vraiment desoler, voici la modif librairie et le code erreur

Code: [Select]
static int UPKEY_ARV = 150;
static int DOWNKEY_ARV = 300;
static int LEFTKEY_ARV = 460;
static int RIGHTKEY_ARV = 50;
static int SELKEY_ARV = 690;
static int NOKEY_ARV = 1000;

DFR_Key::DFR_Key(int dev)
{
  _refreshRate = 10;
  _keyPin = DEFAULT_KEY_PIN;
  _threshold = DEFAULT_THRESHOLD;
  _keyIn = NO_KEY;
  _curInput = NO_KEY;
  _curKey = NO_KEY;
  _prevInput = NO_KEY;
  _prevKey = NO_KEY;
  _oldTime = 0;
 
  if (dev == DFR_KEY)
  {
  UPKEY_ARV = 150;
  DOWNKEY_ARV = 300;
  LEFTKEY_ARV = 460;
  RIGHTKEY_ARV = 50;
  SELKEY_ARV = 690;
  NOKEY_ARV = 1000;
  }
  else if (dev == CYTRON)
  {
  UPKEY_ARV = 131;
  DOWNKEY_ARV = 307;
  LEFTKEY_ARV = 480;
  RIGHTKEY_ARV = 0;
  SELKEY_ARV = 723;
  NOKEY_ARV = 1023;
  }


et l'erreur

Code: [Select]
Arduino : 1.8.4 (Windows 7), Carte : "Arduino/Genuino Uno"

"C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp" -o "C:\Users\\AppData\Local\Temp\arduino_build_905844\libraries\DFR_Key\DFR_Key.cpp.o"
C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp: In constructor 'DFR_Key::DFR_Key(int)':

C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp:29:14: error: 'DFR_KEY' was not declared in this scope

   if (dev == DFR_KEY)

              ^

C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp: At global scope:

C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp:84:38: error: no 'void DFR_Key::setARV(int, int)' member function declared in class 'DFR_Key'

 void DFR_Key::setARV(int key, int dev)

                                      ^
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno



Col68

Mince j"ai fait une erreur, j'ai pas capter les DFROBOT excusez moi !!!

J-M-L

Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Col68

Nooonnn je suis deg, juste une erreur
voici le code erreur

Code: [Select]
Arduino : 1.8.4 (Windows 7), Carte : "Arduino/Genuino Uno"

 "C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp" -o "C:\Users\\ta\Local\Temp\arduino_build_962335\libraries\DFR_Key\DFR_Key.cpp.o"
C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp:84:38: error: no 'void DFR_Key::setARV(int, int)' member function declared in class 'DFR_Key'

 void DFR_Key::setARV(int key, int dev)

                                      ^

Utilisation de la bibliothèque DFR_Key prise dans le dossier : C:\Users\\Documents\Arduino\libraries\DFR_Key (legacy)

exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

Col68

et la derniere modif apporter a la librairie :
Code: [Select]
DFR_Key::DFR_Key(int dev)
{
  _refreshRate = 10;
  _keyPin = DEFAULT_KEY_PIN;
  _threshold = DEFAULT_THRESHOLD;
  _keyIn = NO_KEY;
  _curInput = NO_KEY;
  _curKey = NO_KEY;
  _prevInput = NO_KEY;
  _prevKey = NO_KEY;
  _oldTime = 0;
  
  if (dev == DFROBOT)
  {
  UPKEY_ARV = 150;
  DOWNKEY_ARV = 300;
  LEFTKEY_ARV = 460;
  RIGHTKEY_ARV = 50;
  SELKEY_ARV = 690;
  NOKEY_ARV = 1000;
  }
  else if (dev == CYTRON)
  {
  UPKEY_ARV = 131;
  DOWNKEY_ARV = 307;
  LEFTKEY_ARV = 480;
  RIGHTKEY_ARV = 0;
  SELKEY_ARV = 723;
  NOKEY_ARV = 1023;
  }
}

int DFR_Key::getKey()


tres chere J-M-L je m'excuse de vous avoir embetter, :smiley-confuse: et vous remercie infiniment pour votre aide et patience remarquable, Merci pour toute cette aide apporter, je vous respecte, cordialement.

J-M-L

Vous êtes sûr de bosser sur la bonne librairie?

Le compilateur se plaint de ne pas trouver la méthode setARV()

Et dans la classe DFR_Key vous n'avez de public que les méthodes suivantes:
Code: [Select]
    DFR_Key(int);
    int getKey();
    void setRate(int);


Je ne vois pas où c'est appelé
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Col68

Vous êtes sûr de bosser sur la bonne librairie?

Le compilateur se plaint de ne pas trouver la méthode setARV()

Et dans la classe DFR_Key vous n'avez de public que les méthodes suivantes:
Code: [Select]
    DFR_Key(int);
    int getKey();
    void setRate(int);


Je ne vois pas où c'est appelé
Bonjour très chère J-M-L,
tout d'abord je vous remercie infiniment pour votre soutien, votre patience et vos réponses très instructif, j'ai enregistré vos explications qui seront comme un cours pour moi.

J'ai reçu les 2 fichiers modifié DFR_Key.h et DFR_Key.cpp, me reste à supprimer l'ancien et installer le tout correctement pour voir si tout est ok, je vais partager les 2 fichiers modifiés.

J'attaque de suite et vous tiens au courant de l'avancement du projet,
Très aimable J-M-L je vous est pris la tête avec mes histoires d'amateur, pardonné moi, très grand Respect à J-M-L, Cordialement.

J-M-L

pas de soucis, si je suis ici et que je participe, pas la peine de vous excuser, c'est fait volontiers
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Col68

Bonsoir, Merci pour votre comprehention chere J-M-L

voici les petites modification apporter par Mr Keith aux 2 fichiers de la librairie,  (DFR_Key.h et DFR_Key.cpp) les modifs effectuer sont commenter en anglais, ce sont les modifs que vous m'aviez conseiller, merci encore J_M_L.

Code: [Select]
#ifndef DFR_Key_h
#define DFR_Key_h

#include "Arduino.h"

#define SAMPLE_WAIT -1
#define NO_KEY 0
#define UP_KEY 3
#define DOWN_KEY 4
#define LEFT_KEY 2
#define RIGHT_KEY 5
#define SELECT_KEY 1

class DFR_Key
{
  public:
    DFR_Key(int);
    int getKey();
    void setRate(int);
  private:
    int _refreshRate;
    int _keyPin;
    int _threshold;
    int _keyIn;
    int _curInput;
    int _curKey;
    int _prevInput;
    int _prevKey;
    boolean _change;
    unsigned long _oldTime;
    void setARV(int, int); // KH added from .cpp file
};

#endif


Code: [Select]
include "Arduino.h"
#include "DFR_Key.h"

static int DEFAULT_KEY_PIN = 0;
static int DEFAULT_THRESHOLD = 5;

static int DFROBOT = 0;
static int CYTRON = 1;

static int UPKEY_ARV = 131;
static int DOWNKEY_ARV = 307;
static int LEFTKEY_ARV = 480;
static int RIGHTKEY_ARV = 0;
static int SELKEY_ARV = 723;
static int NOKEY_ARV = 1023;

DFR_Key::DFR_Key(int dev)
{
  _refreshRate = 10;
  _keyPin = DEFAULT_KEY_PIN;
  _threshold = DEFAULT_THRESHOLD;
  _keyIn = NO_KEY;
  _curInput = NO_KEY;
  _curKey = NO_KEY;
  _prevInput = NO_KEY;
  _prevKey = NO_KEY;
  _oldTime = 0;
  
  if (dev == DFROBOT) // KH change, "dev" was "def", DFROBOT was DFKEY
// was   if (def == DFRKEY)
  {
  UPKEY_ARV = 144;
  DOWNKEY_ARV = 329;
  LEFTKEY_ARV = 505;
  RIGHTKEY_ARV = 0;
  SELKEY_ARV = 742;
  NOKEY_ARV = 1023;
  }
  else if (dev == CYTRON) // KH change, "dev" was "def"
  {
  UPKEY_ARV = 131;
  DOWNKEY_ARV = 307;
  LEFTKEY_ARV = 480;
  RIGHTKEY_ARV = 0;
  SELKEY_ARV = 723;
  NOKEY_ARV = 1023;
  }
}

int DFR_Key::getKey()
{
 if (millis() > _oldTime + _refreshRate)
 {
    _prevInput = _curInput;
    _curInput = analogRead(_keyPin);
  
    if (_curInput == _prevInput)
    {
      _change = false;
      _curKey = _prevKey;
    }
    else
    {
      _change = true;
      _prevKey = _curKey;
  
      if (_curInput > UPKEY_ARV - _threshold && _curInput < UPKEY_ARV + _threshold ) _curKey = UP_KEY;
      else if (_curInput > DOWNKEY_ARV - _threshold && _curInput < DOWNKEY_ARV + _threshold ) _curKey = DOWN_KEY;
      else if (_curInput > RIGHTKEY_ARV - _threshold && _curInput < RIGHTKEY_ARV + _threshold ) _curKey = RIGHT_KEY;
      else if (_curInput > LEFTKEY_ARV - _threshold && _curInput < LEFTKEY_ARV + _threshold ) _curKey = LEFT_KEY;
      else if (_curInput > SELKEY_ARV - _threshold && _curInput < SELKEY_ARV + _threshold ) _curKey = SELECT_KEY;
      else _curKey = NO_KEY;
   }
  
   if (_change) return _curKey; else return SAMPLE_WAIT;
   _oldTime = millis();
 }
}

void DFR_Key::setRate(int rate)
{
  _refreshRate = rate;
}

void DFR_Key::setARV(int key, int dev)
{
 

}


Tres aimable Mr Keith, je lui remercie encore et encore.

Tout est OK apres avoir modifier les fichiers l'IDE accepte la librairie DFR_Key
Mais...
et oui malheureusement sa ne fonctionne toujours pas car quand j'inclue la librairie
il est inscrit ;
#include DFR_Key.h.h au lieu de DFR_Key.h  :smiley-cry:

j'y crois pas, c'est incroyable.  :smiley-sweat:  



J-M-L

Quote
Mais... et oui malheureusement sa ne fonctionne toujours pas car quand j'inclue la librairie il est inscrit ;
#include DFR_Key.h.h au lieu de DFR_Key.h  :smiley-cry:
comprend pas ce que vous dites... c'est écrit où?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Col68

comprend pas ce que vous dites... c'est écrit où?
C'est ecrit sur la code juste avant de compiler au moment de verifier, j'inclue la librairie et au lieu de me mettre #include <DFR_Key.h> il est ecrit #include <DFR_Key.h.h> il y a un (point) et un (h) en trop  :smiley-roll-sweat:

Col68

En fait j'ai pas de chance ! voici le code erreur

Code: [Select]
Arduino : 1.8.4 (Windows 7), Carte : "Arduino/Genuino Uno"

 "C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp.cpp" -o "C:\Users\\AppData\Local\Temp\arduino_build_620934\preproc\ctags_target_for_gcc_minus_e.cpp"
C:\Users\\Documents\Arduino\libraries\DFR_Key\DFR_Key.cpp.cpp:2:21: fatal error: DFR_Key.h: No such file or directory

 #include "DFR_Key.h"

                     ^

compilation terminated.

Utilisation de la bibliothèque DFR_Key prise dans le dossier : C:\Users\\Documents\Arduino\libraries\DFR_Key (legacy)
Utilisation de la bibliothèque DHT_sensor_library version 1.2.3 dans le dossier: C:\Users\\Documents\Arduino\libraries\DHT_sensor_library
Utilisation de la bibliothèque Wire version 1.0 dans le dossier: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
Utilisation de la bibliothèque NewliquidCrystal prise dans le dossier : C:\Users\\Documents\Arduino\libraries\NewliquidCrystal (legacy)
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

Go Up