Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



Bibliothèque => casse tete chinois...pour moi


 
Post new topic   Reply to topic    Simple-Duino Forum Index -> Accueil -> Présentez-vous
Previous topic :: Next topic  
Author Message
denis666666
Débutant

Offline

Joined: 11 Apr 2014
Posts: 7
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Fri 11 Apr - 16:51 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

PublicitéSupprimer les publicités ?
Bonjour a tous,

Je suis nouveau sur le forum.
Je débute dans le Arduino.

J'ai commencé à mettre en œuvre un petit capteur de température avec affiche sur un LCD .
Jusque là , rien de bien sorcier.

Pour peaufiner le code, j'ai voulu sortir la fonction d’acquisition de la température pour la mettre dans une bibliothèque.Et c'est là qu'est l'os!

Voici mon code de base:

#include <LiquidCrystal.h>

const int RS=2; //declaration constante de broche
const int E=3; //declaration constante de broche

const int D4=4; //declaration constante de broche
const int D5=5; //declaration constante de broche
const int D6=6; //declaration constante de broche
const int D7=7; //declaration constante de broche

const int tempSensor = A0; 

LiquidCrystal lcd(RS, E, D4, D5, D6, D7);// initialisation LCD en mode 4 bits

void setup()   {

lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes
delay(10); // pause rapide pour laisser temps initialisation

lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes

lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran
lcd.print("Arduino TEMP SENSOR") ; // affiche la chaîne texte - message de test
delay(700);

int lastTemp = -100;

}
int lastTemp = -100;
void loop(){

  float temp = lectureTemp();

  if( abs(temp-lastTemp)<0.20 )
    return;
  lastTemp = temp;
 
  // Afficher la valeur en evitant le
  //   lcd.clear(), pour éviter l'effet de
  //   scintillement.
lcd.setCursor(0, 2) ;
lcd.print("Temperature : ") ; // affiche la chaîne texte - message de test
lcd.print( temp,1 );
lcd.print( "c" );
delay(700); // pause de 2 secondes


}

float lectureTemp(){
 // Lecture de la valeur sur l'entrée analogique
 // Retourne une valeur entre 0->1024 pour 0->5v
 int valeur = analogRead(tempSensor); 

 // Converti la lecture en tension
 float tension = valeur * 5.0;
 tension /= 1024.0;
 
 // Convertir la tension (mv) en temperature
 float temperature = ((tension * 1000) - 500) / 10;
 
 return temperature;
}

Je l'ai diviser en 3 :

.H:

#ifndef Morse_h
#define Morse_h

#include "Arduino.h"

class CapteurTemp
{
  public:
    float lectureTemp();
  private:
};

#endif

.CPP

#include "Arduino.h"
#include "CapteurTemp.h"

const int tempSensor = A0; 

float CapteurTemp::lectureTemp(){

 int valeur = analogRead(tempSensor); 

 // Converti la lecture en tension
 float tension = valeur * 5.0;
 tension /= 1024.0;
 
 // Convertir la tension (mv) en temperature
 float temperature = ((tension * 1000) - 500) / 10;
 
 return temperature;
}

Fichier "Main":

#include <LiquidCrystal.h>
#include "CapteurTemp.h"

const int RS=2; //declaration constante de broche
const int E=3; //declaration constante de broche

const int D4=4; //declaration constante de broche
const int D5=5; //declaration constante de broche
const int D6=6; //declaration constante de broche
const int D7=7; //declaration constante de broche



LiquidCrystal lcd(RS, E, D4, D5, D6, D7);// initialisation LCD en mode 4 bits

void setup()   {

lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes
delay(10); // pause rapide pour laisser temps initialisation

lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes

lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran
lcd.print("Arduino TEMP SENSOR") ; // affiche la chaîne texte - message de test
delay(700);

int lastTemp = -100;

}
int lastTemp = -100;
void loop(){


 float temp =  CapteurTemp.lectureTemp(temperature);

  if( abs(temp-lastTemp)<0.20 )
    return;
  lastTemp = temp;
 
  // Afficher la valeur en evitant le
  //   lcd.clear(), pour éviter l'effet de
  //   scintillement.
lcd.setCursor(0, 2) ;
lcd.print("Temperature : ") ; // affiche la chaîne texte - message de test
lcd.print( temp,1 );
lcd.print( "c" );
delay(700); // pause de 2 secondes


}

Le soft Arduino me dit :

L36 expected primary expression before "." token  ( dans le main )


Je ne comprend pas le pourquoi du comment?
Quelqu'un peut il m'expliquer ?

D'avance merci
Back to top
seb03000
Débutant

Offline

Joined: 23 Feb 2014
Posts: 55
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Fri 11 Apr - 18:14 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

Bonjour.


 
Quote:
 
L36 expected primary expression before "." token  ( dans le main )




éssai de ne pas mettre les "  " dans le titre "Main"
Back to top
denis666666
Débutant

Offline

Joined: 11 Apr 2014
Posts: 7
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Fri 11 Apr - 20:36 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

???

Il n'y a pas de "" ligne 36...

Cordialement
Denis
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Sun 13 Apr - 07:57 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

Pourquoi tu déclares Morse_h dans ton .h et qu'ensuite tu appelles CapteurTemp.h dans ton .cpp ? Je trouve ça assez bizarre...
C'est l'exemple du site arduino.cc mais il ne faut pas le reprendre tel quel, il faut l'adapter à tes beoins  Okay
____________________________
http://simple-duino.com
Back to top
denis666666
Débutant

Offline

Joined: 11 Apr 2014
Posts: 7
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Sun 13 Apr - 19:51 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

merci pour cette réponse....je suis repéré! Embarassed
Bon je vais tenter de résumer ce que j'ai compris et là ou je cale

De mon code de départ , je veux extraire la fonction de lecture de température afin de la mettre dans une bibliothèque.

J'ai donc créé 2 fichiers: un .h et un .cpp .
Commençons par mon .h :

#ifndef CapteurTemp
#define CapteurTemp
#include "Arduino.h"

=> on évite les inclusions en boucle ( juste? ) + permet d'utiliser la bibliothèque de fonction Arduino

Ensuite, je défini ma classe:

class CapteurTemp
{
  public:
    float lectureTemp();
  private:
};

#endif

Est ce que jusque là pour toi c'est OK u dans la classe il y a d'autres choses à définir?

Merci d'avance Admin
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Sun 13 Apr - 20:52 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

Mhhh, visiblement c'est bon mais si d'autres peuvent donner leurs avis, c'est mieux car on sera meilleur à plusieurs  Wink
____________________________
http://simple-duino.com
Back to top
denis666666
Débutant

Offline

Joined: 11 Apr 2014
Posts: 7
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Sun 13 Apr - 21:29 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

OK quand je compile, voici ce que l'IDE m'affiche:
(voir image)
Peut être quand quelqu'un verra quelque chose qui m'échappe. Question

 
Back to top
denis666666
Débutant

Offline

Joined: 11 Apr 2014
Posts: 7
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Sun 13 Apr - 21:34 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

Back to top
denis666666
Débutant

Offline

Joined: 11 Apr 2014
Posts: 7
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Sun 13 Apr - 21:36 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Sun 13 Apr - 22:05 (2014)    Post subject: Bibliothèque => casse tete chinois...pour moi Reply with quote

#ifndef CapteurTemp_h
#define CapteurTemp_h


Essayes avec ça, ça devrait aller mieux 
____________________________
http://simple-duino.com
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Simple-Duino Forum Index -> Accueil -> Présentez-vous All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Index | Xooit.com free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino