Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

isteresi con arduino

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[11] Re: isteresi con arduino

Messaggioda Foto Utentedadduni » 25 giu 2018, 19:57

tu hai due condizioni (credo):
sopra i 24 la ventola è accesa
sotto i 20 la ventola è spenta

in mezzo non cambia nulla: se ci arrivi scendendo è accesa la ventola e se ci arrivi salendo è acceso il riscaldatore no?

se cosi fosse il mio codice senza la riga in mezzo introuce l'isteresi corretta
Avatar utente
Foto Utentedadduni
2.073 2 7 12
Expert EY
Expert EY
 
Messaggi: 1370
Iscritto il: 23 mag 2014, 16:26

0
voti

[12] Re: isteresi con arduino

Messaggioda Foto Utentenicoct » 25 giu 2018, 21:18

Se è come dici tu è quello che servirebbe.....
Avatar utente
Foto Utentenicoct
139 1 6
Frequentatore
Frequentatore
 
Messaggi: 190
Iscritto il: 2 nov 2010, 15:56

0
voti

[13] Re: isteresi con arduino

Messaggioda Foto UtenteWALTERmwp » 26 giu 2018, 1:01

Così a me parrebbe semplice e pulito:
Codice: Seleziona tutto

    //...
    //...
    # define H_temp 491
    # define M_temp 450
    # define L_temp 409
    //...
    //...

    void setup()
    {
       //...
       //...
    }


    void loop()
    {
        int temperatura;
        temperatura =analogRead(0);
       
        if (temperatura > H_temp)
        {
            digitalWrite(ventola,HIGH);
        }
        else
        {
            if (temperatura < M_temp)
            {
                digitalWrite(ventola,LOW);
            }
        }

        if (temperatura < L_temp)
        {
            digitalWrite(piastra,HIGH);
        }
        else
        {
            if (temperatura > M_temp)
            {
                digitalWrite(piastra,LOW);
            }
        }
    }


L'isteresi diretta sulla variabile di processo (temperatura) l'hai già definita con i tre valori.
A meno che tu non abbia fluttuazioni istantanee che la portano dalla soglia alta (H_temp) alla soglia bassa (L_temp) o viceversa, non accade che nella medesima esecuzione del ciclo occorre attivare la ventola e disattivare la piastra o viceversa.
L'attivazione della ventola o della piastra avviene solo ed esclusivamente se, rispettivamente, la temperatura supera in eccesso H_temp o supera in difetto L_temp (verso della variazione).
Non credo occorranno flag di appoggio.

Quello che potresti ancora aggiungere, eventualmente, sarebbe una isteresi temporale rispetto al superamento di ogni soglia.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8982
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[14] Re: isteresi con arduino

Messaggioda Foto Utentenicoct » 26 giu 2018, 6:24

dadduni ha scritto:tu hai due condizioni (credo):
sopra i 24 la ventola è accesa
sotto i 20 la ventola è spenta

in mezzo non cambia nulla: se ci arrivi scendendo è accesa la ventola e se ci arrivi salendo è acceso il riscaldatore no?

se cosi fosse il mio codice senza la riga in mezzo introuce l'isteresi corretta

si dovrebbe essere corretta....non avendo al momento arduino...ho fatto una prova con il devc++ e sembra funzionare...
Avatar utente
Foto Utentenicoct
139 1 6
Frequentatore
Frequentatore
 
Messaggi: 190
Iscritto il: 2 nov 2010, 15:56

0
voti

[15] Re: isteresi con arduino

Messaggioda Foto Utentenicoct » 26 giu 2018, 6:26

WALTERmwp ha scritto:Così a me parrebbe semplice e pulito: (...)


anche questo programma mi sembra buono
grazie mille...
Ultima modifica di Foto UtenteWALTERmwp il 26 giu 2018, 8:54, modificato 1 volta in totale.
Motivazione: Ridotta citazione, la sua integrità è ininfluente.
Avatar utente
Foto Utentenicoct
139 1 6
Frequentatore
Frequentatore
 
Messaggi: 190
Iscritto il: 2 nov 2010, 15:56

Precedente

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti