(résolu par suppession PID)compilation error problem

Bonjour nouveau sur le forum et en programmation. l'anglais n'est pas mon fort donc voila les deux version GOOGLE traduction j'essaye de faire un thermostat pour ma brasserie. j'utilise des capteurs onwires. je suis arrivé à afficher sur un lcd 20x4 les deux températures et les deux valeurs de consignes souhaités. pour la commande de chauffe je voudrais utiliser la librairies PID_v1 mais là tout se gâte. à la compilation j'ai une erreur concernant les deviceAddress de la librairie ONWIRES erreur de compilation affichés : thermostatBrasserie.cpp:19:23: error: variable or field ‘printTemperature’ declared void thermostatBrasserie.cpp:19:23: error: ‘DeviceAddress’ was not declared in this scope thermostatBrasserie.cpp: In function ‘void loop()’: thermostatBrasserie.cpp:127:34: error: ‘deviceAddress’ was not declared in this scope si quelqu'un pouvait m'expliquer ce serait sympa car je ne trouve rien concernant les erreurs affiché par GUI arduino Merci

Hello new to the forum and programming. English is not my forte so here are the two versions GOOGLE translation I try to do a thermostat for my brewery.I use onwires sensors. I got to display on a 20x4 lcd two temperatures and two setpoints desired. for controlling heater I would use the libraries PID_v1 but then everything is spoiled. the compilation I get an error on DeviceAddress library ONWIRES compilation error displayed: thermostatBrasserie.cpp: 19:23: error: variable or field 'printTemperature' Declared voidthermostatBrasserie.cpp: 19:23: error: 'DeviceAddress' was Not Declared in this scope thermostatBrasserie.cpp: In function 'void loop ()': thermostatBrasserie.cpp: 127:34: error: 'DeviceAddress' was Not Declared in this scope if someone could explain it would be nice because I can not find anything about errors displayed by GUI arduino thank you

bonjour, le code serait plus parlant.

infobarquee:
bonjour,
le code serait plus parlant.

effectivement le voici

/* thermostat pour ma brasserie

version 1.0 2/4/2013_10:31
affichage des températures des capteurs et des valeurs de consigne OK

deux capteurs dc18b20 un pour la cuve chauffe-eau et un pour la cuve brassin
deux potentiomètres pour la consigne de température
le thermostat pour la cuve chauffe-eau commande la résistance chauffante
le thermostat pour la cuve brassin commande la pompe de ciculation
sur l’affichage deux lignes température et consigne pour brassin et cuve*/

#include <PID_v1.h>
#define RelayPinBrassin 9
#define RelayPinCuve 10
double SetPoint1, Input1, Output1, Setpoint1, Input2, Output2, Setpoint2;
PID myPID1(&Input1, &Output1, &Setpoint1, 2,5,1, DIRECT);
PID myPID2(&Input2, &Output2, &Setpoint2, 2,5,1, DIRECT);

int WindowSize = 5000;
unsigned long windowStartTime;

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

int brassin = A0 ;
int consigneBrassin = 0 ;
int cuve = A1 ;
int consigneCuve = 0 ;
float setBrassin = 0 ;
float setCuve =0 ;
int Brassin = 0;
int Cuve =0 ;

// lcd broche
// RS 2
// E 3
// D1 4
// D2 5
// D3 6
// D4 7

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

#define ONE_WIRE_BUS 8

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress thermometreBrassin = { 0x28, 0x5F, 0x14, 0xDD, 0x03, 0x00, 0x00, 0x0F };
DeviceAddress thermometreCuve = { 0x28, 0x01, 0x1E, 0xDD, 0x03, 0x00, 0x00, 0x8F };

void setup(void)
{

sensors.begin();
sensors.setResolution(thermometreBrassin , 10);
sensors.setResolution(thermometreCuve , 10);

lcd.begin(20,2);
lcd.print( " LCD OK");
delay (1000);
lcd.clear();
lcd.print("Brassin C: Cuve C: ");

pinMode(Brassin, OUTPUT);
digitalWrite(Brassin, LOW);
pinMode(Cuve, OUTPUT);
digitalWrite(Cuve, LOW);

/*windowStartTime = millis();
Setpoint1 = (setBrassin);
Setpoint2 = (setCuve);

myMIP1.SetOutputLimits(0, WindowSize);
myPID2 SetOutputLimits(0, WindowSize);

mypid1.SetMode(AUTOMATIC);
mypid2.SetMode(AUTOMATIC);*/

}

void printTemperature(DeviceAddress deviceAddress)
{

float tempC = sensors.getTempC(deviceAddress);
float t1tempC = sensors.getTempC(thermometreBrassin);
float t2tempC = sensors.getTempC(thermometreCuve);
lcd.print (tempC);
// lcd.print("/");
}

void printConsigne() //lecture de la valeur des consignes brassin et cuve
{

consigneCuve = analogRead(brassin);

setCuve = consigneCuve / 10.24;

consigneBrassin = analogRead(cuve);

setBrassin = consigneBrassin / 10.24;

lcd.setCursor(16,0);
lcd.print (setBrassin);
lcd.setCursor(16,1);
lcd.print (setCuve);

}

void loop()
{

sensors.requestTemperatures();

lcd.setCursor(8,0);

printTemperature(thermometreBrassin);

lcd.setCursor(8,1);

printTemperature(thermometreCuve);

printConsigne();

printConsigne();

/*Input1 = (t1TempC),
mypid1.Compute();

if(millis() - windowStartTime>WindowSize)
{
windowStratTime =+ WindowSize;
}
if (Output < millis() - windowStartTime) digitalWrite(RelayPinBrassin,HIGH);
else digitalWrite(RelayPinBrassin, LOW);

Input2 = (t2TempC),
mypid2.Compute();

if(millis() - windowStartTime>WindowSize)
{
windowStratTime =+ WindowSize;
}
if (Output < millis() - windowStartTime) digitalWrite(RelayPinCuvr,HIGH);
else digitalWrite(RelayPinCuve, LOW);*/

}

ce code n’est certainement pas optimisé mais je débute donc j’ai pris un exemple de la librairie PID pour la commande de relais.

Bonjour,

Cette ligne :

thermostatBrasserie.cpp:19:23: error: variable or field ‘printTemperature’ declared void

Signifie que l'argument de printTemperature() n'est pas reconnu comme un type valide.

Essaye de mettre tout tes includes de manière organisé, l'ide arduino ajoute les prototypes après le premier #include de mémoire.

Bonsoir
je ne sais pas si ce programme fonctionne correctement ,la compilation ne réussissant pas, je n’ai testé que la partie affichage de la température issue des capteur et l’information des consignes sur A0 et A1 venant des potentiomètres. mais ta remarque est juste skywodd j’ai regroupé les bibliothèques en début de programme
#include <PID_v1.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
et je n’ai plus d’erreur de compilation. cala doit être ça la programmation structuré peut être
demain matin je teste
il faut que cela marche car je dois brasser ma première bière le 13 avril.
encore merci et bonne nuit

je réussi à piloter mes relais statiques pour chauffage et pompe avec des boucles IF ELSE je verrai à l'occasion pour le PID mais l'inertie de température est assez lente donc cela devrai aller pour l'instant merci pour l'aide reçu