Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

8 postazioni temporizzate

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto Utentecarloc, Foto UtenteIsidoroKZ

0
voti

[1] 8 postazioni temporizzate

Messaggioda Foto Utentesetteali » 13 lug 2024, 0:39

Salve ho avuto questa richiesta, avere una consolle con 8 tasti separati con impostazione di tempi a scelta, tempi di multipli di 5' fino ad un massimo di 20'. Con il tempo selezionato su un display doppio a 7 segmenti, per ogni postazione che a scalare fino allo zero.

Mi spiego in un altro modo per cercare di essere più chiaro.
- Le postazioni sono 8 pulsanti e premendo il pulsante viene caricato un tempo di 5' ogni volta, massimo 20', cioè premuto 4 volte.
- Ogni pulsante ha 2 display 7 segmenti che indicano il tempo impostato.
- Il tempo scala di minuto in minuto fino ad arrivare a zero.
- Arrivato a zero si ha una segnalazione anche solo ottica.

Sembra un circuito semplice semplice, ma direi neanche più di tanto, è vero che in pratica sono 8 circuiti separati e questo semplifica soltanto la complessità totale, ma non vedo una soluzione facile da realizzare, perché io lo sto vedendo con circuiti integrati logici, perché ero abituato ad usarli e li ho anche a disposizione. Però non so se questa è la strada migliore per realizzare il circuito o se ci sono altre strade, che però per me rimangono ostiche e forse anche non percorribili, ma probabilmente con un po' di aiuti potrei affrontare il lavoro, comunque anche per il circuito con integrati logici, ho bisogno di aiuto.

Aspetto qualche idea per valutarla insieme e poter proseguire e buttare giù uno schema elettrico. Grazie
Alex
https://www.facebook.com/Elettronicaeelettrotecnica

<< vedi di pigliare arditamente in mano, il dizionario che ti suona in bocca,
se non altro è schietto e paesano.
(Giuseppe Giusti) <<
Avatar utente
Foto Utentesetteali
10,9k 5 5 9
Master
Master
 
Messaggi: 5514
Iscritto il: 15 dic 2013, 21:09

1
voti

[2] Re: 8 postazioni temporizzate

Messaggioda Foto Utentestandardoil » 13 lug 2024, 8:47

Prova a cercare e chiedere tra gli arduinomani

C'è gente che sbaverebbe per poterti aiutare
Avatar utente
Foto Utentestandardoil
440 2 4
Stabilizzato
Stabilizzato
 
Messaggi: 364
Iscritto il: 15 lug 2022, 19:14

1
voti

[3] Re: 8 postazioni temporizzate

Messaggioda Foto Utentedjnz » 13 lug 2024, 9:21

setteali ha scritto:- Le postazioni sono 8 pulsanti e premendo il pulsante viene caricato un tempo di 5' ogni volta, massimo 20', cioè premuto 4 volte.


Non è chiaro da quale momento (e con quale azione) il conteggio deve iniziare dopo il caricamento. Né se deve poter essere fermato o resettato.

Una soluzione a logica discreta mi sembra in effetti complicata, aumentare di cinque in cinque richiederà un addizionatore? Con un micro sarebbe banale, soprattutto usando display seriali già assemblati. Poi dipende anche se queste "otto sezioni" devono essere fisicamente separate o nello stesso contenitore.
Una domanda ben posta è già mezza risposta.
Avatar utente
Foto Utentedjnz
1.050 1 4 5
Expert
Expert
 
Messaggi: 570
Iscritto il: 26 lug 2020, 14:52

1
voti

[4] Re: 8 postazioni temporizzate

Messaggioda Foto UtenteEtemenanki » 13 lug 2024, 9:37

Con le porte logiche non sarebbe impossibile farne uno, in fondo prima dell'avvento delle MCU li si facevano proprio cosi, solo che serve un bel po di roba, un quarzettino di quelli da orologio, un divisore che fornisce il clock ad 1Hz, una catena di contatori presettabili, driver per i display che prendono i dati dalle uscite dei divisori, buffer per i preset da pilotare con il pulsante ... se poi lo devi replicare per 8 volte, gli integrati diventano tantini, cosi come il costo che lievita abbastanza.

