[RESOLU] invalid conversion from 'byte*' to 'byte'
bonjour,
j'ai modifié un sketch que j'ai récupéré pour afficher les valeurs de sondes 1wire de température
lorsque je compile j'ai cette erreur " invalid conversion 'byte*' 'byte'"
j'ai beau modifié le type byte adressecapteur mais rien n'y fait ...
avez vous une idée de ce qui se passe ?
j'ai modifié un sketch que j'ai récupéré pour afficher les valeurs de sondes 1wire de température
lorsque je compile j'ai cette erreur " invalid conversion 'byte*' 'byte'"
j'ai beau modifié le type byte adressecapteur mais rien n'y fait ...
avez vous une idée de ce qui se passe ?
code: [select]
// --- inclusion des librairies utilisées ---
#include <onewire.h> // librairie pour capteur onewire
// --- déclaration des constantes ---
//---- code des instructions du capteur
const int modelecture=0xbe;
const int lancermesure=0x44;
// --- constantes des broches ---
const int broche_onewire=2; //declaration constante de broche
const int broche_rel01=3;
const int broche_rel02=4;
// --- déclaration des variables globales ---
byte adrcaptpiscine[8] = {0x28, 0x6c, 0xbb, 0x25, 0x02, 0x0, 0x0, 0x21}; // adresse sonde piscine
byte adrcaptpac[8] = {0x28, 0x29, 0x79, 0x7b, 0x02, 0x0, 0x0, 0xd3}; // adresse sonde pac
byte adrcaptbulle[8] = {0x28, 0x7b, 0x65, 0x8b, 0x03, 0x0, 0x0, 0x14}; // adresse sonde pac bulle
byte data[12]; // tableau de 12 octets pour lecture des 9 registres de ram et des 3 registres d'eeprom du capteur 1 wire
float ma_tempetf=0.0;
string chainerecue=""; // déclare un string vide global
int comptchar=0; // variable de comptage des caractères reçus
float temppiscine=0.0;
float temppac=0.0;
float tempbulle=0.0;
// --- déclaration des objets utiles pour les fonctionnalités utilisées ---
onewire capteur(broche_onewire); // crée un objet 1 wire sur la broche voulue
void setup() { // debut de la fonction setup()
serial.begin(115200); // initialise connexion série à 115200 bauds
pinmode(broche_rel01, output); //met la broche en sortie
pinmode(broche_rel02, output); //met la broche en sortie
}
void loop(){ // debut de la fonction loop()
temppiscine = capteurmesuretemp(adrcaptpiscine); // appel de la fonction de mesure - renvoie une valeur float
temppac = capteurmesuretemp(adrcaptpac);
tempbulle = capteurmesuretemp(adrcaptbulle);
if (tempbulle > 30)
{ serial.println("temperature bulle sup 30 degres");
digitalwrite(broche_rel01,high);
digitalwrite(broche_rel02,low);} // met la broche au niveau haut (5v) - allume la led
else {serial.println("temperature bulle inf 30 degres");
digitalwrite(broche_rel02,high);
digitalwrite(broche_rel01,low); } // met la broche au niveau bas (0v) - éteint la led
delay(10000); // pause de 10 secondes
}
float capteurmesuretemp(byte adressecapteur) { //fonction qui renvoie résultat float selon l'adresse du capteur
//-------- variable locale de la fonction ----------
int tempet=0; // variable pour resultat brute de la mesure
float tempetf=0.0; // variable pour resultat à virgule de la mesure
// xxxxxxxxxxxxxxxxxxxxxx lancement d'une mesure et lecture du résultat xxxxxxxxxxxxxxxxxxxxxxx
// serial.println("**** acquisition d'une mesure de la temperature **** ");
// avant chaque nouvelle instruction, il faut :
// * initialiser le bus 1-wire
// * sélectionner le capteur détecté
// * envoyer l'instruction
//--------- lancer une mesure --------
capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné
capteur.select(adressecapteur); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction
capteur.write(lancermesure,1); // lance la mesure et alimente le capteur par la broche de donnée
//-------- pause d'une seconde -----
delay(1000); // au moins 750 ms
// il faudrait mettre une instruction capteur.depower ici, mais le reset va le faire
//---------- passer en mode lecture -------------
capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné
capteur.select(adressecapteur); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction
capteur.write(modelecture,1); // passe en mode lecture de la ram du capteur
// ----------- lire les 9 octets de la ram (appelé scratchpad) ----
for ( int = 0; < 9; i++) { // 9 octets de ram stockés dans 9 octets
data[i] = capteur.read(); // lecture de l'octet de rang stocké dans tableau data
}
//----- caclul de la température mesurée (enfin!) ---------
data[1]=data[1] & b10000111; // met à 0 les bits de signes inutiles
tempet=data[1]; // bits de poids fort
tempet=tempet<<8;
tempet=tempet+data[0]; // bits de poids faible
// --- en mode 12 bits, la résolution est de 0.0625°c - cf datasheet ds18b20
tempetf=float(tempet)*6.25;
tempetf=tempetf/100.0;
serial.println("**** temperature piscine **** ");
serial.println(tempetf);
return tempetf;
}
a quelle ligne ça aiderait ...
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > [RESOLU] invalid conversion from 'byte*' to 'byte'
arduino
Comments
Post a Comment