Bonjour a tous,
Je suis débutant en arduino et j'essais de recuperer la temperature sur mes moteurs pas a pas et declancher un ventilateur via un relais si ça depasse 30° par exemple. je vous joins le code car ça ne declanche pas les relais.
merci pour votre aide
christophe
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS_1 9
#define ONE_WIRE_BUS_2 10
#define ONE_WIRE_BUS_3 11
#define relayPin1 A1
#define relayPin2 A2
#define relayPin3 A3
const int TEMP_THRESHOLD_UPPER = 26; // upper threshold of temperature, change to your desire value
const int TEMP_THRESHOLD_LOWER = 20; // lower threshold of temperature, change to your desire value
const int temperature1 = relayPin1 ;
const int temperature2 = relayPin2 ;
const int temperature3 = relayPin3 ;
OneWire oneWire_1(ONE_WIRE_BUS_1);
OneWire oneWire_2(ONE_WIRE_BUS_2);
OneWire oneWire_3(ONE_WIRE_BUS_3);
DallasTemperature sensor_X(&oneWire_1);
DallasTemperature sensor_Y(&oneWire_2);
DallasTemperature sensor_Z(&oneWire_3);
void setup(void)
{
Serial.begin(9600);
lcd.begin(16,2);
Serial.println("Dallas Temperature Control Library Demo - TwoPin_DS18B20");
pinMode(relayPin1, OUTPUT);
pinMode(relayPin2, OUTPUT);
pinMode(relayPin3, OUTPUT);
sensor_X.begin(); // Sonde1
sensor_Y.begin(); // Sonde2
sensor_Z.begin(); // Sonde3
}
void loop(void)
{
Serial.print("Demander des températures...");
sensor_X.requestTemperatures();
sensor_Y.requestTemperatures();
sensor_Z.requestTemperatures();
Serial.println("terminé");
Serial.print("Moteur CNC X : ");
Serial.println(sensor_X.getTempCByIndex(0));
delay(500);
if(sensor_X.getTempCByIndex(0) > 30){
Serial.println("The fan is turned on");
digitalWrite(relayPin1, HIGH); // turn on
} else if(sensor_X.getTempCByIndex(0) < 20){
Serial.println("The fan is turned off");
digitalWrite(relayPin1, LOW); // turn off
}
delay(1000);
// lcd.clear();
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(" Moteur CNC X ");
lcd.setCursor(0,1);
lcd.print(" Temp: ");
lcd.print(sensor_X.getTempCByIndex(0));
Serial.print("Moteur CNC Y: ");
Serial.println(sensor_Y.getTempCByIndex(0));
delay(1000);
if(sensor_Y.getTempCByIndex(0) > 30){
Serial.println("The fan is turned on");
digitalWrite(relayPin2, HIGH); // turn on
} else if(sensor_Y.getTempCByIndex(0) < 20){
Serial.println("The fan is turned off");
digitalWrite(relayPin2, LOW); // turn off
}
delay(1000);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(" Moteur CNC Y ");
lcd.setCursor(0,1);
lcd.print(" Temp: ");
lcd.print(sensor_Y.getTempCByIndex(0));
Serial.print("Moteur CNC Z: ");
Serial.println(sensor_Z.getTempCByIndex(0));
delay(1000);
if(sensor_Y.getTempCByIndex(0) > 30){
Serial.println("The fan is turned on");
digitalWrite(relayPin3, HIGH); // turn on
} else if(sensor_Y.getTempCByIndex(0) < 20){
Serial.println("The fan is turned off");
digitalWrite(relayPin3, LOW); // turn off
}
delay(1000);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(" Moteur CNC Z ");
lcd.setCursor(0,1);
lcd.print(" Temp: ");
lcd.print(sensor_Z.getTempCByIndex(0));
}