Ecco, questo e' uno dei casi in cui non trovo affatto sbagliato usare una MCU al posto delle logiche discrete, al contrario di quando si deve leggere un pulsante per far scattare un rele', o lampeggiare un led, tanto per dirne alcune ;-)

Parli di tempi massimi di 20 minuti, immagino che un secondo in piu o in meno non sarebbero critici, quindi il semplice clock di una MCU senza RTC o altri sistemi ad alta precisione ti dovrebbero bastare ... l'unica cosa che non so e' se ci starebbe tutto in un 328P o se si dovrebbe passare a qualcosa con una memoria interna maggiore e qualche I-O in piu, tipo 1284P o simili, per gestire anche 16 display, oltre agli 8 pulsanti ed agli 8 eventuali rele'da pilotare (per i display usando gli shift register, non pilotandoli direttamente)
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
Avatar utente
Foto UtenteEtemenanki
6.938 3 5 10
Master
Master
 
Messaggi: 4378
Iscritto il: 2 apr 2021, 23:42
Località: Dalle parti di un grande lago ... :)

1
voti

[5] Re: 8 postazioni temporizzate

Messaggioda Foto Utenteboiler » 13 lug 2024, 9:40

Sicuramente, come ha scritto standardoil, si può realizzare in maniera estremamente semplice con un microcontroller. Però è banale.

Se vuoi continuare sulla strada della logica discreta, provo ad abbozzare una soluzione :ok:

Per ogni canale ti servono:
Due counter up/down con uscita BCD, come per esempio i CD40192.
Questi vengono collegati in cascata e realizzano il timer vero e proprio.
Ci vuole un clock con periodo 1 minuto e duty cycle 99.9% (suppergiú), che controlla la decrementazione del timer.
Il clock deve essere a livello logico 1 per la maggior parte del tempo per permettere l'incremento asincrono tramite il tasto, che deve triggerare un registro di shift pre-caricato con una sequenza che causi un incremento di 5... o forse possiamo usare un CD40192 anche per questa operazione.
L'uscita borrow del chip per le unità controlla l'enable del counter (come? dobbiamo ancora vedere, questa è un'area del circuito ad altissimo rischio di glitches, bisogna studiare bene se vogliamo fare clock-gating o se usiamo l'ingresso enable del chip, che però va ri-abilitato quando vuoi incrementare il timer, operazione asincrona e quindi con tutte le rogne di setup-time che ne conseguono).
Allo stesso tempo l'uscita borrow attiva un clock a frequenza 1 Hz (piú o meno) che viene mandato all'ingresso BL di un 74HC4511. Questo integrato converte il segnale BCD in 7 uscite open collector per controllare il tuo display a 7 segmenti. Anche di questi ne servono 2 per canale. Il segnale in ingresso su BL fa lampeggiare il display quando il timer arriva a zero.

Usare un altro tipo di counter, come il CD4510, ci permetterebbe di pilotarlo con un clock "rapido" (qualche kHz) e usare il clock con periodo 1 minuto per attivare l'enable (=carry in) dell'IC. Questo ci permette di sincronizzare il pulsante con un registro di shift pilotato dal clock veloce ed ottenere un circuito completamente sincrono, quindi piú robusto, ma di maggiore complessità.

I clock si possono generare facilmente con un 74HC123. Se hai esigenze di precisione, dobbiamo usare un quarzo e un divider.

Se vuoi approfondire possiamo provare a concretizzare il circuito.

Boiler
Avatar utente
Foto Utenteboiler
23,6k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 4898
Iscritto il: 9 nov 2011, 12:27

0
voti

[6] Re: 8 postazioni temporizzate

Messaggioda Foto Utenteboiler » 13 lug 2024, 9:58

Etemenanki ha scritto:non so e' se ci starebbe tutto in un 328P

