Merci pour votre aide mais le casse tête continue...
J'ai toujours des erreurs de compilation
Je récapitule ci dessous les différentes versions de code proposées ainsi que les erreurs obtenues:
Le programme dans sa totalité pour que vous puissiez voir le code dans son intégralité avec la solution proposée par Super_CinCi
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>
const int Voie_0=0; //declaration constante de broche analogique
int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
int heure=0, minute=0, seconde=0, jour=0, mois=0, annee=0;
void setup() {
Serial.begin(19200);
ELCD_initialize();
delay(200);
ELCD_Clear_LCD();
ELCD_Cursor_Position(0, 0);
ELCD_put_str("Bonjour Pascal !");
delay(30);
ELCD_Cursor_Position(0, 1);
ELCD_put_str("Date:");
delay(30);
ELCD_Cursor_Position(0, 2);
ELCD_put_str("Heure:");
delay(30);
ELCD_Cursor_Position(0, 3);
ELCD_put_str("Temperature:");
delay(30);
}
void loop() {
// acquisition de la temperature
mesure_brute=analogRead(Voie_0);
mesure_brute=mesure_brute/2;
// Envoie la valeur sur l'afficheur LCD
ELCD_Cursor_Position(12, 3);
ELCD_put_str("--");
delay(500);
ELCD_Cursor_Position(12, 3);
[b] ELCD_put_str(string(mesure_brute));[/b]
//Acquisition de la date et affichage
//ELCD_Cursor_Position(12, 3);
//heure=RTC.get(DS1307_HR,true);
//Serial.print(heure);
delay(1000);
}
/* Low Level ELCD routine */
void ELCD_initialize(){
Serial.print(0xA0, BYTE);
}
void ELCD_Cursor_OFF(){
Serial.print(0xA3, BYTE);
Serial.print(0x0C, BYTE);
}
void ELCD_Cursor_ON(){
Serial.print(0xA3, BYTE);
Serial.print(0x0E, BYTE);
}
void ELCD_Clear_LCD(){
Serial.print(0xA3, BYTE);
Serial.print(0x01, BYTE);
}
void ELCD_Cursor_Position(int x, int y){
Serial.print(0xA1, BYTE);
Serial.print(x, BYTE);
Serial.print(y, BYTE);
}
void ELCD_put_str(char *str){
Serial.print(0xA2, BYTE);
while(*str)
Serial.print(*str++);
Serial.print(0, BYTE);
}
void ELCD_put_ch(char ch){
Serial.print(0xA2, BYTE);
Serial.print(ch);
Serial.print(0, BYTE);
}
J'obtiens cette erreur de compilation:
Bonjour_Pascal_ELCD.cpp: In function 'void loop()':
Bonjour_Pascal_ELCD:38: error: 'string' was not declared in this scope
VERSION DE SKYWOOD:
Extrait de la portion de code modifiée:
// acquisition de la temperature
mesure_brute=analogRead(Voie_0);
mesure_brute=mesure_brute/2;
// Envoie la valeur sur l'afficheur LCD
ELCD_Cursor_Position(12, 3);
ELCD_put_str("--");
delay(500);
ELCD_Cursor_Position(12, 3);
String str = mesure_brute;
ELCD_put_str(str.toCharArray(mesure_brute));
//Acquisition de la date et affichage
//ELCD_Cursor_Position(12, 3);
//heure=RTC.get(DS1307_HR,true);
//Serial.print(heure);
delay(1000);
}
J'obtiens cette erreur:
Bonjour_Pascal_ELCD.cpp: In function 'void loop()':
Bonjour_Pascal_ELCD:39: error: no matching function for call to 'String::toCharArray(int&)'
/Applications/ARDUINO/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/WString.h:80: note: candidates are: void String::toCharArray(char*, unsigned int)
ET ENFIN LA VERSION DE JEAN FRANCOIS:
Extrait du code modifié:
void loop() {
// acquisition de la temperature
mesure_brute=analogRead(Voie_0);
mesure_brute=mesure_brute/2;
// Envoie la valeur sur l'afficheur LCD
ELCD_Cursor_Position(12, 3);
ELCD_put_str("--");
delay(500);
ELCD_Cursor_Position(12, 3);
ELCD_put_str(mesure_brute);
//Acquisition de la date et affichage
//ELCD_Cursor_Position(12, 3);
//heure=RTC.get(DS1307_HR,true);
//Serial.print(heure);
delay(1000);
}
QUI ME DONNE CETTE ERREUR:
Bonjour_Pascal_ELCD.cpp: In function 'void loop()':
Bonjour_Pascal_ELCD:38: error: invalid conversion from 'int' to 'char*'
Bonjour_Pascal_ELCD:38: error: initializing argument 1 of 'void ELCD_put_str(char*)'
Comme vous pouvez le constater, c'est un peu compliqué.
Avez vous d'autres idées ?
Cdt,
Pascalou.
Edit de Jean-François : merci de mettre le code entre les balises "code"