Progetto tenda senza display e senza fine corsa.

Ciao a tutti, ora vorrei fare una centralina per i miei, senza display e senza fine corsa ma con alcuni led che indichino lo stato delle cose (vento, luce, apertura, chiusura) quindi devo modificare molte cose, ho mantenuto diverse parti del progetto originale come l'interblocco dei pulsanti e il sistema simile a quello degli alza vetri elettrici delle auto.

Vorrei che un evento come il vento o la luce mandassero in chiusura la tenda con un tempo predefinito (ora aspetta l'arrivo del finecorsa) ma,

diseccitasse e fosse possibile aprire nuovamente la tenda, per manutenzione (anche con l'evento in corso quindi di sera o col vento) per poi tornare a chiuderla in automatico trascorso il tempo dell'evento (20 minuti per la luce e 10 secondi per il vento).

gli eventi di intervento, in caso di guasto di un sensore, per manovrare la tenda in ogni momento, magari segnalato da un led lampeggiante?

Sto facendo diverse prove ma mi manca la conoscenza di diversi sistemi logici di funzionamento, vorrei arrivarci da solo ma mi servirebbe una traccia su come impostare tale funzione.

Come sempre vi ringrazio per l'eventuale aiuto :-.)

--
Saluti da Drizzt. 


www.agidone.altervista.org 
 Click to see the full signature
Reply to
Drizzt do'Urden
Loading thread data ...

Il 14/03/20 13:56, Drizzt do'Urden ha scritto:

Comincia a buttare giu` il pallogramma di tutti gli stati/situazioni in cui ti puoi trovare (un cerchio per ogni stato), degli eventi a cui vuoi rispondere in ogni stato con le relative azioni da compiere, e delle (eventuali) transizioni (frecce) da uno stato all'altro.

Fatto questo hai fatto il 90% del lavoro (e acquisito il metodo per risolvere qualsiasi altro problema anche multitasking):)

Reply to
Claudio_F

visto che puoi mandarlo manualmente, credo sia giusto un deviatore.

intervenire quando vuoi.

Reply to
Franco Af

Il 14/03/2020 15:33, Claudio_F ha scritto:

ecco, quando ho letto "pallogramma" ho subito pensato ad uno scherno :-) poi l'ho cercato su wikipedia ed esiste veramente, ero rimasto al diagramma di flusso, sono troppo antico :-P

di tutti gli stati/situazioni in

riesco a comprendere bene come fargli fare certe cose solo in certe condizioni, conosco le istruzioni if ma faccio tante prove e non sempre rispondono come vorrei. Anche le parentesi graffe non ho ancora ben compreso come e dove metterle...

--
Saluti da Drizzt. 


www.agidone.altervista.org 
 Click to see the full signature
Reply to
Drizzt do'Urden

Il 14/03/2020 17:49, Franco Af ha scritto:

capacita?

--
Saluti da Drizzt. 


www.agidone.altervista.org 
 Click to see the full signature
Reply to
Drizzt do'Urden

Il 14/03/2020 18:05, Franco Af ha scritto:

Ora sto seguendo questa via, sperem :-)

--
Saluti da Drizzt. 


www.agidone.altervista.org 
 Click to see the full signature
Reply to
Drizzt do'Urden

Il 14/03/20 17:54, Drizzt do'Urden ha scritto:

Anche io non sapevo se esisteva :D Comunque sono due diagrammi di tipo diverso. Il diagramma di flusso e` la rappresentazione delle singole operazioni nell'ordine in cui vengono eseguite (con relative ramificazioni if), mentre il diagramma degli stati e` un'analisi a livello piu` alto sul funzionamento complessivo del sistema (piu` vicino alla logica umana). Ogni stato e` descrivibile con un piccolo diagramma di flusso a parte che si occupa solo delle operazioni richieste da quello stato.

La buona notizia e` che sembra difficile e invece e` semplicissimo. Due concetti: una variabile di stato (che contiene la situazione attuale), e una struttura if/else if (o switch) che esegue solo la parte relativa a quello stato:

if (0 == stato) { ...... } else if (1 == stato) { ...... } else if (20 == stato) { ...... } else if (12 == stato) { ...... }

Pensandolo a stati e` cosi`:

SE stato 0: SE evento x: ...operazioni evento x... stato = 12; ALTRIMENTI SE evento y: ...operazioni evento y... stato = 8;

ALTRIMENTI SE stato 12: SE evento z: ...operazioni evento z... stato = 0; ALTRIMENTI SE evento w: ...operazioni evento w... stato = 99;

In questo esempio si vede come un evento 'x' nello stato 0 manda al 12, e un evento 'z' nel 12 rimanda allo 0. Se nello stato 0 non si rileva ne l'evento 'x' ne l' 'y' si rimane nello stesso stato.

Ad ogni giro di loop viene rieseguita la struttura ed eseguito lo stato attivo.

Gli stati sono le situazioni (esempio: chiusa, in apertura, aperta, in chiusura, in pausa ecc) in cui si puo` rimanere per un certo tempo.

Gli eventi sono le condizioni che ci interessa verificare (esempio rilevato vento, pulsante premuto, timeout ecc)

Questo e` un problema piu` sintattico. La risposta e`: sempre dove bisogna scrivere una o piu` istruzioni subordinate a qualcosa (if, else, for, while).

Reply to
Claudio_F

Drizzt do'Urden ha scritto:

si

o

mini

e

complicarsi la vita? se no, devi lavorarci sopra come hai fatto con il tuo

Reply to
emilio

Il 14/03/2020 22:44, emilio ha scritto:

Per ora funziona tutto, sicuramente il codice che ho scritto si potrebbe

schema e PCB tanto siamo obbligati in casa :-)

--
Saluti da Drizzt. 


www.agidone.altervista.org 
 Click to see the full signature
Reply to
Drizzt do'Urden

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.