View Full Version : Cerco una collaborazione elettrico/elettronica (relais e PLC)
+Benito+
06-01-2010, 15:32
Mio fratello sta facendosi un impiantino per la birra fatta in casa.
Ho pensato di dargli una mano per la parte tecnologica, e se la cosa non costa troppo ho pensato di realizzare un apparatto elettronico per la gestione.
Non ho esperienza diretta di programmazione di PLC ma ho studiato qualcosa sul ladder all'università, comunque non mi sembra niente di che soprattutto per la complessità richiesta.
Nel file allegato c'è uno schema di quello che voglio fare.
Il tutto ruota attorno alla necessità di:
-raffreddare in fretta la birra
-mantenerla alla temperatura desiderata
Per non utilizzare potenze elettriche importanti, ho pensato di accumulare calore in un serbatoio criogenico con acqua glicolata pressurizzato.
Il raffreddamento avviene mediante una pompa che fa circolare l'acqua in anello chiuso attraverso uno scambiatore ad hoc che posso farmi o comperare che opera mediante una o più TEC.
Lo scopo è mantenere una potenza elettrica dell'ordine delle centinaia di W per qualche ora invece di kW per minuti.
La TEC a sua volta è raffreddata da un dissipatore ad aria con ventilatore.
Una seconda pompa fa circolare acqua nel fermentatore per mantenere la temperatura della birra nell'intervallo programmato.
Mi serve una mano sia dal lato elettrico sia da quello elettronico poichè non ho idea di cosa comperare.
Principio di funzionamento
Quadretto elettrico contenete il plc, il trasformatore (o i trasformatori se servono), interruttore generale, interruttore del PLC.
Metto su ON l'interruttore generale, arriva tensione all'interruttore PLC ed ai relais di pompe, ventilatore e TEC.
Metto su on l'interruttore del PLC, parte il programma memorizzato.
Il selettore 0-1-2 mi serve perchè devo poter selezionare se ho già la birra nel fermentatore, oppure se devo solo preraffreddare l'accumulo (esclude la pompa raffreddamento e il termometro fermentatore)
Il termometro sulla TEC funge da sicurezza, fintanto che è sotto soglia funziona, sopra soglia blocca.
Il termometro sul serbatoio criogenico comanda l'accensione, in sequenza, di pompa accumulo, ventilatore e TEC.
Il termometro sul fermentatore comanda l'accensione della pompa raffreddamento.
Il programma che scriverò dovrebbe avere come dato di input variabili, una volta scritto, solo il valore di temperatura dell'accumulo e il valore di temperatura della birra.
Pertanto il PLC dovrebbe avere preferibilmente un display in cui poter leggere le due temperature di setpoint, i due valori reali e poter modificare i due setpoint tramite tasti.
Spero che un PLC di questo tipo non costi una fogonata, al massimo potrei ripiegare su un modello senza tasti con il programma memorizzato via computer e amen.
Chi mi supporta?
http://www.megaupload.com/?d=TLQERZRS
i plc costano tutti sopra i 100 euro, per quello che ti serve a te raddoppia la cifra, quelli che uso a scuola li abbiamo comprati eoni fa e ci sono venuti a costare la bellezza di 350 mila lire ciascuno, e non hanno display o la possibilità di interfacciarsi con periferiche di output. Potresti fare una cosa molto semplice in logica cablata, forse te ne esci con un centinaio di euro, ma forse...
+Benito+
06-01-2010, 19:59
Guarda, mio fratello fa la birra per professione e vuole farsi l'impiantino a casa, fosse per lui andrebbe tutto in manuale, ma secondo me non ha mica ben presente cosa vuol dire controllare le temperature con affidabilità e regolarle con sufficiente precisione.
Per questo gli ho proposto di fare questa cosa, e sinceramente se si stesse sotto i 300-400€ sarei contento, mi va bene anche comprare PLC usati, ho visto che sulla baia se ne trova e in base alla rudimentale tabella punti che ho messo nel disegno diei che tutti o quasi vanno bene.
Considera che secondo me mi servono:
-1 PLC 2DI 4DO 3AI
-1 software per PLC e il cavo per la connessione
-1 TEC da 200W resi lato freddo (anche più di un modulo) che possa andare almeno a -5°C
-1 relais 12V 1A per la ventola
-1 relais 12V 15A per la TEC (se penso di usare TEC a 12/24V per almeno 100W)
-2 relais 220V 1A per le pompe
-1 switch per la commutazione raffreddamento/birra (che al momento non ho idea di che oggetto possa essere)
-2 circolatori
-2 sonde di temperatura ad immersione con uscita -10.+50°C (almeno)0-10V o 0-20 mA (di solito sono configurabili nei PLC) per refrigerata e birra
-1 sonda di temperatura a contatto con uscita 0-10V o 0-20 mA per la sicurezza TEC (0.+90°C almeno)
-1 quadro elettrico di contenimento probabilmente artigianale con la slitta per montarci il PLC
-1 trasformatore per PLC, sonde, ventilatore, TEC (utenze in bassa tensione)
-1 interruttore generale
Riesci ad aiutarmi nella scelta dei prodotti (pompe a parte che le scelgo io)?
Guarda, mio fratello fa la birra per professione e vuole farsi l'impiantino a casa, fosse per lui andrebbe tutto in manuale, ma secondo me non ha mica ben presente cosa vuol dire controllare le temperature con affidabilità e regolarle con sufficiente precisione.
Per questo gli ho proposto di fare questa cosa, e sinceramente se si stesse sotto i 300-400€ sarei contento, mi va bene anche comprare PLC usati, ho visto che sulla baia se ne trova e in base alla rudimentale tabella punti che ho messo nel disegno diei che tutti o quasi vanno bene.
Considera che secondo me mi servono:
-1 PLC 2DI 4DO 3AI
-1 software per PLC e il cavo per la connessione
-1 TEC da 200W resi lato freddo (anche più di un modulo) che possa andare almeno a -5°C
-1 relais 12V 1A per la ventola
-1 relais 12V 15A per la TEC (se penso di usare TEC a 12/24V per almeno 100W)
-2 relais 220V 1A per le pompe
-1 switch per la commutazione raffreddamento/birra (che al momento non ho idea di che oggetto possa essere)
-2 circolatori
-2 sonde di temperatura ad immersione con uscita -10.+50°C (almeno)0-10V o 0-20 mA (di solito sono configurabili nei PLC) per refrigerata e birra
-1 sonda di temperatura a contatto con uscita 0-10V o 0-20 mA per la sicurezza TEC (0.+90°C almeno)
-1 quadro elettrico di contenimento probabilmente artigianale con la slitta per montarci il PLC
-1 trasformatore per PLC, sonde, ventilatore, TEC (utenze in bassa tensione)
-1 interruttore generale
Riesci ad aiutarmi nella scelta dei prodotti (pompe a parte che le scelgo io)?
Se vuoi risparmiare imho devi abbandonare i plc e costruirti l'elettronica, ti basta un micro da pochi euro (un atmega 128 costa 15€ il problema è trovare qualcuno che ti fresi il pcb e ti saldi il tutto se non hai l'attrezzatura e occhio al package
+Benito+
07-01-2010, 09:01
mi serve con le temp programmabili, si può fare?
mi serve con le temp programmabili, si può fare?
hai voglia,
un micro è un'integrato che contiene un sistema completo di cpu, memoria e ingressi sia analogici che digitali,e spesso anche controller per display lcd non ci vuole nulla a creare un sistema programmabile, nasce per quello
certo diversamente dal plc devi curare bene la progettazione dell'elettronica per evitare problemi e crearti lo stadio di alimentazione e lo stadio di pilotaggio ad alta potenza (anni fà avevo costruito un banalissimo sistema antifurto con delle pal e avevo utilizzato se non mi ricordo male un mosfet pilotava un rele che usavo per pilotare un relè direttamente a 220v alternata collegato ad una sirena, non mi ricordo bene, sono passati molti anni
+Benito+
07-01-2010, 11:02
interessato ma ignorante :(
Cerca con Google ARDUINO , e' un progetto italiano basato sull' ATmega pero' pronto per essere utilizzato proprio per fare cose di questo tipo
+Benito+
07-01-2010, 18:11
sì me ne hann appena parlato in PVT, però capiscimi che sono un meccanico, non un elettronico, non ho idea di cosa mi serva per utilizzare quell'affare, sia lato hardware (alimentazione, cablaggi, come si usano gli ingressi e le uscite etc) che come si programmi un SoC che alla fine mi sembra quello.
Mi serve una mano....:stordita:
per incominciare, a livello di componentistica elettrica, mi sapete intanto aiutare per non comprare roba sbagliata?
Se riesci a costruirti te la parte elettronica puoi sostituire facilmente il plc, che in quel budget non esce quasi sicuramente a meno che non trovi qualche offerta proprio di fortuna... Però passo perchè per l'elettronica sono a un livello troppo scarso... se ti serve qualche dimensionamento per i quadri sono qui!
+Benito+
07-01-2010, 20:53
Per le pompe adesso stavo pensando di stare sui 12V tanto non mi servono portate importanti e si sta nei 5A che penso sia una taglia dei relais.
qualcosa tipo questo
http://cgi.ebay.it/Autoclave-mini-2-valvole-Flojet-12V-pompa_W0QQitemZ350253537427QQcmdZViewItemQQptZComponenti_idraulici?hash=item518cbcd893
+Benito+
07-01-2010, 21:06
Ricapitolando:
Due pompe 12V - 100€
TEC - 20€
Relais - 20€
Sonde temperatura ad immersione (queste andrebbero bene per funzionare con quel controllore?)http://webdoc.siemens.it/webdoc/download.asp?LibDir=CP-SBT&file=HVAC%5CSonde%20ad%20immersione%20QAE...,%20Q31.1%5CQAE2164_2174%5CN1782.pdf (150€ l'una? Cazzo)
Sonda temperatura contatto (immagino costi mica tanto meno...)
Alimentatore 12V 30 (ho visto sulla baia e mamma mia anche qui 200-300€)
Se le cifre son queste si è più vicini ai 1000 che ai 500...
Possibile che sonde e alimentatori costino di più delle pompe?
Come alimentatore non potresti usare quello di un pc? Avere 30A sui 12V non dovrebbe costarti più di 150€
+Benito+
08-01-2010, 22:03
non credo che un ali da PC regga dei carichi induttivi
non trovi pompe da 24 V in alternata? così ti basta un trasformatore per tutto, eventualmente se ti serve la continua raddrizzi con un ponte...
+Benito+
09-01-2010, 14:16
posso anche metterne a 220V e credo che farò così per i costi.
Il mio cruccio principale, visto che mi dite che un PLC costa troppo, è utilizzare quel chip linkato sopra.
Dopo quello, le sonde e il tipo di alimentazione che necessitano il computerino e le sonde.
intanto ho mandato un'email ai rivenditori italiani di arduino vediamo un po' che mi dicono
regshout
09-01-2010, 15:07
interessante..
posso anche metterne a 220V e credo che farò così per i costi.
Il mio cruccio principale, visto che mi dite che un PLC costa troppo, è utilizzare quel chip linkato sopra.
Dopo quello, le sonde e il tipo di alimentazione che necessitano il computerino e le sonde.
intanto ho mandato un'email ai rivenditori italiani di arduino vediamo un po' che mi dicono
fai tutto a 230 e ti compri un trasformatore ci metti un raddrizzatore e ti fai la continua alla tensione che ti serve, la realizzazione è semplice se sai usare il saldatore, il dimensionamento idem
+Benito+
09-01-2010, 15:57
fai tutto a 230 e ti compri un trasformatore ci metti un raddrizzatore e ti fai la continua alla tensione che ti serve, la realizzazione è semplice se sai usare il saldatore, il dimensionamento idem
certo saldare non è un problema se si parla di cose non troppo piccole.
Però son parole che non so cosa significa nel concreto.
Veramente, sembra ovvio ma "ti compri un trasformatore ci metti un raddrizzatore e ti fai la continua alla tensione che ti serve" devo convertirlo in un ordine.
Visto il prezzo di arduino, se quelli mi rispondono che si può fare quel che ci devo fare, parto da lì, compro la scheda di arduino, eventuali schede i/o che ho visto sul sito hanno roba (ho chiesto consiglio a loro su cosa mi serve) e il suo scatolotto da cui se non ho capito male entra solo un'alimentazione coassiale a bassa tensione.
Per esempio questo trasformatore che compro deve essere ventilato?
Datemi pure dei link di cose che possono servirmi
certo saldare non è un problema se si parla di cose non troppo piccole.
Però son parole che non so cosa significa nel concreto.
Veramente, sembra ovvio ma "ti compri un trasformatore ci metti un raddrizzatore e ti fai la continua alla tensione che ti serve" devo convertirlo in un ordine.
Visto il prezzo di arduino, se quelli mi rispondono che si può fare quel che ci devo fare, parto da lì, compro la scheda di arduino, eventuali schede i/o che ho visto sul sito hanno roba (ho chiesto consiglio a loro su cosa mi serve) e il suo scatolotto da cui se non ho capito male entra solo un'alimentazione coassiale a bassa tensione.
Per esempio questo trasformatore che compro deve essere ventilato?
Datemi pure dei link di cose che possono servirmiDipende dall'assorbimento della scheda, che penso sia basso, comunque uno di questi (http://cgi.ebay.it/__Trasformatori-e-Raddrizzatori_Trasformatore-a-guida-DIN_W0QQitemZ320468855198QQptdiZ7149QQptdnZTrasformatoriQ20eQ20RaddrizzatoriQQcmdZViewItemQQptZTrasformatori_e_Raddrizzatori?hash=item4a9d6ea99e) potrebbe anche bastare oppure in caso di potenze rilevanti una cosa del genere (http://cgi.ebay.it/trasformatore-toroidale-220-12V-AC-400VA_W0QQitemZ220533722545QQcategoryZ88758QQcmdZViewItemQQ_trksidZp4340.m263QQ_trkparmsZalgo%3DSI%26its%3DI%26itu%3DUCI%26otn%3D10%26ps%3D63) ma come puoi vedere dai prezzi te la cavi con meno di 50 euro compreso filtro e raddrizzatore :D In ogni caso la ventilazione è naturale per queste potenze
+Benito+
09-01-2010, 16:57
Ok perfetto grazie.
Per il discorso impostare le due temperature dal pannello, mi è venuta un'idea. Ho visto che arduino può pilotare un display, su cui potrei visualizzare i 2 valori reali e i 2 setpoint, quindi con quattro tasti che porto dentro alla scheda come DI vado ad incrementare o decrementare le variabili associate ai due setpoint.
Che dite se po' fa?
JamalWallas
09-01-2010, 17:38
Ok perfetto grazie.
Per il discorso impostare le due temperature dal pannello, mi è venuta un'idea. Ho visto che arduino può pilotare un display, su cui potrei visualizzare i 2 valori reali e i 2 setpoint, quindi con quattro tasti che porto dentro alla scheda come DI vado ad incrementare o decrementare le variabili associate ai due setpoint.
Che dite se po' fa?
Tutto si può... Io possiedo Arduino, e ho già interfacciato display 2x16 e sensori vari... Per le temperature, non ti è sufficiente un LM35 che andrai ad isolare con cura? :)
+Benito+
09-01-2010, 17:55
Due sonde di temperatura dovranno essere fisicamente inserite una nella birra in fermentazione, una nell'acqua refrigerata.
Quella LM35 che mi dici è questa?
http://www.national.com/ds/LM/LM35.pdf
si direbbe che se la cablassi e le infilassi in un tubetto di inox tappato in fondo, con della pasta termoconduttiva o olio diatermico per metterla a contatto con la parete del tubo, potrebbe andare. La versione TO92 sembrerebbe più o meno cilindrica e sarebbe ottimo.
Mi chiedo se e come tenere conto della caduta di tensione lungo il collegamento per non falsare la lettura, se possa essere tarata insomma.
la terza devo attaccarla alla TEC e pone meno problemi.
Queste sonde vengono lette dall'integrato come valore numerico da 0 a x e poi sta a me in base alla curva T-V del datasheet tirarmi fuori il valore di soglia corrispondente alla temperatura?
Grazie anche a te.
Ho scaricato il programma di arduino per programmarlo, ma non c'è un manuale, sto guardando degli esempi e mi sembra qualcosa tipo C, in pratica devo scrivere un programma in C per usarlo? Ho visto sulla scheda tecnica dell'integrato che ci sono diversi tipi di pin collegati internamenti a parti diverse, quali devo usare?
La versione aggiornata delle porte che mi servono al momento è questa:
-AI sonda temperatura birra LM35 (TO92)
-AI sonda temperatura acqua refrigerata LM35 (TO92)
-AI sonda temperatura TEC LM35 (TO220)
-DI bottone aumenta setpoint fermentatore
-DI bottone diminuisci setpoint fermentatore
-DI bottone aumenta setpoint acqua refrigerata
-DI bottone diminuisci setpoint acqua refrigerata
-DI interruttore circuito acqua refrigerata
-DI interruttore circuito fermentatore
-DO comando relais TEC
-DO comando relais ventilatore TEC
-DO comando relais pompa circuito TEC
-DO comando relais pompa circuito fermentatore
-output necessari al comando del display che non so quanti siano.
JamalWallas
09-01-2010, 18:42
Sarebbe utile capire i range di temperature cui le sonde di temperatura saranno sottoposte, dato che l'LM35 ad esempio lavora tra −55˚ e +150˚C.
Con questa formula, hai il valore in gradi Celsius della temperatura letta:
temperature = (5.0 * val * 100.0)/1024.0;
dove val è il valore analogico(0:1023)letto dalla sonda
Il discorso caduta di tensione, credo sia sufficiente una taratura, quindi con un paio di prove ci si può arrivare...
Come hai dedotto, il codice è molto simile al C/C++.
Reference: http://arduino.cc/en/Reference/HomePage
Prendendo come esempio arduino 2009, hai a disposizione:
14 digital input/output pins (di cui 6 possono essere usati come PWM outputs) e 6 analog inputs.
La questione display, dipende da te, a seconda della tipologia ci sono cablaggi più o meno complessi/fattibili. :)
Mio fratello sta facendosi un impiantino per la birra fatta in casa.
scusa le domande troppo banali. lo chiedo proprio per ignoranza e curiosaggine.
domanda n°1
di solito le tec sono rinomate per la loro assurda inefficienza.
perchè non usare un frigorifero/chiller (anche un congelatore a pozzetto in disuso) eventualmente se conosci un frigorista puoi anche costruire da te qualcosa di compatto e poi farti aiutare con l'assemblamento del raffreddatore, e per la messa in opera, ma per il resto si trovano un sacco di guide per costruire impianti di raffreddamento a compressore. e i compressori da frigo/condizionatori si trovano a costo quasi zero.
domanda n°2
ma le centraline di controllo già fatte ad hoc non si trovano presso i fornitori di materiale ad hoc? costano troppo? sono troppo complesse per l'impianto che volete voi?
domanda n°3
non c'è nessuno che espande/chiude l'attività e fa una rottamazione dell'usato?
spero di non aver creato disturbo e portato OT il thread.
grazie per l'attenzione.
hai provato a vederti il plc della siemens "Logo"? è il più piccolo/economico della categoria siemens, e ci puoi fare molte cose...
+Benito+
09-01-2010, 21:01
lo so che le tec fanno cagare ma mi sono sempre ripromesso di provare a fare qualcosa con quegli aggeggi. Inoltre non costano niente e la minore efficienza me la ripago in tre anni di maggiore consumo. Posso fare un impianto compattissimo, se invece devo riciclare un frigorifero devo tener buono l'impianto del frigo staccandolo dalla struttura, se sento un frigorista per farmi fare un impianto ad hoc quello mi ride in faccia per le cifre che potrei pagarlo (se gli lascio 500€ a lui posso evitare di fare tutto).
Lui lavora in un birrificio artigianale, infatti gli ho chiesto di tirarsi giù le sigle dei componenti, mi dice che hanno degli scatolini coi bottoni un display cablati per comandare le elettrovalvole, ma non sa se sono interfacce di un plc, oppure no. Comunque sono impianti diversi.
L0usato su degli impiantini di questo tipo con una qualità buona si trova a cifre minimo superiori a 1000€, ma proprio minimo, e senza regolazione.
A titolo di paragone, dove lavorava prima mi pare avessero in vendita un impiantino, certo migliore di quello che si sta facendo, a 8.000€
In ultima istanza, mi piacerebbe finalmente combinare qualcosa a livello di regolazione automatica perchè è un settore che mi affascina e questa è l'occasione buona per sverginarsi, e non si sa mai che se ne esce qualcosa di bello e tecnicamente consistente si possa anche replicare per $.
Venendo all'utima risposta che mi ha dato JamalWallas (grazie per la dritta sulla lettura) ho paura che 14 I/O non mi bastino dato che tolti i 3 AI degli altri 14 ne uso 10 e gli altri 4 mi dovrebbero bastare per il display, ma dalle foto che vedo in giro sono pochi.
+Benito+
09-01-2010, 21:04
hai provato a vederti il plc della siemens "Logo"? è il più piccolo/economico della categoria siemens, e ci puoi fare molte cose...
No, grazie della segnalazione, ma mi sa che ho imbroccato la strada di Arduino se non saltano fuori difficoltà insormontabili.
+Benito+
10-01-2010, 14:06
Questa sera pubblico una bozza di programma, sono in difficoltà in più punti, se qualcuno poi mi ci da un'occhiata è un grosso grazie.
JamalWallas
10-01-2010, 14:08
Questa sera pubblico una bozza di programma, sono in difficoltà in più punti, se qualcuno poi mi ci da un'occhiata è un grosso grazie.
Se hai bisogno sono in msn/skype... Non ho un cavolo da fare :D
+Benito+
10-01-2010, 14:11
adesso mi aspettano, ti ringrazio, comunque preferisco scrivere alrte due righe e mettere tutti i commenti in modo da capirsi meglio. Ho problemi soprattutto con l'associazione pin/variabile e con altre cosette
+Benito+
10-01-2010, 17:08
Questa è la prima bozza, ci sono anche delle macanze tecniche, prima di dutto manca la banda morta, ma le risolverò.
Al momento mi serve qualche dritta sulla sintassi del C, l'ultima volta che ho scritto qualcosa in C saranno 7 o 8 anni fa, e sull'associazione PIN della scheda -> variabile, che poi ho definito come INPUT o OUTPUT.
Negli esempi del compilatore di Arduino, infatti, mi sembra che la dichiarazione delle variabili e dei pin sia fatta con la stessa sintassi e mi sa che non è possibile.
Inoltre credo manchi proprio qualcosa perchè il compilatore si ferma appena dopo la chiusura della graffa di void setup ()
int refrigerata = 0; // pin a cui è collegata la sonda serbatoio refrigerata
int birra = 1; // pin a cui è collegata la sonda serbatoio birra
int s_tec = 2; // pin a cui è collegata la sonda TEC
int alza_refr = 3; // pin per il bottone aumento setpoint refrigerata
int abbassa_refr = 4; // pin per il bottone diminuzione setpoint refrigerata
int alza_birra = 5; // pin per il bottone aumento setpoint birra
int abbassa_birra = 6; // pin per il bottone diminuzione setpoint birra
int tec = 7; // pin per il comando relais accensione TEC
int vent_tec = 8; // pin per il comando relais ventilatore TEC (eventualmente libero il pin e collego il ventilatore al relais TEC)
int p_ref = 9; // pin per il comando relais pompa circuito refrigerata (eventualmente libero il pin e collego la pompa al relais TEC)
int p_birra = 10; // pin per il comando relais pompa circuito birra
int no_ref = 11; // pin per l'interruttore esclusione circuito refrigerata (non essenziale, si può anche eliminare)
int no_birra = 12; // pin per l'interruttore esclusione circuito birra
int setpoint_ref = 5; // inizializza il setpoint dell'acqua refrigerata a 5°C
int setpoint_birra = 22;// inizializza il setpoint della birra a 22°C
int modref = 0; // inzializza la variabile associata ai bottoni di regolazione setpoint refrigerata
int modbirra = 0; // inizializza una variabile associata ai bottoni di regolazione setpoint birra
int tbirra = 0; // inizializza una variabile contenente la temperatura della birra
int tref = 0; // inizializza una variabile contenente la temperatura della refrigerata
int T_tec = 0; // inizializza una variabile contenente la temperatura della TEC
void setup() { //dichiarazione degli ingressi come imput o output
pinMode(refrigerata, INPUT);
pinMode(birra, INPUT);
pinMode(s_tec, INPUT);
pinMode(alza_refr, INPUT);
pinMode(abbassa_refr, INPUT);
pinMode(alza_birra, INPUT);
pinMode(abbassa_birra, INPUT);
pinMode(tec, OUTPUT);
pinMode(vent_tec, OUTPUT);
pinMode(p_ref, OUTPUT);
pinMode(p_birra, OUTPUT);
pinMode(no_ref, INPUT);
pinMode(no_birra, INPUT);
}
tbirra = AnalogRead (birra); // legge la sonda birra
tref = AnalogRead (refrigerata); // legge la sonda refrigerata
T_tec = AnalogRead (s_tec); // legge la sonda TEC
T_tec = (5.0 * s_tec * 100.0)/1024.0; // interpreta la lettura della sonda TEC
tbirra = (5.0 * birra * 100.0)/1024.0; // interpreta la lettura della sonda birra
tref = (5.0 * refrigerata * 100.0)/1024.0; // interpreta la lettura della sonda refrigerata
alzabirra = DigitalRead (alzabirra); // legge il bottone per alzare il setpoint birra
delay = 100; // il delay serve per evitare che ciclando il programma la lettura venga effettuata più volte per una sola pressione
abbassabirra = DigitalRead (alzabirra); // legge il bottone per abbassare il setpoint birra
delay = 100;
alzaref = DigitalRead (alzaref); // legge il bottone per alzare il setpoint refrigerata
delay = 100;
abbassaref = DigitalRead (abbassaref); // legge il bottone per abbassare il setpoint refrigerata
delay = 100;
if (alzabirra = HIGH){ // se ha rilevato pressione del bottone + birra incrementa
setpoint_birra = setpont_birra + 1;
}
if (abbassabirra = HIGH){ // se ha rilevato pressione del bottone - birra decrementa
setpoint_birra = setpont_birra - 1;
}
if (alzaref = HIGH){ // se ha rilevato pressione del bottone + refrigerata incrementa
setpoint_ref = setpont_ref + 1;
}
if (abbassaref = HIGH){ // se ha rilevato pressione del mottone - refrigerata decrementa
setpoint_ref = setpont_ref - 1;
}
if (no_ref != HIGH && T_tec < 80){ // controlla se non è escluso il circuito refrigerata e se la temperatura della TEC è sotto soglia
if (tref > setpoint_ref){ // se il passaggio precedente è validato, controlla se l'accumulo non è in temperatura
digitalWrite(p_ref, HIGH); // se non è in temperatura accende la pompa del circuito refrigerata
delay = 1000; // attende un secondo
digitalWrite(vent_tec, HIGH); // accende il ventilatore della TEC
delay = 1000; // attende un secondo
digitalWrite(tec, HIGH); // accende la TEC
}
else // se l'accumulo è in temperatura
{
digitalWrite(tec, LOW); // spegne la TEC
delay = 5000; // attende 5 secondi
digitalWrite(vent_tec, LOW); // spegne il ventilatore della TEC
digitalWrite(p_ref, LOW); // e la TEC
}
else // se il circuito refrigerata è escluso o se la TEC è surriscaldata
{
digitalWrite(tec, LOW); // spegne la TEC
delay = 5000; // attende 5 secondi
digitalWrite(vent_tec, LOW); // spegne il ventilatore della TEC
digitalWrite(p_ref, LOW); // e la TEC
}
if (no_birra != HIGH && tbirra > setpoint_birra){ // controlla se non è escluso il circuito birra e che la temperatura della birra sia sopra soglia
digitalWrite(p_birra, HIGH); // accende la pompa del circuito birra
}
else
{
digitalWrite(p_ref, LOW); // altrimenti spegne la pompa del circuito birra
}
direi che mancamo giusto un botto di cose
i micro si programmano con macchine a stati finiti in un ciclo infinito ovvero definisci un insieme di funzioni per i vari stati.
poi ti manca qualcosa di simile a
void main()
{
int stato;
while (true)
{
switch(stato)
.....
}
}
quindi il programma del micro deve essere sempre in esecuzione e tramite la modifica della variabile di stato gli fai eseguire diverse funzioni
+Benito+
11-01-2010, 12:51
ah quindi non esegue in automatico il programma in continuo? Aaaaaa io ricordavo qualcosa sui PLC in cui il programma in automatico viene ciclato, non sapevo che in questo caso bisognasse inserire il codice in un while.
Domanda:
Per controllare il se il while è verificato (ad esempio se l'interruttore è su ON) deve effettuare comunque una lettura periodica del sensore.
Questa lettura periodica non immagino bene come si faccia se il programma stesso deve essere in un while per poter essere ripetuto.
Non sono un programmatore "i micro si programmano con macchine a stati finiti in un ciclo infinito ovvero definisci un insieme di funzioni per i vari stati." per me è una frase senza significato pratico, magari un aiuto concreto mi sarebbe più utile :stordita:
L'impoastazione che ho dato, quindi, è completamente sbagliata e non può funzionare, l'approccio deve essere radicalmente diverso?
ah quindi non esegue in automatico il programma in continuo? Aaaaaa io ricordavo qualcosa sui PLC in cui il programma in automatico viene ciclato, non sapevo che in questo caso bisognasse inserire il codice in un while.
Domanda:
Per controllare il se il while è verificato (ad esempio se l'interruttore è su ON) deve effettuare comunque una lettura periodica del sensore.
Questa lettura periodica non immagino bene come si faccia se il programma stesso deve essere in un while per poter essere ripetuto.
Non sono un programmatore "i micro si programmano con macchine a stati finiti in un ciclo infinito ovvero definisci un insieme di funzioni per i vari stati." per me è una frase senza significato pratico, magari un aiuto concreto mi sarebbe più utile :stordita:
L'impoastazione che ho dato, quindi, è completamente sbagliata e non può funzionare, l'approccio deve essere radicalmente diverso?
allora l'aiuto te l'ho dato nel post precedente, l'abbozzo di codice che ti ho postato è proprio un ciclo infinito [while(true) ] con all'interno uno switch per eseguire operazioni diverse a seconda dello stato del sistema.
inoltre il tuo programma non può funzionare manca completamente della funzione main, per quello il compilatore non sa neanche da dove partire e dà errore
riguardo all'interruttore, generalmente i microcontrollori hanno i port, ovvero un insieme di linee di ingresso uscita digitali e analogiche, a seconda di dove colleghi l'interruttore dovrai chiamare la funzione specifica per leggere il port e vedere il valore restituito per vedere se l'interruttore è premuto o meno
ma questo non deve comandare il while il while deve essere infinito per permettere al programma di ciclare, bensì avrai nello stato di macchina ferma un controllo per vedere se l'interuttore è premuto e quindi cambiare lo stato della macchina e un altro controllo a macchina in funzione per vedere se l'interruttore è stato rilasciato.
dare indicazioni più precise è difficile ogni micro si programma in un modo diverso, devi guardare la documentazione del micro.
adesso se riesco ti butto giù una bozza di macchina a stati per iniziare a strutturare l'applicazione.
edit: guardala ed eventualmente modificala secondo le tue esigenze
http://img706.imageshack.us/img706/2091/disegno3.jpg
+Benito+
11-01-2010, 15:40
grazie ho capito di più
Mi sembra che per leggere l'interruttore debba usare DigitalRead che da HIGH se rileva più di 5V (circuito chiuso-on)e LOW se rileva meno di 3V (circuito aperto-off).
Dalla documentazione "variabile = DigitalRead (ingresso)" dovrebbe essere la sintassi.
Quello che devo fare quindi è utilizzare un while esterno che rileva se l'interruttore è su ON o se è su OFF e all'interno del while c'è tutto il resto.
Il While è contenuto nel void main () che è il programma principale e continua a ciclare.
Se while rileva che l'interruttore è su ON esegue una cosa, se rileva che è su OFF non esegue niente e passa oltre ma non finisce il programma, semplicemente continua a passare oltre fino a quando il while non rileva che l'interruttore è su ON.
Interpretazione corretta?
Detta così, immagino che debba fare 4 while uno dopo l'altro, tutti nel void main()
-controllo interruttore refrigerata ON ->c'è dentro il programma per fare la refrigerata
-controllo interruttore refrigerata OFF -> spegne la parte refrigerata
-controllo interruttore birra ON -> c'è dentro il programma per refrigerare la birra
-controllo interruttore birra OFF ->spegne la parte refrigerazione birra.
Il processore continuerà a verificare i while e ad eseguire quel che c'è dentro oppure a saltarlo a seconda delle condizioni rilevate.
ma questo non deve comandare il while il while deve essere infinito per permettere al programma di ciclare, bensì avrai nello stato di macchina ferma un controllo per vedere se l'interuttore è premuto e quindi cambiare lo stato della macchina e un altro controllo a macchina in funzione per vedere se l'interruttore è stato rilasciato.
Concretamente, l'oggetto è l'interruttore. Ne ho due , uno per il circuito birra, uno per il circuito refrigerata.
L'interruttore è collegato ad un DI, se è alto è on, se è basso è off.
Con il comando di prima dovrei riuscire a leggerlo e a mettere in una variabile HIGH o LOW.
Questo fuori dal while però. Tu però mi hai detto che non posso usare questo valore per controllare se eseguire il while oppure no, perchè deve ciclare all'infinito. Allora dov'è il punto in cui devo inserire il controllo?
allora semplificando
tu avrai una funzione per ogni stato richiamate in base allo stato della macchina [a stati finiti]
quindi ipotizzando la mia macchina a stati tu leggerai il valore dell'interruttore di accensione del sistema all'inizio di ogni stato di funzionamento normale
nello stato 1 controlli che la macchina non sia stata accesa, nel caso affermativo modifichi la variabile di stato a 2, nel caso la macchina sia ancora spenta apri in circuiti delle tec
nello stato 2 controlli l'interruttore di accensione, se la macchina è stata spenta cambi la variabile di stato a 1
dopo controlli la temperatura e se hai raggiunto la temperatura impostata passi a stato 3 (di mantenimento)
nello stato 2 chiudi i contatti delle tec
e similmente anche lo stato 3
praticamente nel ciclo infinito non fai altro che andare a richiamare, ad ogni ciclo la funzione propria dello stato della macchina e basta
all'interno delle varie funzioni di stato andrai a spegnere / accendere le tec ad acquisire le temperature reali e i comandi dell'utente e valuterai i passaggi di stato
+Benito+
12-01-2010, 12:52
in realtà credo che tu mi stia dicendo come fare in C puro, ma questa scheda probabilmente ha funzioni che C non ha.
Ieri sera con l'aiuto di JamalWallas ho sistemato due o tre cose ed ora il debugger me lo valida.
Ho ordinato arduino mega, un display con pulsanti, due schedine con joystic analogico due vie e due tasti, e qualche cavo.
Questo è il codice provvisorio, manca ancora tanta roba.
int refrigerata = 0; // pin a cui � collegata la sonda serbatoio refrigerata
int birra = 1; // pin a cui � collegata la sonda serbatoio birra
int s_tec = 2; // pin a cui � collegata la sonda TEC
int alza_refr = 3; // pin per il bottone aumento setpoint refrigerata
int abbassa_refr = 4; // pin per il bottone diminuzione setpoint refrigerata
int alza_birra = 5; // pin per il bottone aumento setpoint birra
int abbassa_birra = 6; // pin per il bottone diminuzione setpoint birra
int tec = 7; // pin per il comando relais accensione TEC
int vent_tec = 8; // pin per il comando relais ventilatore TEC (eventualmente libero il pin e collego il ventilatore al relais TEC)
int p_ref = 9; // pin per il comando relais pompa circuito refrigerata (eventualmente libero il pin e collego la pompa al relais TEC)
int p_birra = 10; // pin per il comando relais pompa circuito birra
int no_ref = 11; // pin per l'interruttore esclusione circuito refrigerata (non essenziale, si pu� anche eliminare)
int no_birra = 12; // pin per l'interruttore esclusione circuito birra
int setpoint_ref = 5; // inizializza il setpoint dell'acqua refrigerata a 5�C
int setpoint_birra = 22;// inizializza il setpoint della birra a 22�C
int incr_refr = 0; // inzializza la variabile associata ai bottoni di regolazione setpoint refrigerata
int incr_birra = 0; // inizializza una variabile associata ai bottoni di regolazione setpoint birra
int decr_refr = 0; // inzializza la variabile associata ai bottoni di regolazione setpoint refrigerata
int decr_birra = 0; // inizializza una variabile associata ai bottoni di regolazione setpoint birra
int tbirra = 0; // inizializza una variabile contenente la lettura della birra
int tref = 0; // inizializza una variabile contenente la lettura della refrigerata
int T_tec = 0; // inizializza una variabile contenente la lettura della TEC
int conv_tec = 0; // inizializza una variabile contenente la temperatura della TEC
int conv_birra = 0; // inizializza una variabile contenente la temperatura della birra
int conv_ref = 0; // inizializza una variabile contenente la temperatura della refrigera
void setup() { //dichiarazione degli ingressi come imput o output
pinMode(refrigerata, INPUT);
pinMode(birra, INPUT);
pinMode(s_tec, INPUT);
pinMode(alza_refr, INPUT);
pinMode(abbassa_refr, INPUT);
pinMode(alza_birra, INPUT);
pinMode(abbassa_birra, INPUT);
pinMode(tec, OUTPUT);
pinMode(vent_tec, OUTPUT);
pinMode(p_ref, OUTPUT);
pinMode(p_birra, OUTPUT);
pinMode(no_ref, INPUT);
pinMode(no_birra, INPUT);
}
void loop() {
tbirra = analogRead(birra); // legge la sonda birra in valore sonda
tref = analogRead (refrigerata); // legge la sonda refrigerata in valore sonda
T_tec = analogRead (s_tec); // legge la sonda TEC in valore sonda
conv_tec = (5.0 * T_tec * 100.0)/1024.0; // interpreta la lettura della sonda TEC in gradi centigradi
conv_birra = (5.0 * tbirra * 100.0)/1024.0; // interpreta la lettura della sonda birra in gradi centigradi
conv_ref = (5.0 * tref * 100.0)/1024.0; // interpreta la lettura della sonda refrigerata in gradi centigradi
incr_birra = digitalRead (alza_birra); // legge il bottone per alzare il setpoint birra
delay(100); // il delay serve per evitare che ciclando il programma la lettura venga effettuata pi� volte per una sola pressione
decr_birra = digitalRead (abbassa_birra); // legge il bottone per abbassare il setpoint birra
delay(100);
incr_refr = digitalRead (alza_refr); // legge il bottone per alzare il setpoint refrigerata
delay(100);
decr_refr = digitalRead (abbassa_refr); // legge il bottone per abbassare il setpoint refrigerata
delay(100);
if (incr_birra = HIGH){ // se ha rilevato pressione del bottone + birra incrementa
setpoint_birra++;
}
if (decr_birra = HIGH){ // se ha rilevato pressione del bottone - birra decrementa
setpoint_birra--;
}
if (incr_refr = HIGH){ // se ha rilevato pressione del bottone + refrigerata incrementa
setpoint_ref++;
}
if (decr_refr = HIGH){ // se ha rilevato pressione del mottone - refrigerata decrementa
setpoint_ref--;
}
if (no_ref != HIGH && conv_tec < 80){ // controlla se non � escluso il circuito refrigerata e se la temperatura della TEC � sotto soglia
if (conv_ref > setpoint_ref){ // se il passaggio precedente � validato, controlla se l'accumulo non � in temperatura
digitalWrite(p_ref, HIGH); // se non � in temperatura accende la pompa del circuito refrigerata
delay(1000); // attende un secondo
digitalWrite(vent_tec, HIGH); // accende il ventilatore della TEC
delay(1000); // attende un secondo
digitalWrite(tec, HIGH); // accende la TEC
}
else // se l'accumulo � in temperatura
{
digitalWrite(tec, LOW); // spegne la TEC
delay(5000); // attende 5 secondi
digitalWrite(vent_tec, LOW); // spegne il ventilatore della TEC
digitalWrite(p_ref, LOW); // e la TEC
}
}
else // se il circuito refrigerata � escluso o se la TEC � surriscaldata
{
digitalWrite(tec, LOW); // spegne la TEC
delay(5000); // attende 5 secondi
digitalWrite(vent_tec, LOW); // spegne il ventilatore della TEC
digitalWrite(p_ref, LOW); // e la TEC
}
if (no_birra != HIGH && conv_birra > setpoint_birra){ // controlla se non � escluso il circuito birra e che la temperatura della birra sia sopra soglia
digitalWrite(p_birra, HIGH); // accende la pompa del circuito birra
}
else
{
digitalWrite(p_ref, LOW); // altrimenti spegne la pompa del circuito birra
}
}
dubito che senza un void main () quel programma giri
+Benito+
12-01-2010, 14:01
negli esempi di codice integrati nel compilatore però non lo usa.
negli esempi di codice integrati nel compilatore però non lo usa.
stranissimo, riusciresti ad uplodare un esempio?
io opterei per un microcontrollore PIC, senza star li a sbattezzarmi con il plc. se conosci il c il programmino di gestione lo scrivi in una giornata massimo. potresti anche realizzare il tutto su basetta millefori
+Benito+
12-01-2010, 15:43
non sono un programmatore, il c lo conosco per modo di dire e l'ultima cosa che ho voglia di fare è mettermi a diventare cieco con un saldatore che non ho per farmi un circuito su una millefori ;)
Questo affare mi sembra faccia al caso mio, è economico (con 83€ ho comprato tutto), è versatile, è compatto e sembra meno difficile da programmare di quel che penso.
;)
Qui no ho su il compilatore !fazz stasera posto un esempio, ma se vuoi puoi vederlo da te dato che è liberamente scaricabile.
http://arduino.googlecode.com/files/arduino-0017.zip
http://arduino.cc/en/Reference/HomePage
a quanto pare il sistema maschera il main e il while true con la funzione loop
ma ci ho dato un'occhiata abbastanza rapida, uno sbattimento in meno
JamalWallas
12-01-2010, 17:31
a quanto pare il sistema maschera il main e il while true con la funzione loop
ma ci ho dato un'occhiata abbastanza rapida, uno sbattimento in meno
Niente main(), il loop() lo sostituisce :)
+Benito+
12-01-2010, 19:24
questo è uno degli esempi
// These constants won't change. They're used to give names
// to the pins used:
const int lowestPin = 2;
const int highestPin = 13;
void setup() {
// set pins 2 through 13 as outputs:
for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}
void loop() {
// iterate over the pins:
for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++) {
// fade the LED on thisPin from off to brightest:
for (int brightness = 0; brightness < 255; brightness++) {
analogWrite(thisPin, brightness);
delay(2);
}
// fade the LED on thisPin from brithstest to off:
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(thisPin, brightness);
delay(2);
}
// pause between LEDs:
delay(100);
}
}
+Benito+
23-01-2010, 12:54
Aggiornamento: mi sono procurato la arduino mega, il display, i bottoni, il ventilatore, le sonde di temperatura, l'alimentatore per l'elettronica, gli interruttori.
Mi manca:
- la peltier (in negozio me ne hanno proposta una da 270W a 65€, la compro su internet alla metà)
- le pompe che le prendo appena possoa 220V (anche la ventola così li piloto con lo stesso relais)
- il trafo è deciso per il toroidale mi devo calcolare l'amperaggio
PROBLEMA
non trovo gli adattatori maschio maschio per poter collegare i cavetti (li ho trovati solo F/F) tra le schede, bottoni etc e arduino
la peltier immagino che non funzioni in alternata, con che cosa la raddrizzo? Ho visto che i diodi raddrizzatori arrivano a malapena a qualche A, a me ne servono almeno 20-25.
EDIT:
Ho trovato questi oggetti che tirano parecchi A, se li attacco al trasformatore con due faston e con altri due faston li attacco al carico sono a posto?
http://cgi.ebay.it/2-Ponte-Raddrizzatore-Convertitore-AC-DC-35-amp_W0QQitemZ180456196761QQcmdZViewItemQQptZAltri_Strumenti_ed_Accessori?hash=item2a04070a99
Aggiornamento: mi sono procurato la arduino mega, il display, i bottoni, il ventilatore, le sonde di temperatura, l'alimentatore per l'elettronica, gli interruttori.
Mi manca:
- la peltier (in negozio me ne hanno proposta una da 270W a 65€, la compro su internet alla metà)
- le pompe che le prendo appena possoa 220V (anche la ventola così li piloto con lo stesso relais)
- il trafo è deciso per il toroidale mi devo calcolare l'amperaggio
PROBLEMA
non trovo gli adattatori maschio maschio per poter collegare i cavetti (li ho trovati solo F/F) tra le schede, bottoni etc e arduino
la peltier immagino che non funzioni in alternata, con che cosa la raddrizzo? Ho visto che i diodi raddrizzatori arrivano a malapena a qualche A, a me ne servono almeno 20-25.
EDIT:
Ho trovato questi oggetti che tirano parecchi A, se li attacco al trasformatore con due faston e con altri due faston li attacco al carico sono a posto?
http://cgi.ebay.it/2-Ponte-Raddrizzatore-Convertitore-AC-DC-35-amp_W0QQitemZ180456196761QQcmdZViewItemQQptZAltri_Strumenti_ed_Accessori?hash=item2a04070a99
Si vanno bene, conta che ci sono raddrizzatori da KA però lì si và su costi spropositati :sofico: non so se alla peltier và bene semplicemente una corrente raddrizzata, probabilmente serve anche un filtro, ma non ne sono sicuro...
+Benito+
23-01-2010, 15:25
esplica esplica perchè filtro
esplica esplica perchè filtro
Perchè se attacchi il toroidale al raddrizzatore l'uscita è una doppia semionda raddrizzata, che non è corrente continua, mettendo un filtro sull'uscita, che poi è un semplice condensatore, rende lineare l'uscita guarda qua (http://it.wikipedia.org/wiki/Raddrizzatore) i grafici, capisci al volo!
+Benito+
24-01-2010, 14:13
se metto i raddrizzatori prima del trasformatore il trasformatore non funziona più, corretto?Se no li mettevo prima, ottenevo una caduta di tensione trascurabile e meno perdita per effetto joule e poi condensavo dopo il trafo...
Guarda a rigor di logica dovrebbe funzionare comunque con il raddrizzatore a monte ma penso che le perdite aumentino spropositatamente, infatti il raddrizzatore è a valle negli alimentatori.
L'ordine di collegamento è trasformatore -> raddrizzatore -> filtro ;)
Quando monti il tutto posiziona il raddrizzatore in modo che sia in una zona più fresca possibile e abbia le alette di raffreddamento visto che deve dissipare ragionevolmente bene. Sono andato a vedere due dati, l'alimentazione non dev'essere stabilizzata, il che ti rende più facile fare l'alimentatore, però ho visto che ha bassissimo rendimento e ti assorbe veramente tanto (leggi qua (http://it.wikipedia.org/wiki/Cella_di_Peltier) i limiti). Buttarsi su un phase change stile compressore del frigo? alla fine ti costa di meno e rende di più per un utilizzo continuato nel tempo e puoi dimensionarlo meglio rispetto alla peltier...
+Benito+
24-01-2010, 18:20
no un frigorifero è da escludere, costa troppo ed è un casino come posizionamento.
Un kit da computer potrebbe teoricamente andare, ma costano 200 e passa euro.
Per ora provo a prendere due peltier da 150W e collegarne per ora una, la posso gestire con un ali da pc visto che siamo sotto i 20A sulla linea 12V così tolgo sia il toroidale sia i diodi raddrizzatori che consumerebbero almeno un 20W.
Per il discorso limiti, sui rendimenti nulla da dire, è una pietà. Un frigorifero piccolino credo possa arrivare intorno ad un eer di 2, per 200W resi ne consuma 100, questa per 200W resi ne consuma 300.
Che i due dissipatori costino più della cella è fuor di dubbio ma sono componenti di recupero, ho comprato solo la ventola per il lato caldo (17 euro, 220V 12x12 con telaio in metallo). Il water block lo costruisco io da una mattonella di rame che ho in casa, la parte aeraulica la recupero da dei dissipatori che ho.
Il problema sicurezza termica lo tampono montandoci sopra una sonda di temperatura che mi da il consenso.
Più che altro è il consumo, però se non hai problemi per quello allora vai tranquillo, gli alimentatori da pc vanno bene, controlla l'amperaggio!
+Benito+
24-01-2010, 19:08
diciamo che non è una cosa che debba funzionare così tanto tempo da venire in spesa a livello di consumo elettrico, se no chiaramente non avrebbe senso usare delle peltier. Ho in casa un ali che porta 18A sulla linea 12V, una cella da 150W dovrebbe portarla.
dovrebbe andare ma non so quant'è la corrente di spunto della peltier da 150 W, per farti capire leggi qua (http://www.hwupgrade.it/articoli/126/index.html)..
+Benito+
28-01-2010, 15:05
sono in grossa crisi con i relais....arduino non ne pilota nemmeno 1.....:cry:
Adesso l'ho alimentato direttamente (come fosse un led), ma fa solo tic tic senza riuscire a commutare.
Ho letto che è molto preferibile alimentare il circuito della bobina mediante un transistor collegato ai 5V di arduino, ma mi chiedo se si riesca a farci commutare 5 o 6 relais che saranno quelli di cui ho bisogno. A naso dico di no.
Ormai ho comprato tutto quello di cui ho bisogno, sono qui a saldarmi i fili e c'è questo problema.
Avrei a disposizione anche una linea a 5V dell'alimentatore da PC che uso per alimentare, con la linea a 12V, la peltier. Posso usare eventualmente quella linea per alimentare i relais mediante dei transistor?
Che tipo di relais hai preso?
+Benito+
28-01-2010, 20:37
non saprei come risponderti. Hanno la bobina a 6V (ho detto al negoziante che la scheda da fuori 5V e lui mi ha detto allora ti do quelli da 6V) e portano fino a 10A fino a 220V
sono rettangolari, trasparenti, e sarebbero da montare su una scheda millefori mi sa perchè hanno i contratti con i pernetti sottili, non occhielli a saldare nè faston. Ho preso degli zoccoli per incastrarceli ma non mi sono ancora arrivati
Per il tuo circuito hai bisogno di un relè monostabile, quelli secondo me sono passo-passo visto che continuano ad aprirsi e chiudersi... praticamente il passo passo ha una rotellina che quando viene eccitato il relè ruota facendolo scattare, solo che nel tuo caso il segnale in entrata è continuo nel tempo quindi continua a far scattare il relè, potresti provare ad assegnare all'uscita un impulso invece che un gradino, ma non so se il circuito lo consente, ti conviene comperare i relè monostabili:D
+Benito+
28-01-2010, 22:09
ah no, fa tic tac perchè ho scritto lo sketch per farlo :asd: sono relais normalissimi
oh gente, ieri han fatto vedere le schede "arduino" sul tg di rai1 :eek:
+Benito+
29-01-2010, 11:50
:eek:
e cosa hanno detto? le solite cazzate tipo paragonarlo all'aifon? :D
ah no, fa tic tac perchè ho scritto lo sketch per farlo :asd: sono relais normalissimi
Allora la corrente non è sufficiente per eccitare la bobina! Basta usare un circuito con il transistor in saturazione che è facile da realizzare
Guarda qua (http://www.kpsec.freeuk.com/trancirc.htm) alla voce "Using a transistor as a switch" è il tuo caso!
+Benito+
29-01-2010, 15:41
che bene o male avevo già trovato. Il mio dubbio è che anche con il transistor arduino non abbia abbastanza potenza sui 5V per poter eccitare contemporaneamente 5 o 6 relais, ragione per cui immaginavo se fosse possibile utilizzaree i 5V dell'alimentatore della TEC. Per farlo però credo che l'unico modo sia collegare la terra di arduino e la terra dell'ali della TEC insieme, se no uno sei due circuiti rimane aperto.
In pratica, nel mio caso a B arriva la linea da un pin di comando e a C arriva la lina dai 5V di arduino, mentre C, dopo il carico, va alla terra di arduino.
Se funziona, bene. Se non funziona quello che ipotizzo è collegare a B sempre il pin di comando, a C la linea 5V dell'alimentatore della TEC ma la terra dovrebbe tornare a entrambi.
Secondo te potrebbe funzionare?
Mi indichi il transitor da usare? Inizio a pensare che farei bene a saldarli su una basetta, inizio ad avere un po' troppa roba volante. Che cosa devo prendere, una millefori qualsiasi va bene?
che bene o male avevo già trovato. Il mio dubbio è che anche con il transistor arduino non abbia abbastanza potenza sui 5V per poter eccitare contemporaneamente 5 o 6 relais, ragione per cui immaginavo se fosse possibile utilizzaree i 5V dell'alimentatore della TEC. Per farlo però credo che l'unico modo sia collegare la terra di arduino e la terra dell'ali della TEC insieme, se no uno sei due circuiti rimane aperto.
In pratica, nel mio caso a B arriva la linea da un pin di comando e a C arriva la lina dai 5V di arduino, mentre C, dopo il carico, va alla terra di arduino.
Se funziona, bene. Se non funziona quello che ipotizzo è collegare a B sempre il pin di comando, a C la linea 5V dell'alimentatore della TEC ma la terra dovrebbe tornare a entrambi.
Secondo te potrebbe funzionare?
Mi indichi il transitor da usare? Inizio a pensare che farei bene a saldarli su una basetta, inizio ad avere un po' troppa roba volante. Che cosa devo prendere, una millefori qualsiasi va bene?
Il fatto è che non so se le due terre hanno la stessa ddp... se per caso sono a tensione diversa non ho idea di quello che potrebbe accadere ad arduino... Per il transistor passo, non è proprio il mio campo, potrei aiutarti per il dimensionamento ma non so proprio quale scegliere
+Benito+
29-01-2010, 17:45
eh infatti è quella la mia paura, che siano a potenziali diversi e si frigga qualcosa, a maggior ragione perchè sulla terra dell'alimentatore di torna anche la TEC e quasi sicuramente le due pompette (sono solo 20W ma sono sempre motori)
Con cosa alimenti arduino? ha un'alimentatore suo?
JamalWallas
30-01-2010, 17:37
Con cosa alimenti arduino? ha un'alimentatore suo?
O quello o via USB :)
+Benito+
04-02-2010, 12:29
#include <LCD4Bit_mod.h>
LCD4Bit_mod lcd = LCD4Bit_mod(2);
float sonda_refrigerata = 8; // pin a cui e' collegata la sonda serbatoio refrigerata
float sonda_birra = 9; // pin a cui e' collegata la sonda serbatoio birra
float sonda_tec = 10; // pin a cui e' collegata la sonda TEC
int alza_refr = 22; // pin per il bottone aumento setpoint refrigerata
int abbassa_refr = 23; // pin per il bottone diminuzione setpoint refrigerata
int alza_birra = 24; // pin per il bottone aumento setpoint birra
int abbassa_birra = 25; // pin per il bottone diminuzione setpoint birra
int tec = 53; // pin per il comando relais accensione TEC
int vent_tec = 52; // pin per il comando relais ventilatore TEC (eventualmente libero il pin e collego il ventilatore al relais TEC)
int pompa_ref = 51; // pin per il comando relais pompa circuito refrigerata (eventualmente libero il pin e collego la pompa al relais TEC)
int pompa_birra = 50; // pin per il comando relais pompa circuito birra
int escludi_ref = 49; // pin per l'interruttore esclusione circuito refrigerata (non essenziale, si puo' anche eliminare)
int escludi_birra = 48; // pin per l'interruttore esclusione circuito birra
int setpoint_ref = 60; // inizializza il setpoint dell'acqua refrigerata a 5 C
int setpoint_birra = 60;// inizializza il setpoint della birra a 22 C
int incr_refr; // inzializza la variabile associata ai bottoni di regolazione setpoint refrigerata
int incr_birra; // inizializza una variabile associata ai bottoni di regolazione setpoint birra
int decr_refr; // inzializza la variabile associata ai bottoni di regolazione setpoint refrigerata
int decr_birra; // inizializza una variabile associata ai bottoni di regolazione setpoint birra
int lettura_birra; // inizializza una variabile contenente la lettura della birra
int lettura_refrigerata; // inizializza una variabile contenente la lettura della refrigerata
int lettura_tec; // inizializza una variabile contenente la lettura della TEC
int temp_tec; // inizializza una variabile contenente la temperatura della TEC
int temp_birra; // inizializza una variabile contenente la temperatura della birra
int temp_ref; // inizializza una variabile contenente la temperatura della refrigera
void setup() { //dichiarazione degli ingressi come imput o output
pinMode(sonda_refrigerata, INPUT);
pinMode(sonda_birra, INPUT);
pinMode(sonda_tec, INPUT);
pinMode(alza_refr, INPUT);
pinMode(abbassa_refr, INPUT);
pinMode(alza_birra, INPUT);
pinMode(abbassa_birra, INPUT);
pinMode(tec, OUTPUT);
pinMode(vent_tec, OUTPUT);
pinMode(pompa_ref, OUTPUT);
pinMode(pompa_birra, OUTPUT);
pinMode(escludi_ref, INPUT);
pinMode(escludi_birra, INPUT);
lcd.init();
lcd.clear();
lcd.cursorTo(1, 0);
lcd.printIn("Birra");
lcd.cursorTo(2, 0);
lcd.printIn("Refr.");
lcd.cursorTo(1, 10);
lcd.printIn("Set");
lcd.cursorTo(2, 10);
lcd.printIn("Set");
}
void loop() {
lettura_birra = analogRead(sonda_birra); // legge la sonda birra in valore sonda
lettura_refrigerata = analogRead (sonda_refrigerata); // legge la sonda refrigerata in valore sonda
lettura_tec = analogRead (sonda_tec); // legge la sonda TEC in valore sonda
temp_tec = (5.0 * lettura_tec * 100.0)/1024.0; // interpreta la lettura della sonda TEC in gradi centigradi
temp_birra = (5.0 * lettura_birra * 100.0)/1024.0; // interpreta la lettura della sonda birra in gradi centigradi
temp_ref = (5.0 * lettura_refrigerata * 100.0)/1024.0; // interpreta la lettura della sonda refrigerata in gradi centigradi
incr_birra = digitalRead (alza_birra); // legge il bottone per alzare il setpoint birra
delay(20); // il delay serve per evitare che ciclando il programma la lettura venga effettuata piu' volte per una sola pressione
decr_birra = digitalRead (abbassa_birra); // legge il bottone per abbassare il setpoint birra
delay(20);
incr_refr = digitalRead (alza_refr); // legge il bottone per alzare il setpoint refrigerata
delay(20);
decr_refr = digitalRead (abbassa_refr); // legge il bottone per abbassare il setpoint refrigerata
delay(20);
if (incr_birra = HIGH){ // se ha rilevato pressione del bottone + birra incrementa
setpoint_birra++;
}
if (decr_birra = HIGH){ // se ha rilevato pressione del bottone - birra decrementa
setpoint_birra--;
}
if (incr_refr = HIGH){ // se ha rilevato pressione del bottone + refrigerata incrementa
setpoint_ref++;
}
if (decr_refr = HIGH){ // se ha rilevato pressione del mottone - refrigerata decrementa
setpoint_ref--;
}
if (escludi_ref != HIGH && temp_tec < 80){ // controlla se non e' escluso il circuito refrigerata e se la temperatura della TEC e' sotto soglia
if (temp_ref > setpoint_ref){ // se il passaggio precedente e' validato, controlla se l'accumulo non e' in temperatura
digitalWrite(pompa_ref, HIGH); // se non e' in temperatura accende la pompa del circuito refrigerata
delay(50); // attende un secondo
digitalWrite(vent_tec, HIGH); // accende il ventilatore della TEC
delay(50); // attende un secondo
digitalWrite(tec, HIGH); // accende la TEC
}
else // se l'accumulo e' in temperatura
{
digitalWrite(tec, LOW); // spegne la TEC
delay(50); // attende 5 secondi
digitalWrite(vent_tec, LOW); // spegne il ventilatore della TEC
digitalWrite(pompa_ref, LOW); // e la TEC
}
}
else // se il circuito refrigerata e' escluso o se la TEC e' surriscaldata
{
digitalWrite(tec, LOW); // spegne la TEC
delay(50); // attende 5 secondi
digitalWrite(vent_tec, LOW); // spegne il ventilatore della TEC
digitalWrite(pompa_ref, LOW); // e la TEC
}
if (escludi_birra != HIGH && temp_birra > setpoint_birra){ // controlla se non e' escluso il circuito birra e che la temperatura della birra sia sopra soglia
digitalWrite(pompa_birra, HIGH); // accende la pompa del circuito birra
}
else
{
digitalWrite(pompa_ref, LOW); // altrimenti spegne la pompa del circuito birra
}
lcd.cursorTo(1, 7);
lcd.print(temp_birra);
lcd.cursorTo(2, 7);
lcd.print(temp_ref);
lcd.cursorTo(1, 14);
lcd.print(setpoint_birra);
lcd.cursorTo(2, 14);
lcd.print(setpoint_ref);
}
Ho caricato questo sketch su arduino con incastrato l'lcd e attaccati con cavi volanti un bottone e una sonda.
Il display viisualizza correttamente le scritte digitate, ma non riesce a far apparire correttamente le letture e i setpoint.
In particolare, le letture sono simboli che continuano a cambiare (sintomo che la lettura la fa) mentre al posto dei setpoint appare il simbolo <.
Cliccando il bottone il simbolo non cambia, per cui credo che non legga il bottone e non so perchè.
Idee?
mah, non ho letto tutto, ma io direi che devi cominciare a testare un pezzo alla volta
comincia con le letture analogiche, dovrebbero essere facili, magari invece della sonda attaccaci un trimmer tra massa e alimentazione con centrale all'ingresso, e vedi cosa leggi quando giri la manopola
poi passiamo alla pressione tasti e al resto
questo invece è lo schema classico per il pilotaggio relè, occhio che devi fornire quindi alla scheda un amperaggio congruo a far operare tutti i relè che ti servono
http://www.sunfinder.it/robot/progetti/rele_img/Rele_1a.gif
+Benito+
07-02-2010, 08:45
ho trovato schemi molto più semplici per il transitor usato come comando per il relé, sicuro che mi serva tutta quella roba (che tra l'altro non so nemmeno cos è).
Non ho in casa trimmer, ho provato anche a non collegare le sonde e la situazione non cambia, le letture analogiche mi fanno apparire sullo schermo simboli casuali.
apparte R1 e DL1 che ti serve solo per vedere se il relè è acceso (è un led) il resto serve tutto; se proprio vuoi potresti tirare via R3
per le letture analogiche sei sicuro di poter usare lcd_print per stampare un numero? non è che devi prima convertirlo in stringa?
altra cosa: per temp_tec, temp_ref e temp_birra mi sa che devi usare dei long, con un integer è facile (quasi sicuro) che l'operazione di conversione ti mandi in overflow la variabile
+Benito+
07-02-2010, 10:06
sui long provo subito, sul convertirlo in string non ho idea di come fare
EDIT: ho provato a dichiarare le variabili come LONG, sono cambiati i simboli :asd:
EDIT2: ho trovato questa cosa http://www.circuitidea.com/Article/using-streamming-for-arduino-lcd-shield.html ma non capisco se si possa adoperare con tutti i display, nel senso:
ltoa(100, sTemp, 10); // convert long to string
LCD.Puts(sTemp);
itoa(100, sTemp, 10); // convert integer to string
LCD.Puts(sTemp);
ha una sintassi strana, non capisco cosa passargli e se la funzione ltoa sia disponibile e in quale libreria..
itoa = integer to ascii
sTemp è un array di char
questo vale per il c
per l'arduino che non so che linguaggio usi devi riferirti al suo manuale, ma presumo sia analogo a questo http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/
di solito la funzione sta in <stdlib.h> o in <stdio.h> non ricordo
+Benito+
07-02-2010, 10:49
sì sì ho trovato un sito dove ne parlano, è in stdio.h
Oggi pomeriggio sperimento, adesso pappa.
intanto grazie ;)
+Benito+
07-02-2010, 13:59
Intanto, se a qualcuno servissero degli integrati, ho appena saccheggiato delle schede di un tornio, avrò una quarantina di ragnetti, c'è un po' di tutto. :)
+Benito+
21-03-2010, 15:31
mah, non ho letto tutto, ma io direi che devi cominciare a testare un pezzo alla volta
comincia con le letture analogiche, dovrebbero essere facili, magari invece della sonda attaccaci un trimmer tra massa e alimentazione con centrale all'ingresso, e vedi cosa leggi quando giri la manopola
poi passiamo alla pressione tasti e al resto
questo invece è lo schema classico per il pilotaggio relè, occhio che devi fornire quindi alla scheda un amperaggio congruo a far operare tutti i relè che ti servono
http://www.sunfinder.it/robot/progetti/rele_img/Rele_1a.gif
mi sono saldato questo schema su una millefori, ma non funziona....
ho collegato il +6V dell'alimentatore a dove nello schema c'è +12V (ho il rele a 6V), il negativo dell'alimentatore e la massa di arduino alla massa dello schema, il pin di comando di arduino all' IN 0-5V dello schema.
Ho controllato con il tester e tra comando e terra ci sono 0-5V a intervalli regolari di un secondo (ho usato un codice banale di intermittenza), mentre tra positivo e terra ci sono quasi 9V (l'alimentatore è a 6V ma credo sia dovuto all'assenza di carico).
Però il transistor non commuta e il rele non scatta.
Esistono modi particolari per saldare questa roba? Non vorrei avere cotto qualcosa, anche se onestamente ho cercato di "toccare" appena i piedini al momento della saldatura.
servirebbe sapere anche tuttle le altre tensioni in giro, in particolare in base e sul collettore del transistor
e dai una ricontrollata al pinout del transistor, magari lo hai semplicemente saldato storto
mi sono saldato questo schema su una millefori, ma non funziona....
ho collegato il +6V dell'alimentatore a dove nello schema c'è +12V (ho il rele a 6V), il negativo dell'alimentatore e la massa di arduino alla massa dello schema, il pin di comando di arduino all' IN 0-5V dello schema.
Ho controllato con il tester e tra comando e terra ci sono 0-5V a intervalli regolari di un secondo (ho usato un codice banale di intermittenza), mentre tra positivo e terra ci sono quasi 9V (l'alimentatore è a 6V ma credo sia dovuto all'assenza di carico).
Però il transistor non commuta e il rele non scatta.
Esistono modi particolari per saldare questa roba? Non vorrei avere cotto qualcosa, anche se onestamente ho cercato di "toccare" appena i piedini al momento della saldatura.
forse la tu scheda non ce la fa in corrente ad attivare il transistor? o giochi sulla partizione in base al transistor oppure lo sostituisce con un 2n700 e vai tranquillo comandando in tensione
mi raccomando il diodo di ricircolo in parallelo alla bobina del relè
tanto per rendere l'idea una cosa del genere
http://i44.tinypic.com/1yy3o.jpg
la 1k potresti anche non usarla, io solitamente una resistenzina la uso sempre
+Benito+
21-03-2010, 18:12
servirebbe sapere anche tuttle le altre tensioni in giro, in particolare in base e sul collettore del transistor
e dai una ricontrollata al pinout del transistor, magari lo hai semplicemente saldato storto
A cavallo del transistor ho la tensione che ho ai capi dell'alimentatore, i quasi 9V, come è corretto che sia perchè è un interruttore aperto.
ZEUS non so leggere quello schema elettrico, non conosco i simboli, ma ho da sempre un dubbio che non è mai stato sanato: la terra dov'è? Nel senso, arduino ha i pin di terra e ce la collego, ma se io attacco solo il positivo dell'alimentatore e non il negativo, come può funzionare? Quindi ho attaccato il negativo dell'alimentatore alla terra di arduino e le tensioni comunque mi tornano.
Non è un problema che ho cotto il transistor perchè l'ho sradicato e ne ho saldato un altro usando dei cavi di un po' di cm per dissipare, ma non va.
Con lo schema più semplice che era linkato nella pagina precedente avevo provato a fare un circuito volante coi coccodrilli e andava, ma Beppe82 mi diceva che devo per forza fare quel circuito lì e ho creduto fosse meglio.
mi interessava sapere quando dai il comando di ON
cmq come detto prima il led serve solo per avere lo stato visivo del relè e l'unica cosa superflua è la resistenza R3, il resto serve (resistenza diodo e transistor :asd: )
A cavallo del transistor ho la tensione che ho ai capi dell'alimentatore, i quasi 9V, come è corretto che sia perchè è un interruttore aperto.
ZEUS non so leggere quello schema elettrico, non conosco i simboli, ma ho da sempre un dubbio che non è mai stato sanato: la terra dov'è? Nel senso, arduino ha i pin di terra e ce la collego, ma se io attacco solo il positivo dell'alimentatore e non il negativo, come può funzionare? Quindi ho attaccato il negativo dell'alimentatore alla terra di arduino e le tensioni comunque mi tornano.
Non è un problema che ho cotto il transistor perchè l'ho sradicato e ne ho saldato un altro usando dei cavi di un po' di cm per dissipare, ma non va.
Con lo schema più semplice che era linkato nella pagina precedente avevo provato a fare un circuito volante coi coccodrilli e andava, ma Beppe82 mi diceva che devo per forza fare quel circuito lì e ho creduto fosse meglio.
nel tuo caso la cosa importante è che tutti i dispositivi siano riferiti alla stessa massa. arduino è alimentato con la 220v? in uscita avrai una morsettiera con la massa immagino, bene con un filo colleghi quella massa con la massa dell'alimentatore che usi per dare alimentazione alla bobina del relè. nel mio schema c'è un 2n700 è un mosfet a canale n per piccoli segnali, solitamente quando si realizzano applicazioni a microcontrollore è meglio comandare in tensione e non in corrente, specialmente quando non si conoscono le caratteristiche della scheda che pilota. partendo dal datasheet non è difficile capire come collegarlo. a differenza del transistor qui abbiamo un gate che sarebbe la base del transistor, il source che è l'emettitore (quello con la freccia che rientra) ed il drain che è il collettore del transistor. le differenze sono che il transistor è un canale p ed il mosfet un canale n.
+Benito+
21-03-2010, 18:34
:D se va avanti porca cozza tattu piane di sbarro andiamo per le lunghe, oggi mi son messo lì bel tranquillo armato di tutto punto e nulla.
http://img694.imageshack.us/img694/3986/dscf9677640x480.jpg (http://img694.imageshack.us/i/dscf9677640x480.jpg/)
Mi sono anche impegnato :D è la prima volta che uso una millefori e ho anche cercato di essere ordinato!
P.S. il transistor non si vede perchè quello che avevo saldato lì l'ho tagliato e ne ho saldato uno dietro coi fili lunghi
+Benito+
21-03-2010, 18:36
nel tuo caso la cosa importante è che tutti i dispositivi siano riferiti alla stessa massa. arduino è alimentato con la 220v? in uscita avrai una morsettiera con la massa immagino, bene con un filo colleghi quella massa con la massa dell'alimentatore che usi per dare alimentazione alla bobina del relè. nel mio schema c'è un 2n700 è un mosfet a canale n per piccoli segnali, solitamente quando si realizzano applicazioni a microcontrollore è meglio comandare in tensione e non in corrente, specialmente quando non si conoscono le caratteristiche della scheda che pilota. partendo dal datasheet non è difficile capire come collegarlo. a differenza del transistor qui abbiamo un gate che sarebbe la base del transistor, il source che è l'emettitore (quello con la freccia che rientra) ed il drain che è il collettore del transistor. le differenze sono che il transistor è un canale p ed il mosfet un canale n.
No arduino è collegato via USB. In definitiva sarà alimentato con un alimentatore da 1000 mA a 6V, ma al momento lo sto usando per alimentare i relé con questo circuito che non funziona.
La massa è un pin di arduino, mentre la massa dell'alimentatore è il - del connettore coassiale.
No?
No arduino è collegato via USB. In definitiva sarà alimentato con un alimentatore da 1000 mA a 6V, ma al momento lo sto usando per alimentare i relé con questo circuito che non funziona.
La massa è un pin di arduino, mentre la massa dell'alimentatore è il - del connettore coassiale.
No?
stai usando un portatile oppure un pc fisso?
cmq si, devi collegare la massa della porta usb con la massa del tuo alimentatore e con la massa della schedina, cercando per quanto possibile di non creare un loop di massa:D anche se per questa applicazione non creerebbe nessun problema. tutti e 3 i dispositivi devono avere la massa in comune.
+Benito+
21-03-2010, 21:23
stai usando un portatile oppure un pc fisso?
cmq si, devi collegare la massa della porta usb con la massa del tuo alimentatore e con la massa della schedina, cercando per quanto possibile di non creare un loop di massa:D anche se per questa applicazione non creerebbe nessun problema. tutti e 3 i dispositivi devono avere la massa in comune.
allora, faccio fatica a seguirti.
le uscite di arduino sono pilotate dall'ATmega che c'è sopra, credo che la massa sia collegata a qualcosa, visto che c'è e funziona. Io non faccio altro che collegare il pin di massa di arduino con il negativo dell'alimentatore, e quella diventa per me la massa generale, poi a cosa sia collegata non lo so, la ddp tra massa e pin di comando è corretta (5V).
Non so come poter tirare fuori la massa dell'usb, credo che sia già portata al pin di massa se no non ho diea di dove lo possano aver collegato visto che non ci sono altre connessioni sul controller.
Uso un netbook, ma considera che arduino lo uso solo per pilotare il transistor, la linea che aziona il relais arriva dall'alimentatore separato, ho già verificato che la scheda non ce la fa a commutaree direttamente il relais.
Continuo a pensare ma non capisco dove sia il problema del mancato funzionamento del trasistor (non si accende nemmeno il led per cui non è il rele ad essere difettoso)
il led non può accendersi visto che va a massa solo quando si attiva il transistor;)
prendi il tester e misura la resistenza che c'è tra la massa di arduino e tutte le altre masse
aggiunta.
domanda stupida stupida:D hai verificato la polarità del relè ?alcuni hanno la polarità da rispettare altrimenti non commutano. prova prima a verificare se il relè si attiva dandogli direttamente il positivo
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.