ciao, ho scoperto il mondo di arduiino da più o meno 6 o 7 mesi e mi piace davvero molto, sia a livello hardware che software, infatti sto lavorando ad un progetto ma ho riscontrato un problema, sapreste darmi qualche aiuto?
Ho un circuito sulla breadboard dove lampeggia un led e allo stesso tempo una sonda ds18b20 mi legge la temperatura, il problema è che io voglio che il led faccia il blink con un delay di 1000 millisecondi mentre la sonda per aggiornarsi ha bisogno di un delay di 1000 millisecondi, così i delay si sommano con quelli della sonda e quindi il blink invece di essere 1000 high e 1000 low diventa 1000(della sonda)+1000(del blink) high e 1000(del blink) low con un totale di 2000 high e 1000 low, vorrei dividere i 2 delay affinché non si sommino, magari usando 2 cicli diversi o qualche altro metodo che non conosco, grazie per l'aiuto, lascio lo sketch qui sotto:
#include <OneWire.h> //inclusione librerie
#include <DallasTemperature.h>
#define led 9 //definizione dei pin
#define sonda 8
OneWire oneWire(8); //cose necessarie alla sonda ds18b20
DallasTemperature temp(&oneWire);
float tc; //creazione variabile per la temperatura in gradi celsius
void setup() {
Serial.begin(9600); //inizializzazione serial monitor
temp.begin(); //inizializzazione pin della sonda
pinMode(led, OUTPUT); //configurazione pin del led
}
void loop() {
temp.requestTemperatures(); //richiesta lettura temperatura alla sonda
tc = temp.getTempCByIndex(0);
Serial.print(tc);
Serial.println("°C");
delay(1000);
digitalWrite(led, HIGH); //blink del del led
delay(500);
digitalWrite(led, LOW);
delay(500);
}