[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 ?

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

Popular posts from this blog

Convierte tu Raspberry en un NAS. Firmware fvdw-sl 15.3 - Raspberry Pi Forums

How to format a Get Request

avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x62