Pagina 1 di 1

Simulazione forno

MessaggioInviato: 29 apr 2018, 19:52
da disne
Buonasera a tutti,
sto scrivendo uno sketch per impostare il timer di un forno tramite un trimmer o potenziometro
Con lo script che allego riesco ad impostare il timer tramite trimmer ma quando il led (il forno) si spegne, ruotando nuovamente il trimmer per variare il timer, il led (forno) non si attiva più. In un forno di casa, ruotando la manopola timer si varia il valore del timer in ogni istante.... vorrei simulare lo stesso. Dove sbaglio?

Codice: Seleziona tutto
unsigned long tempoAttuale;
int forno = 10;
//int trimmerForno = A0;

void setup() {
  Serial.begin(9600);
  pinMode(forno, OUTPUT);
  tempoAttuale = millis();
}

void loop() {
  unsigned long  tempoForno = map(analogRead(A1), 0, 1024, 0, 5000) ;
  if (millis() <= tempoAttuale - tempoForno)
  {
    digitalWrite(forno, HIGH);
    tempoAttuale = millis();
  }
  else {unsigned long tempoAttuale;
int forno = 10;unsigned long tempoAttuale;
int forno = 10;unsigned long tempoAttuale;
int forno = 10;
  Serial.print("  ");
  Serial.print(tempoAttuale);
  Serial.print("  ");
  Serial.println(tempoForno);
}

Re: Simulazione forno

MessaggioInviato: 29 apr 2018, 20:56
da IlGuru
millis()

Sbagli ad usare questa funzione.
Il suo valore si resetta solo alla partenza della MCU

Re: Simulazione forno

MessaggioInviato: 1 mag 2018, 10:15
da speedyant
Prova a separare le varie fasi in sketch diversi.

Re: Simulazione forno

MessaggioInviato: 1 mag 2018, 13:04
da IlGuru
Prova a disegnare un diagramma di flusso di quello che deve fare il tuo sketch e poi implementalo in C senza senza utilizzare funzioni di cui non hai letto la documentazione.

Re: Simulazione forno

MessaggioInviato: 1 mag 2018, 13:19
da biget
fosse solo millis()
magari ha incollato male il codice ma è tutto sbagliato :mrgreen:

Re: Simulazione forno

MessaggioInviato: 6 mag 2018, 21:28
da pgiagno
Non ho capito cosa vuoi fare. Provo a cercare di capire.

Il timer di un forno, collegato con l'accensione, non appena viene messo diverso da 0, accende il forno e comincia a contare il tempo a ritroso.
Se il timer non viene toccato, allo scadere del tempo impostato, il forno si spegne.
Se invece il timer viene cambiato, in più o in meno, il conteggio alla rovescia riparte istantaneamente dal nuovo valore.
Se il timer viene posto a 0, il forno si spegne.

E' questo il funzionamento che vuoi ottenere col tuo programma?

Ciao,
P.