(Risolto) Problema di accensione led

Buongiorno a tutti, mi sto avvicinando al mondo di arduino dopo anni dall’uscita di scuola di elettronica…
naturalmente essendo passata una decade non ricordo praticamente piu nulla…
questo il mio progetto:
Arduino uno a cui ho collegato un monitor lcd (funziona perfettamente dopo aver scopiazzato il codice di esempio), un sensore di temperatura Dallas (anche lui tutto ok), a questo punto ho cercato di crearmi un termostato per casa, fin qui tutto bene, ma il mio problema è il seguente: ho impostato la soglia di accensione del boiler (al momento un semplice led) e impostato un ciclo if per accenderlo e spegnerlo,a questo punto ho messo anche un led per segnalare una temperatura accettabile (> della soglia). il problema sorge quando collego il tutto, il led rosso (che sarebbe il boiler) rimane costantemente spento mentre il led verde (corretta temperatura) rimane costanetemente acceso… il codice è questo:

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 6

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float Soglia = (23,00);
boolean stato9;
boolean stato10;

void setup(void)
{
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
  lcd.begin(16, 2);
  Serial.print("Locating devices...");
  sensors.begin();
  Serial.print("Found ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" devices.");

  Serial.print("Parasite power is: "); 
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");
  
  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0"); 
  
  Serial.print("Device 0 Address: ");
  printAddress(insideThermometer);
  Serial.println();

  sensors.setResolution(insideThermometer, 9);
 
  Serial.print("Device 0 Resolution: ");
  Serial.print(sensors.getResolution(insideThermometer), DEC); 
  Serial.println();

}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print("Temp C: ");
  Serial.print(tempC);
  delay(500);
  lcd.home();
  lcd.print("T: ");
  lcd.print(tempC);
  lcd.print(" Gradi");
  lcd.setCursor(0, 1);
  stato9 = digitalRead(9);
  stato10 = digitalRead(10);
  lcd.print("9: ");
  lcd.print(stato9);
  lcd.print(" 10: ");
  lcd.print(stato10);
  
  if (tempC <= Soglia) { //temperatura minore della soglia
    digitalWrite(10, HIGH); //led rosso LOW
    digitalWrite(9, LOW);  //led verde LOW
  }
  else {
    digitalWrite(10, LOW);
    digitalWrite(9, HIGH);
  }
}

void loop(void)
{ 
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures();
  Serial.println("DONE");
  lcd.display();
  
  printTemperature(insideThermometer);
}

void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

la parte interessata è l’unica con i commenti…

qualcuno ha un idea?

ho provato a scollegare il pin 9 e a modificare il codice cosi:

 if (tempC >= Soglia) { //temperatura minore della soglia
    digitalWrite(10, HIGH); //led rosso LOW
  }
  else {
    digitalWrite(10, LOW);
  }

ma il problema ora è che il pin 10 sta a 1 e non si spegne piu…

Hai inserito setup(void) e loop(void) mentre dovrebbero essere setup() e loop().

In realtà funziona anche cosi... ho trovato l'errore, avevo inserito come indicatore dei decimali in float Soglia = (28.00) una vigola al posto del punto. cosi funziona... grazie comunque dell'aiuto :)