Multiple sondes ds18B20 multiple relais

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));
    
}


:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

Bonjour problème résolu en décomposant la demande de température.

bonne journée

Christophe

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.