Stima molto grossolana: in un 328P ci facciamo stare almeno 50 canali con questo tipo di funzionalità :mrgreen:
Per avere una risoluzione di 1 secondo, ogni canale occupa in RAM un uint16_t.
Tutto il resto del codice è stateless, a parte un uint8_t che ci serve per il ciclo "for" che passa da un canale all'altro, che viene triggerato dal terminal count di un timer.

Il codice stesso è probabilmente 40 linee di programma.
Ci si aggiungono quelle necessarie alla gestione degli I/O (ovviamente via I/O extenders).

Non ho la toolchain per questo microcontroller, altrimenti aprirei alla svelta un progetto, ma sono sicuro che l'applicazione dell'OP ci sta abbondantemente! :cool:

Boiler
Avatar utente
Foto Utenteboiler
23,6k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 4898
Iscritto il: 9 nov 2011, 12:27

0
voti

[7] Re: 8 postazioni temporizzate

Messaggioda Foto Utentesetteali » 13 lug 2024, 10:54

standardoil ha scritto:Prova a cercare e chiedere tra gli arduinomani


Mi sa che sia questa la strada.
djnz ha scritto:Non è chiaro da quale momento (e con quale azione) il conteggio deve iniziare dopo il caricamento. Né se deve poter essere fermato o resettato.


Dopo la scelta della temporizzazione.

..... Poi dipende anche se queste "otto sezioni" devono essere fisicamente separate o nello stesso contenitore.


Sezioni elettricamente separate, ma nello stesso contenitore.

Etemenanki ha scritto:Con le porte logiche non sarebbe impossibile farne uno,.. ... se poi lo devi replicare per 8 volte, gli integrati diventano tantini, cosi come il costo che lievita abbastanza.
......

Parli di tempi massimi di 20 minuti, immagino che un secondo in piu o in meno non sarebbero critici,...


Esatto il tempo non ha bisogno di grande precisione, anche 30" non sarebbero significativi.
Alex
https://www.facebook.com/Elettronicaeelettrotecnica

<< vedi di pigliare arditamente in mano, il dizionario che ti suona in bocca,
se non altro è schietto e paesano.
(Giuseppe Giusti) <<
Avatar utente
Foto Utentesetteali
10,9k 5 5 9
Master
Master
 
Messaggi: 5514
Iscritto il: 15 dic 2013, 21:09

0
voti

[8] Re: 8 postazioni temporizzate

Messaggioda Foto Utentesetteali » 13 lug 2024, 11:09

boiler ha scritto:Sicuramente, come ha scritto standardoil, si può realizzare in maniera estremamente semplice con un microcontroller. Però è banale.


Ancora un voto positivo al microcontroller.
Se vuoi continuare sulla strada della logica discreta, provo ad abbozzare una soluzione :ok:



Per ogni canale ti servono:
Due counter up/down con uscita BCD, come per esempio i CD40192.
Questi vengono collegati in cascata e realizzano il timer vero e proprio.
Ci vuole un clock con periodo 1 minuto e duty cycle 99.9% (suppergiú), che controlla la decrementazione del timer..........

Usare un altro tipo di counter, come il CD4510, ci permetterebbe di pilotarlo con un clock "rapido" (qualche kHz) e usare il clock con periodo 1 minuto per attivare l'enable (=carry in) dell'IC. Questo ci permette di


Se vuoi approfondire possiamo provare a concretizzare il circuito.


Approfondirei volentieri, anche e solo per ora a blocchi per avere una visione maggiore.
Anche perché mi sembra che la strada migliore e più semplice/economica sia quella di usare una MCU.


Boiler[/quote]
Alex
https://www.facebook.com/Elettronicaeelettrotecnica

<< vedi di pigliare arditamente in mano, il dizionario che ti suona in bocca,
se non altro è schietto e paesano.
(Giuseppe Giusti) <<
Avatar utente
Foto Utentesetteali
10,9k 5 5 9
Master
Master
 
Messaggi: 5514
Iscritto il: 15 dic 2013, 21:09

0
voti

[9] Re: 8 postazioni temporizzate

Messaggioda Foto UtenteThEnGi » 13 lug 2024, 11:18

