|
Originariamente inviata da dr.jekyll
|
ecco il codice. Sai se il delay può essere usato anche per intervalli lunghi? (23 ore)
------------------------------------
int doso = 12;
int pump =11;
int ver= 10;
void setup() {
// initialize the digital pin as an output.
pinMode(doso, OUTPUT);
pinMode(pump, OUTPUT);
pinMode(ver, INPUT);
};
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(pump, HIGH);
if(digitalRead(ver)==HIGH){
while(1<2){
digitalWrite(pump, LOW);
delay(2000); //Tempo scesa acqua
digitalWrite(doso, HIGH);
delay(8000); //tempo necessario al dosaggio (calcolare tempi)
digitalWrite(doso, LOW);
delay(10000); //tempo assorbimento
digitalWrite(pump, HIGH);
delay(800000000);
};
};
};
-----------------------------
|
Se non ho capito male questo programmino dovrebbe essere per Arduino.
Teoricamente si potrebbe programmare un delay di 23 ore ma praticamente non ha senso.
durante il delay TUTTO il programma si ferma, quindi se questo codice viene inserito nel contesto di una gestione globale si bloccherebbe tutto e non andrebbe più nulla (no touch, no livelli, no luci...niente!).
Invece del delay dovreste creare delle variabili su cui scrivere il valore di millis() e confrontarlo col valore corrente ad ogni ciclo.
PS: non credo che il codice che hai postato funzioni, ci sono parecchi errori.