|
|
|
|
Strumenti |
18-06-2022, 07:38 | #1 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
realizzare segnalatori luminosi sincronizzati azionati da pulsanti
Ciao a tutti,
avrei la necessità di eseguire questo impiantino elettrico in economia: 2 “semafori” (luce verde, gialla e rossa) con due pulsanti. Entrambi i “semafori" devono mostrare sempre la stessa luce (verde verde, giallo giallo…) e devono essere commutati di posizione da uno dei due pulsanti indifferentemente. Quindi: colore di partenza indifferente, premo pulsante, passa al successivo, premo pulsante, passa al successivo e così via. Finché non premo ancora la luce deve restare sempre accesa. Potete aiutarmi nella realizzazione? Se possibile 220V per evitare l’aggiunta di trasformatori, o almeno con trasformatore facile da trovare e economico (24V 0 12V). Grazie
__________________
NON SI FINISCE MAI DI IMPARARE |
19-06-2022, 10:55 | #2 |
Senior Member
Iscritto dal: Feb 2002
Città: Granducato di Toscana
Messaggi: 10034
|
Un paio di domande.
I semafori devono avere lampade da vedersi a distanza o basta accendere anche un singolo led? Riesci a costruirti un circuito elettronico (integrato, transistor, relè), inteso come preparazione e attrezzatura? Perchè con pochi euro potresti prendere un integrato che funge da contatore (un CD4017) ed usare i pulsanti per passare da un'uscita all'altra. Poi puoi pilotare direttamente i led oppure inserire transistor e relè per accendere qualsiasi tipo di lampada. In alternativa, con due righe di codice ed una scheda Arduino, te lo programmi in 5 minuti e ci piloti i tre led. Oppure ci puoi aggiungere una scheda relè per pilotare le lampade. Il costo è comunque irrisorio... |
19-06-2022, 13:57 | #3 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Ciao, intanto grazie.
Di elettronica so davvero poco o nulla(seguire le istruzioni e stagnare qualche componente). Solo un po' di "elettricità" per necessità di riparazione al volo su macchinari industriali se il problema è semplice. Un led sarebbe un po' troppo poco luminoso: diciamo che una classica luce da macchinario va bene e se non sbaglio quelle che usiamo noi sono proprio 24V, e quindi pensavo a qualcosa tramite relè. Arduino qualcosina avevo fatto qualche anno fa e quindi potrebbe essere un sistema. Avendo un po' fretta speravo in un qualcosa di tipo compro qualcosa e faccio i cablaggi necessari, però in alternativa avevo già messo in conto un arduino.
__________________
NON SI FINISCE MAI DI IMPARARE |
19-06-2022, 14:00 | #4 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Lo scopo è proprio quello di permettere a 2 persone relativamente distanti di comunicare in mezzo al gran rumore 3 tipi di situazione.
Purtroppo il mio budget è tendente allo zero e per questo motivo non ho mai fatto nulla finora.
__________________
NON SI FINISCE MAI DI IMPARARE |
19-06-2022, 17:08 | #5 |
Senior Member
Iscritto dal: Feb 2002
Città: Granducato di Toscana
Messaggi: 10034
|
Un Arduino e il relativo modulo a 4 relè ti costa una decina di euro dalla Cina.
Hai solo da aggiungere l'alimentatore, un contenitore e lampade con portalampada. Altrimenti se hai in zona un negozio che vende componenti elettronici, ti posso passare uno schema. Ma ti serve poi di saldarli e collegare i vari pin su una basetta millefori. |
19-06-2022, 19:04 | #6 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Direi che la soluzione con modulo a 4 relé forse è la cosa più semplice,
però se avessi voglia, quando avrei tempo, di passarmi lo schema per la basetta millefori forse mi farebbe anche più piacere
__________________
NON SI FINISCE MAI DI IMPARARE |
19-06-2022, 20:57 | #7 |
Senior Member
Iscritto dal: Feb 2002
Città: Granducato di Toscana
Messaggi: 10034
|
Ho trovato uno schema al volo che fa proprio al caso tuo:
Se servono più pulsanti, basta che li aggiungi in parallelo a quello che già c'è. Nello schema vengono fatti accendere dei led. Se vuoi usare delle lampadine, sulle uscite 3-2-4 devi montare (per ognuna) questi componenti qua sotto, ed utilizzare il contatto del relè per accenderle: |
20-06-2022, 06:22 | #8 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Grazie mille.
Mi è venuto solo un dubbio con Arduino: I pulsanti di comando li devo collegare all'Arduino e quindi viaggiano a 5V. Essendo un pulsante vicino alla scheda, ma l'altro a distanza di circa 30 - 40 metri: ho problemi di segnale a causa della lunghezza del cavo? Parlo da totale ignorante in materia
__________________
NON SI FINISCE MAI DI IMPARARE |
20-06-2022, 06:51 | #9 |
Senior Member
Iscritto dal: Feb 2002
Città: Granducato di Toscana
Messaggi: 10034
|
Non sono pochi... Sarebbe da provare.
Le soluzioni che mi vengono in mente al volo potrebbero essere varie . Potresti usare un cavo bipolare schermato, in modo da ridurre il più possibile le interferenze esterne. Oppure, se userai le lampadine a bassa tensione, portare sul pulsante un 24Vdc. Poi, una volta tornato nella scheda, lo riporti a 5V con un partitore di tensione. O ancora col 24V (anche ac in questo caso}, lo usi per eccitare un relè il cui contatto porta il 5V in ingresso a Arduino. |
23-06-2022, 18:08 | #10 |
Senior Member
Iscritto dal: May 2006
Città: Kandahar
Messaggi: 10419
|
Un interruttore wireless ( non wifi) a 4 canali, ne utilizzi 3 uno per lampada.
Non credo che costi troppo e sia difficile da realizzare, sui 25€ e funzionano a 24Vdc . Oppure, se la verde è sempre accesa, puoi usare un 2 canali. La verde la colleghi al NC e la rossa al NO quindi quando premi il ch1 si spegne la verde e si accende la rossa. Col secondo canale ci piloti la gialla. I telecomandi li puoi duplicare, dai cinesi li trovi sui 3-5 euro a seconda dei modelli. Quendo è necessario, il telecomando puoi tenerlo in tasca prenderlo e usarlo, l'interruttore devi raggiungerlo per usarlo. .
__________________
Sharkoon VG4-W - CoolerMaster GX650W - Asus TUF Z390-PLUS GAMING (WI-FI) - G.Skill 2x 8GB DDR4_3000 - Intel i5-9600K@4600 - Corsair H75 - ZeroSwap - Hot Swap - Crucial 2x M550 256GB RAID0 / 2x MX500 500GB - HP DVDRAM_GT80N - WD 2x WD10EZEX - Philips Brilliance 272B8Q -- Nikon D7k - Nikkor 18-105VR / 18-200VRii / 28-105D - Tamron 17-50SP 2,8 / SP70-300VC USD - Metz 48AF-1 Ultima modifica di UtenteSospeso : 23-06-2022 alle 18:10. |
06-07-2022, 21:30 | #11 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Non sono scomparso:
mi sto riguardando un corso su arduino perchè mi sono reso conto di aver praticamente dimenticato tutto. La parte difficile secondo me (e per me) è l'usare un unico pulsante: - deve mantenere il relè attivo anche se il pulsante non è premuto - deve verificare quale relè è attivo per passare a quello successivo nel momento in cui il pulsante viene premuto
__________________
NON SI FINISCE MAI DI IMPARARE |
06-07-2022, 22:00 | #12 |
Senior Member
Iscritto dal: Feb 2002
Città: Granducato di Toscana
Messaggi: 10034
|
La prima soluzione che mi viene in mente (dalla mia scarsa preparazione in programmazione) sarebbe quella di usare un contatore da associare ad ogni relè, ed usare il pulsante per incrementare il contatore.
Del tipo: Inizio col contatore ad 1 di default. Verifico lo stato del pulsante e, se risulta premuto, incremento di 1 il contatore ed attivo il relativo relè. E siccome non ho nulla da fare, ci provo al posto tuo.... Codice:
int CONT = 1; // imposto il valore iniziale del contatore ad 1 int StatoPulsante = 0; // variabile lettura del pulsante void setup() { pinMode(1, OUTPUT); // pin 1 relè rosso pinMode(2, OUTPUT); // pin 2 relè giallo pinMode(3, OUTPUT); // pin 3 relè verde pinMode(4, INPUT); // pin 4 pulsante digitalWrite (CONT, HIGH); // accendo subito il rosso } void loop() { StatoPulsante = digitalRead(4); // leggo lo stato del pulsante if (StatoPulsante == HIGH) { if (CONT == 3) CONT == 0; // controllo il valore del contatore e faccio il reset se all'ultimo valore possibile (3) CONT = CONT+1; // spengo tutte le uscite per riaccenderne una nel successivo loop digitalWrite (1, LOW); digitalWrite (2, LOW); digitalWrite (3, LOW); digitalWrite (CONT, HIGH); //attivo il relè relativo al contatore delay (500); // 1/2 secondo di antirimbalzo per il pulsante } } Chiedo in anticipo scusa per errori di sintassi e/o codice... Ultima modifica di leoben : 06-07-2022 alle 22:59. |
08-07-2022, 14:58 | #13 |
Senior Member
Iscritto dal: Sep 2008
Città: Torino sud
Messaggi: 1258
|
Senza fare cose troppo complicate puoi usare un commutatore sequenziale ad impulsi. Per intenderci sono quei relè che si usano quando devi accendere in sequenza le luci di una stanza.
Metti in parallelo i pulsanti di comando, idem per ogni coppia di lampade che deve essere accesa in contemporanea. Il tutto direttamente a 220V.
__________________
Un consumatore informato diventa un problema, cioè si trasforma da burattino inconsapevole in una persona cosciente e consapevole che può e soprattutto vuole scegliere. Perché quando puoi scegliere consapevolmente significa che hai la conoscenza, e se hai la conoscenza non sei più disposto a farti prendere in giro. |
13-07-2022, 22:00 | #14 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Grazie a tutti.
Sapresti indicarmi un commutatore a impulsi per gestire le 3 lampade? Ho guardato sul sito Finder ma onestamente ho avuto l'impressione che fossero tutti per gestire 2 lampade. Per quanto riguarda Arduino, ho cablato il tutto sulla basetta, ma ci deve essere qualcosa che non va nel codice. Purtroppo mi sono messo poco fa a preparare il tutto e devo dire che ora vado a nanna perchè non ho la lucidità di capire dove stà l'errore. Comunque parte con il led acceso ma non accade nulla alla pressione dell'interruttore collegato al pin 4 (per prova ho messo 4 led anziché la basetta con i 4 relé)
__________________
NON SI FINISCE MAI DI IMPARARE |
21-01-2023, 14:27 | #15 | |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Quote:
Torno all'attacco dopo parecchio tempo... purtroppo questo programma non cicla, cioè non ricomincia da capo e quindi esaurite le 3 pressioni sul tasto si blocca tutto.
__________________
NON SI FINISCE MAI DI IMPARARE Ultima modifica di evl : 21-01-2023 alle 14:33. |
|
23-01-2023, 15:00 | #16 |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 20816
|
Secondo me hai scritto un fw proprio un pò incasinato, meglio che separi la gestione dell'input dalla logica del sistema utilizzando una macchina a stati finiti
inoltre per non essere dipente dal tempo di ciclo del sistema fai avanzare la macchina solamente sul fronte di salita del pulsante così ti avanza di 1 ad ogni pressione del tasto e nel mentre puoi lasciare girare il loop ad una frequenza maggiore di 2 Hz. ora non uso arduino da parecchi anni ma una cosa così potrebbe andare per ciclare su 3 stati ma puoi modificarla come ti pare Codice:
void loop() { StatoPulsante = digitalRead(4); // leggo lo stato del pulsante //GESTIONE INPUT if((StatoPulsantePrec!=StatoPulsante)&&(StatoPulsante==HIGH)) { //RILEVATO FRONTE DI SALITA FSM++; FSM=FSM%3; } StatoPulsantePrec=StatoPulsante; //GESTIONE LOGICA switch (FSM) { case 0:{ digitalWrite (1, LOW); digitalWrite (2, LOW); digitalWrite (3, LOW); }break; case 1:{ digitalWrite (1, LOW); digitalWrite (2, HIGH); digitalWrite (3, LOW); }break; case 2:{ digitalWrite (1, LOW); digitalWrite (2, LOW); digitalWrite (3, HIGH); }break; default: { digitalWrite (1, HIGH); digitalWrite (2, HIGH); digitalWrite (3, HIGH); } break; } delay(50); }
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
26-01-2023, 12:29 | #17 |
Senior Member
Iscritto dal: Dec 2005
Città: Padova (Europa)
Messaggi: 3311
|
Grazie,
ma mi da una serie di errori tra cui: 'StatoPulsantePrec' was not declared in this scope
__________________
NON SI FINISCE MAI DI IMPARARE |
26-01-2023, 13:46 | #18 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 20816
|
Quote:
Codice:
int CONT = 1; // imposto il valore iniziale del contatore ad 1 int StatoPulsante = 0; // variabile lettura del pulsante int StatoPulsantePrec = 0; // stato precedente int FSM=0; void setup() { pinMode(1, OUTPUT); // pin 1 relè rosso pinMode(2, OUTPUT); // pin 2 relè giallo pinMode(3, OUTPUT); // pin 3 relè verde pinMode(4, INPUT); // pin 4 pulsante digitalWrite (CONT, HIGH); // accendo subito il rosso }
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
26-01-2023, 14:11 | #19 |
Senior Member
Iscritto dal: Aug 2003
Città: Casa mia
Messaggi: 4520
|
Vado controcorrente, ma mi è venuto subito da pensare a un semplice CMOS 4017 senza microprocessori e cose varie
Ad esempio il primo schema che ho trovato : http://web.tiscali.it/i2viu/electronic/commuta.htm togliendo il CD4051 sulla destra che non serve, al posto dei led si potrebbero comandare dei relè o triac |
26-01-2023, 16:58 | #20 |
Senior Member
Iscritto dal: May 2006
Città: Kandahar
Messaggi: 10419
|
Ma che tipo di luci devi pilotare ?
Led o lampadine? Si può fare con 3 relè e 3 diodi per ogni semaforo, la parte luci però in DC, e pulsanti ( contatti relè) in parallelo per entrambi. .
__________________
Sharkoon VG4-W - CoolerMaster GX650W - Asus TUF Z390-PLUS GAMING (WI-FI) - G.Skill 2x 8GB DDR4_3000 - Intel i5-9600K@4600 - Corsair H75 - ZeroSwap - Hot Swap - Crucial 2x M550 256GB RAID0 / 2x MX500 500GB - HP DVDRAM_GT80N - WD 2x WD10EZEX - Philips Brilliance 272B8Q -- Nikon D7k - Nikkor 18-105VR / 18-200VRii / 28-105D - Tamron 17-50SP 2,8 / SP70-300VC USD - Metz 48AF-1 |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:03.