setteali ha scritto:- Il tempo scala di minuto in minuto fino ad arrivare a zero.


Scala di Secondo in secondo :mrgreen:

Non ho capito se ogni postazione è a se e ha il suo countdown o sono tutti assieme:

Premo pulsante A : +5s
Premo pulsante B : +5s (= 10s)

Anche io voto la MCU, anche se i pulsanti sono lontani si può valutare un sistema master slave (se si necessita interconnessione)
Il costo di un DS3231 è (relativamente) irrisorio è si può usare il pin SQW per generare sincronismo ad 1Hz, non credo che rispetto ad un cristallo e relativa "demoltiplica" ( :mrgreen: ) la bom sia più grande.

O_/
Avatar utente
Foto UtenteThEnGi
1.616 2 6 8
Expert EY
Expert EY
 
Messaggi: 1709
Iscritto il: 6 ott 2022, 18:43

1
voti

[10] Re: 8 postazioni temporizzate

Messaggioda Foto Utenteboiler » 13 lug 2024, 12:06

setteali ha scritto:Approfondirei volentieri, anche e solo per ora a blocchi per avere una visione maggiore.

Al momento (sabato mattina :mrgreen:) la soluzione discreta con il minore rischio di glitches e hazards mi sembra questa (ho disegnato un canale solo):


Tutta la complessità si nasconde nella logica di controllo che ha le seguenti funzioni:

Dividere il clock
Per poter incrementare il valore del display di 5 in un colpo solo ad ogni pressione del tasto, dobbiamo poter contare pseudo-velocemente (minimo sindacale 10 Hz). D'altra parte però, quando abbiamo il conto alla rovescia, il periodo deve essere 1 minuto (0.0166 Hz). Per assicurate un funzionamento strettamente sincrono di tutta la logica combinatoria, il clock lento va derivato da quello veloce mediante un divisore e usato come enable per il contatore, che come trigger usa solo quello veloce.

Gestire l'enable
Quando arriviamo a zero, i contatori vanno disabilitati e l'oscillatore per il lampeggiamento del display attivato (se ti piace questa soluzione per l'indicazione della fine del conteggio, altrimenti ne cerchiamo un'altra).

Gestire l'incremento
Quando il pulsante viene premuto, la direzione di conteggio va messa a up e l'enable attivato per 5 cicli del clock veloce. Questa operazione va sincronizzata con l'enable per la direzione down (altrimenti si corre il rischio di avere un incremento supplementare indesiderato quando il tasto viene premuto allo scadere del minuto). Probabilmente si può realizzare abbastanza facilmente con un registro di shift caricabile in parallelo triggerato dal fianco passivo del clock rapido e abilitato dallo stesso enable che attiva il conteggio verso il basso. Ma richiede comunque diversi componenti aggiuntivi.
Edit (attenzione, brainstorming!): probabilmente si possono usare due registri di shift seriali in parallelo (uno per l'enable e l'altro per la direzione) triggerati su fianchi opposti del clock veloce. Vengono caricati in parallelo a frequenza elevata e triggerati allo stesso ritmo. L'LSB è riservato per il decremento e viene caricato con un 1 sull'enable una volta al minuto. I bit 1-5 sono riservati per l'incremento e vengono caricati con un 1 sull'enable se il pulsante è stato premuto durante l'ultimo ciclo. Con un modesto clock a un centinaio di Hz la serializzazione delle operazioni è invisibile all'occhio umano.

POR reset
All'accensione i counters possono trovarsi in qualsivoglia stato: deve avvenire un reset che li porti a zero.

Il circuito ha una complessità sufficiente da giustificare l'uso di una piccola CPLD. Ma a questo punto per un hobbysta è molto piú semplice...
Anche perché mi sembra che la strada migliore e più semplice/economica sia quella di usare una MCU.
... ecco, sì, appunto :ok:

Boiler
Avatar utente
Foto Utenteboiler
23,6k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 4898
Iscritto il: 9 nov 2011, 12:27

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Google Adsense [Bot] e 116 ospiti