Dubbio su un semaforo

Per imparare una nuova tecnica di solito uso un trucco
Ogni cosa che vedo mi domando come la farei usando < >
Quindi oggi andando al lavoro mi sono chiesto come fare un semaforo
Va bene, tanti temporizzatori, che sono delay in Arduino
Ma così e una semplice trasposizione di una serie di timer in una serie di delay
Quale sarebbe il valore aggiunto di usare Arduino?
Perché così mi tengo i miei timer, che conosco meglio

Dato che è il tipico esecrizio di fine anno di molti studenti, ogni tanto salta fuori e ... se ne è parlato un'infinità di volte. Fai una ricerca qui sul forum e troverai varie implementazioni.

Guglielmo

Potresti cercare di implementare un semaforo a prenotazione.

Immagina un semaforo su una via principale con un incrocio di una via secondaria e un passaggio pedonale.

Il funzionamento dovrebbe essere questo: il semaforo segna verde sulla via principale; c’è un sensore sulla via secondaria, se si presenta un’auto E sono passai più di (ad es) 60 secondi di verde sulla via principale, allora scatta la combinazione giallo+verde sulla via secondaria, finché il sensore non rileva più auto OPPURE passano (ad es) 30 secondi.

Se un pedone schiaccia il pulsante di prenotazione E sono passati più (ad es) di 30 secondi di verde sulla via principale, allora scatta la combinazione giallo/verde per i pedoni, che automaticamente fa passare anche l’eventuale auto dalla via secondaria.

In assenza di auto sulla via secondaria E di prenotazioni di pedoni, ogni (ad es) 2 minuti deve scattare COMUNQUE la combinazione giallo+verde sull’attraversamento pedonale e sulla via secondaria, anche per evitare che un pedone che non schiaccia il pulsante muoia di vecchiaia all’incrocio.

Mi sembra un sistema che possa trarre vantaggio da un’implementazione con Arduino. Prova

Ciao,
P.

Grazie, ma forse non mi hai capito bene
Io non voglio sapere come farlo, quello lo cerco e mi informo, giurin giuretta, non sono un vecchio bacucco rompiglione
Non capisco <perché> usare un Arduino invece che tanti relais
Faccio un esempio
Perché il PC IBM ha preso piede se esistevano ancora le macchine da scrivere?
La Killing application del PC è stato 123, non la videoscrittura
E quella di Arduino?

Non ho capito molto la tua domanda, posso chiederti alcuni chiarimenti?

AmericanDreamer:
Ogni cosa che vedo mi domando come la farei usando < >

cosa intendi con “usando < >”?

AmericanDreamer:
Perché così mi tengo i miei timer, che conosco meglio

Di che timer stai parlando?
Come lo faresti con i timer?
Hai pensato anche alla chiamata pedonale?

AmericanDreamer:
Va bene, tanti temporizzatori, che sono delay in Arduino

Qui mi permetto di metterti una pulce all’orecchio: invece di usare delay prova con millis()
Così non blocchi l’esecuzione in attesa del tempo e puoi far fare altro al micro nel frattempo.

AmericanDreamer:
Quale sarebbe il valore aggiunto di usare Arduino?

A scopo didattico, ti propongo un esercizio aggiuntivo.
Dotare il tuo semaforo di un sensore, scegli tu quale, per monitorare il traffico e variare i tempi in base alla situazione, se rilevi tante macchine in un senso e poche nell’altro potresti allungare il tempo del verde per il primo senso di marcia…

Non ho cercato sul forum come suggerito da Guglielmo, forse ci sono già tutti questi spunti per rendere più “intelligente” una “stupida” sequenza di timer.

EDIT:
Mi sono sovrapposto al tuo post che fornisce già alcune risposte alle mie domande…

Non ho tanto capito il punto ma ti posso proporre quest'esercizio:
Non usare i delay ma per temporizzare le varie fasi usa millis() una volta che avrai ottenuto, ad esempio, rosso acceso per 5 secondi, verde acceso per 12 secondi, giallo acceso per 3 secondi e tutto funzionerà ciclicamente aggiungi un pulsante tipo chiamata d'emergenza, questo semaforo è all'uscita di una caserma dei vigili del fuoco che quando devono uscire premono il pulsante, quando viene premuto se sei nello stato rosso non ti muovi da questo stato fineché non viene èremuto nuovamente il pulsante, se sei in giallo aspetti il tempo restante e poi una volta raggiunto il rosso sei nel caso precedente (aspetti la nuova pressione del pulsante prima di tornare al ciclo normale) se sei in verde passi immediatamente in giallo per i secondi necessari e quando arrivi al rosso sei di nuovo al punto precdente di attesa di pressione pulsante prima di tornare al ciclo.
Non è super complicato, ti da un motivo per usare Arduino e nel contempo impari qualche nozione (millis(), macchina a stati finit, interrupt, ecc.)
Edit = Altro spunto sulla falsa riga di pgiagno e di maubarzi, adesso hai idee inabbondanza credo :slight_smile:

Ah ok
Adesso forse ho capito
E si può fare con un Arduino
Uno di quelli da 14 PIN?

Sono confuso
Risposte che si incrociano
Limite dei 5 minuti
Adesso mi fermo a pensare

