Progetto tenda senza display e senza fine corsa.

Mar 14, 2020 9 Replies

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 http://agidone.altervista.org/recensione-opel-corsa-e-gpl-cosmo-2016/ MAI PIU' UN CESSO DI OPEL IN VITA MIA!!!! http://www.tappezzeriagraziella.com/

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):)

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

intervenire quando vuoi.

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 http://agidone.altervista.org/recensione-opel-corsa-e-gpl-cosmo-2016/ MAI PIU' UN CESSO DI OPEL IN VITA MIA!!!! http://www.tappezzeriagraziella.com/

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

capacita?

Saluti da Drizzt. www.agidone.altervista.org http://agidone.altervista.org/recensione-opel-corsa-e-gpl-cosmo-2016/ MAI PIU' UN CESSO DI OPEL IN VITA MIA!!!! http://www.tappezzeriagraziella.com/

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

Ora sto seguendo questa via, sperem :-)

-- Saluti da Drizzt.

formatting link
formatting link
MAI PIU' UN CESSO DI OPEL IN VITA MIA!!!!
formatting link

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).

Drizzt do'Urden ha scritto:

si

o

mini

e

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

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 http://agidone.altervista.org/recensione-opel-corsa-e-gpl-cosmo-2016/ MAI PIU' UN CESSO DI OPEL IN VITA MIA!!!! http://www.tappezzeriagraziella.com/

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required