Una UNO vuoi dire, con 14 pin digitali
Sì anche perché in realtà i pin digitali sono 20, utili 18
Killer application, non Killing, Killing era un fumetto erotico di quando era giovane papà, gliene ho trovati un botto quando ero ragazzo.... Vabbe non siamo qui a parlare dei nostri ormoni
Bella l'idea del semaforo, la "rubo" per i miei "canuti studentelli" e la mia diversamente piatta barista
Domani propongo il piano del corso
Speriamo venga accettato

Edit canuti non canguri
Android non capisce il latino, ma vive in Australia

Una volta i semafori erano con relais... Attualmente credo siano tutti plc.

[OT]
Dalle mie parti hanno messo un semaforo intelligente con sensore per vedere se ci sono macchine in attesa e velocizzare il verde, vanificato da un albero messo un metro prima del sensore.
In estate la gente si ferma un po' prima, all'ombra, il sensore non li vede e li fa aspettare fino alla pensione...
Si mettono all'ombra per stare al fresco e il semaforo ce li tiene per ore...
Più intelligente di così ... :smiley:
[/OT]

Per maubarzi
Tra le parentesi intendevo
Invece dai miei ne hanno messo uno meno furbo ancora

Lo hanno messo il sensore < dopo> la linea d’arresto
Non sente M A I un’auto

Forse la pastasciutta ha portato consiglio
Si, una 1r3, quella da 20 PIN, ma come fai a dire che sono utili 18?
La pastasciutta ha portato consiglio:
Se il semaforo lo faccio meccanico, per dire, se cambio qualcosa devo mettermi a cambiare camme, viti e dadi
Se lo faccio elettrico devo scablare e ricablare ad ogni cambio
Se lo faccio con un plc o con Arduino ( sono simili?) Basta che cambio il programma, giusto?
Lavoro di tastiera, non con la chiave del 14...
Posso cambiare programma senza togliere la scheda 1r3 dal circuito?
È così la killing application?

AmericanDreamer:
Si, una 1r3, quella da 20 PIN, ma come fai a dire che sono utili 18?

Hai 14 pin digitali, più 6 pin analogici che sono tutti utilizzabili come pin digitali quindi 20 pin …
… se lasci liberi quelli che servono per l’interfaccia Seriale <-> USB (0 e 1) te ne restano 18, se non ti serve la seriale, li usi tutti e 20.

Guglielmo

AmericanDreamer:
Se lo faccio con un plc o con Arduino ( sono simili?)

Beh, se prendi un microcontroller come quello di Arduino, lo circondi di ingressi/uscite di potenza isolate e protette da scariche e disturbi, e fai certificare il tutto per usi civili/industriali hai in pratica l’equivalente di un PLC.

Basta che cambio il programma, giusto?

È così la killing application?

Esatto (killing a parte :roll_eyes: ), un componente universale che può eseguire infiniti diversi programmi. E i programmi stessi possono essere pensati in molti modi diversi (semplice simulazione di relé, simulazione di porte logiche, blocchi funzionali, funzioni C dirette, oggetti, un misto di tutto questo a seconda di come è più comodo ecc).

AmericanDreamer:
Forse la pastasciutta ha portato consiglio

beato te che ti fa questo effetto, a me porta botte di sonno :wink:

AmericanDreamer:
Se lo faccio con un plc o con Arduino ( sono simili?) Basta che cambio il programma, giusto?
Lavoro di tastiera, non con la chiave del 14...
Posso cambiare programma senza togliere la scheda 1r3 dal circuito?

Esatto, e poi ci puoi aggiungere vari optional per rendere questo semaforo ancora più intelligente:

  • scheda sd per registrare tutte le variazioni, così in caso di incidente si sa esattamente chi è passato col rosso :wink:
  • fotocamera per fare la foto a chi passa col rosso (qui siamo però al limite con le capacità di Arduino e si deve passare a qualcosa di un po' più prestante)
  • rtc (orologio) per poter cambiare i cicli e le temporizzazioni in base alle fasce orarie, ad es. per ottimizzarlo per l'uscita degli studenti da scuola.
  • sensore (da mettere rigorosamente dopo un albero o dopo la linea di arresto) per rilevare la presenza delle auto in modo da accelerargli il verde :stuck_out_tongue:
  • fotocellula per contare il passaggio delle auto, così da evitare di mettere gli studenti a contare le macchine quando si vuole fare un'indagine sul traffico.
  • ...
    e chi più ne ha più ne metta.

Per AmericanDreamer

Lo hanno messo il sensore < dopo> la linea d’arresto
Non sente M A I un’auto

quello l’hanno messo per vedere chi passa con il rosso

rslogix52

Nonono proprio sbagliato
Settimana dopo hanno spostato....

La riga d'arresto, in mezzo all'incrocio....

Un genio tira l'altro...

Comunque
Se metto 8 led
Non solo stesso piedino, uno per piedino
Un 1r3 me li tiene?

Tanto per cominciare ricordati di metterci in serie le necessarie resistenze (una per LED) e poi ...
... sei veramnete al limite ... ricorda che, ogni pin di Arduino può dare al massimo, a Vcc, 40 mA (... ma quello è veramente un limite, nel normale funzionamento occorre stare al 60-70% di detto valore) ed inoltre la somma di tutti i pin e dell'assorbimento del chip, non deve superare al massimo i 200 mA (... e anche qui massimo va considerato come valore limite, ma nel normale funzionamento occorre stare al 60-70% di detto valore). Assorbimenti oltre detti limiti possono danneggiare irrimediabilmente il chip.

Guglielmo