Arduino guida all'uso del relè

Salve che in rete non ho trovato nulla di meglio mi sono permesso di scrivere una piccola guida sul funzionamento del relè utilizzando una resistenza un bjt e arduino. Potete leggere tutto qui :grin:

A parte gli strafalcioni d'italiano ("vabbene" -> "va bene" ecc..), mi spieghi il motivo per cui prendi l'alimentazione del relé da un pin di Arduino settato su HIGH? Non potevi collegarlo ai 5V direttamente?

leo72: A parte gli strafalcioni d'italiano ("vabbene" -> "va bene" ecc..), mi spieghi il motivo per cui prendi l'alimentazione del relé da un pin di Arduino settato su HIGH? Non potevi collegarlo ai 5V direttamente?

Credo perché lui ha detto che vuole pilotare un relé con Arduino, se lo alimenta direttamente quello scatta e buonanotte, semmai è curioso il fatto che usi il pin 13 per il buzzer; non ho letto il codice, forse gli serve per mandare segnali intermittenti.

No, imposta su HIGH il pin 12 nel setup() e poi mette il pin 13 su HIGH e LOW alternativamente in loop(): il pin lo usa come alimentazione.

leo72: A parte gli strafalcioni d'italiano ("vabbene" -> "va bene" ecc..),

Scusami grande prof. ma ho scritto tutto di fretta senza rileggere, appena posso apporterò le correzioni. Se per te è uno scempio non leggerlo.

mi spieghi il motivo per cui prendi l'alimentazione del relé da un pin di Arduino settato su HIGH? Non potevi collegarlo ai 5V direttamente?

Se al posto di fare attenzione alla grammatica avresti letto con più attenzione l'articolo ti saresti accorto che non sto prelevando l'alimentazione dal pin dell'arduino. Te lo spiego in parole povere il pin 13 dell'arduino serve a far andare in saturazione o no il bjt a secondo del valore. Il pin 0 (prima per errore ho scritto 12 nell'articolo ma ora ho corretto) serve per prendere l'uscita da portare sul buzzer e come puoi vedere dalle foto PRELEVO L'ALIMENTAZIONE DI 5 V portandola sul relè. Quando leggi fai attenzione... Saluti...

Ciao antonio_cov Il tutorial per l' uso dei relé l'hai voluto fare bene e sicuramente ci hai messo il tuo impegno ma é pieno di errori e inprecisioni.

1 ) non puoi scrivere un tutorial e prendere un relé piccolo come esempio che assorbe a 5V malappena 71mA. Se scrivi un tutorial devi scriverlo per tutti i relé possibili oppure dire escpilcitamente le limitazioni e le semplificazioni che hai adottato. anche il transistore é al limite con quel relé, se si usa uno piú grande fonde. Usa un BC337-40. 2 ) non ho capito dove hai trovato il valore di IBsat. La corrente di base per far andare il transistore in saturazione dipende dalla corrente del collettore e dal guadagno hfe. Non puoi dirlo a priori. 3 ) non ho capito cosa fai col pin 0 e col pin 12; nel codice sono settati ma non utilizzati. 4 ) é sbagliato scrivere "digitalWrite(12,HIGH); // viene posto il pin 0 a livello alto" se non hai messo in precedanza un pinMode() o ti sei solo confuso tra pin12 e pin0? 5 ) non usare pin0 per questi esempi perché si rischia che non funziona il upload dei programmi. 6 ) un azionamento di 0,1 secondi fa male al relé e Ti puó capitare che non comuta neanche. 7 ) Il diodo non serve per limitare la corrente del relé ma di cortocircuitare la corrente derivante dalla tensio0ne di induzione nel momento di spegnimento del relé. 8 ) Al posto del buzzer usa un LED con la sua resistenza; é piú figo che qualcosa si accende e alimentalo dai 5V e non da un uscita del Arduino. Non puoi alimentare il buzzer da un uscita Arduino. 9 ) prevedi l' opzione di pilotare un relé con un tensione di alimentazione diversa da 5V e percui serve un alimentazione esterna. 10 ) se calcoli una resistenza e ti viene 8600 Ohm, usa una da 8200 e non fare una rete resistiva per arrivare a 7800 Ohm. Metti una resistenza da 1kOhm, che va bene. 11 ) se vuoi fare una foto della breadboard fai il circuito in modo ordinato e non cosí caotico. Si deve capire dove vanno i cavi e dove sono inseriti i componenti. 12 ) se metti un filmino o metti il sonoro e si sente il buzzer oppure metti un LED.

Ciao Uwe

uwefed: Ciao antonio_cov Il tutorial per l' uso dei relé l'hai voluto fare bene e sicuramente ci hai messo il tuo impegno ma é pieno di errori e inprecisioni.

1 ) non puoi scrivere un tutorial e prendere un relé piccolo come esempio che assorbe a 5V malappena 71mA. Se scrivi un tutorial devi scriverlo per tutti i relé possibili oppure dire escpilcitamente le limitazioni e le semplificazioni che hai adottato. anche il transistore é al limite con quel relé, se si usa uno piú grande fonde. Usa un BC337-40.

Hai ragione forse dovrei cambiare il titolo al post. Per quanto riguarda il transistore era l'unico che avevo...per quello ho utilizzato il bc547B

uwefed: 2 ) non ho capito dove hai trovato il valore di IBsat. La corrente di base per far andare il transistore in saturazione dipende dalla corrente del collettore e dal guadagno hfe. Non puoi dirlo a priori.

Nel datasheet c'è indicata la corrente di saturazione del transistor IBsat=0,5mA poi se si utilizza il transistore in modalità di saturazione la corrente di base è circa uguale a quella di collettore! Sono d'accordo comunque che la corrente dipenda dal betaF però per un calcolo approssimato funziona e porta comunque il bjt a lavorare nella regione di saturazione.

uwefed: 3 ) non ho capito cosa fai col pin 0 e col pin 12; nel codice sono settati ma non utilizzati.

Il pin 12 non deve proprio comparire è un errore di battitura!

uwefed: 4 ) é sbagliato scrivere "digitalWrite(12,HIGH); // viene posto il pin 0 a livello alto" se non hai messo in precedanza un pinMode() o ti sei solo confuso tra pin12 e pin0?

vedi risposta precedente!

uwefed: 5 ) non usare pin0 per questi esempi perché si rischia che non funziona il upload dei programmi.

lo so, infatti ho caricato prima lo sketch e poi ho utilizzato il pin0 e comunque ho utilizzato quello perché era più vicino.

uwefed: 6 ) un azionamento di 0,1 secondi fa male al relé e Ti puó capitare che non comuta neanche.

Si però per quei due minuti in cui lo dovevo utilizzare e per far capire il funzionamento a qualcuno che segua il tutorial è ottimo. Poi il relè comunque commuta, testato personalmente, altrimenti avrei aumentato il tempo, poi è chiaro che se il circuito deve entrare a far parte di qualcosa di più complesso ovviamente va modificato.

uwefed: 7 ) Il diodo non serve per limitare la corrente del relé ma di cortocircuitare la corrente derivante dalla tensio0ne di induzione nel momento di spegnimento del relé.

Grazie per la risposta. Fin ora non avevo mai utilizzato un relè a livello pratico. Ora però mi viene un dubbio cosa succede se non utilizzo il diodo in parallelo al relè? Grazie...

uwefed: 8 ) Al posto del buzzer usa un LED con la sua resistenza; é piú figo che qualcosa si accende e alimentalo dai 5V e non da un uscita del Arduino. Non puoi alimentare il buzzer da un uscita Arduino.

Perché non posso alimentare il buzzer da un uscita di arduino? Non eroga sempre i 5 volt?

uwefed: 9 ) prevedi l' opzione di pilotare un relé con un tensione di alimentazione diversa da 5V e percui serve un alimentazione esterna.

Si sono d'accordo ma ho fatto il tutorial di fretta e la prima alimentazione che avevo a disposizione era quella dell'arduino.

uwefed: 10 ) se calcoli una resistenza e ti viene 8600 Ohm, usa una da 8200 e non fare una rete resistiva per arrivare a 7800 Ohm. Metti una resistenza da 1kOhm, che va bene.

Si lo so, ma la risposta è sempre la stessa: quello è il materiale che avevo. Non avevo altro... :D

uwefed: 11 ) se vuoi fare una foto della breadboard fai il circuito in modo ordinato e non cosí caotico. Si deve capire dove vanno i cavi e dove sono inseriti i componenti.

Hai ragione su questo punto, sono io ad essere proprio caotico!

uwefed: 12 ) se metti un filmino o metti il sonoro e si sente il buzzer oppure metti un LED.

Hai ragione metterò un led e modificherò il post.

Infine ti volevo ringraziare per le critiche mi aiutano ad organizzarmi meglio. Grazie questo forum è fantastico. Ciao...

antonio_cov:

leo72: A parte gli strafalcioni d'italiano ("vabbene" -> "va bene" ecc..),

Scusami grande prof. ma ho scritto tutto di fretta senza rileggere, appena posso apporterò le correzioni. Se per te è uno scempio non leggerlo.

[/quote] Non sono prof. Se lo fossi stato ti avrei dato 4 in italiano. Se scrivi qualcosa che gli altri dovranno leggere, abbi cura di riguardare l'italiano così come riguardi i circuiti. Se per te è uno scempio che ti correggano gli errori, non pubblicarlo.

mi spieghi il motivo per cui prendi l'alimentazione del relé da un pin di Arduino settato su HIGH? Non potevi collegarlo ai 5V direttamente?

Se al posto di fare attenzione alla grammatica avresti letto con più attenzione l'articolo ti saresti accorto che non sto prelevando l'alimentazione dal pin dell'arduino. Te lo spiego in parole povere il pin 13 dell'arduino serve a far andare in saturazione o no il bjt a secondo del valore. Il pin 0 (prima per errore ho scritto 12 nell'articolo ma ora ho corretto) serve per prendere l'uscita da portare sul buzzer e come puoi vedere dalle foto PRELEVO L'ALIMENTAZIONE DI 5 V portandola sul relè. Quando leggi fai attenzione... Saluti...

Se al posto di risentirti perché qualcuno si risente di come maltratti la patria lingua e tu avessi prestato attenzione a cosa stavi scrivendo, forse non si era qui a discutere di ciò. Quando pubblichi qualcosa devi riflettere su ciò che stai mettendo online: se arriva un deficiente come me che di elettronica non ci capisce nulla, è normale: 1) che ti chieda i motivi di una scelta e che non capisca il motivo per cui ti sia risentito così tanto; 2) che ti assuma le responsabilità per ciò che scrivi. Mi vieni a dire che lo sketch è sbagliato.... ma se non ti avvertivo dell'errore, che facevi? Lo lasciavi così? E poi non era solo lo sketch: anche il circuito faceva riferimento al pin 12.

Ripeto, presta più attenzione a ciò che metti online, non risentirti se ti fanno delle osservazioni e se qualcuno ti chiede spiegazioni non pensare che ti stia prendendo per i fondelli ma che voglia solo capire il motivo per cui hai fatto quelle scelte. In poche parole, vola basso.

Hai ragione sul fatto che forse me la sono presa un pò troppo. Accetto le critiche però sui circuiti, perché alla fine per me sono quelli che contano e forse per questo me la sono presa. Comunque ho sempre volato basso! :grin: Per il resto posso solo ringraziarti per avermi fatto notare la questione del pin12... Saluti...

OK. ;)

Ciao antonio_cov

uwefed:
2 ) non ho capito dove hai trovato il valore di IBsat. La corrente di base per far andare il transistore in saturazione dipende dalla corrente del collettore e dal guadagno hfe. Non puoi dirlo a priori.

antonio_cov:
Nel datasheet c’è indicata la corrente di saturazione del transistor IBsat=0,5mA poi se si utilizza il transistore in modalità di saturazione la corrente di base è circa uguale a quella di collettore! Sono d’accordo comunque che la corrente dipenda dal betaF però per un calcolo approssimato funziona e porta comunque il bjt a lavorare nella regione di saturazione.

Non ho trovato nessun valore di IB sat nel datasheet linkato. Ho trovato la tensione UCEsat nelle condizioni di IB= 0,5mA e IC = 10mA. Non é la stessa cosa.

uwefed:
5 ) non usare pin0 per questi esempi perché si rischia che non funziona il upload dei programmi.

antonio_cov:
lo so, infatti ho caricato prima lo sketch e poi ho utilizzato il pin0 e comunque ho utilizzato quello perché era più vicino.

Se scrivi un Tutorial cerca di scriverlo in modo da non indurre persone che sono all inizio con Arduino e coll’elettronica di fare errori. Percui: Non usare pin 0 e pin 1!!.

uwefed:
7 ) Il diodo non serve per limitare la corrente del relé ma di cortocircuitare la corrente derivante dalla tensio0ne di induzione nel momento di spegnimento del relé.

antonio_cov:
Grazie per la risposta. Fin ora non avevo mai utilizzato un relè a livello pratico. Ora però mi viene un dubbio cosa succede se non utilizzo il diodo in parallelo al relè? Grazie…

Rischi di rompere il transiostore.

uwefed:
8 ) Al posto del buzzer usa un LED con la sua resistenza; é piú figo che qualcosa si accende e alimentalo dai 5V e non da un uscita del Arduino. Non puoi alimentare il buzzer da un uscita Arduino.

antonio_cov:
Perché non posso alimentare il buzzer da un uscita di arduino? Non eroga sempre i 5 volt?

Perché il buzzer puó assorbire piú corrente di quello che un pin di arduino puó dare e percui romperlo.

uwefed:
9 ) prevedi l’ opzione di pilotare un relé con un tensione di alimentazione diversa da 5V e percui serve un alimentazione esterna.

antonio_cov:
Si sono d’accordo ma ho fatto il tutorial di fretta e la prima alimentazione che avevo a disposizione era quella dell’arduino.

Mai scrivere Tutorial in fretta; devi rileggerli piú volte in giorni diversi e falli leggere da un amico che ti coregge.

uwefed:
10 ) se calcoli una resistenza e ti viene 8600 Ohm, usa una da 8200 e non fare una rete resistiva per arrivare a 7800 Ohm. Metti una resistenza da 1kOhm, che va bene.

antonio_cov:
Si lo so, ma la risposta è sempre la stessa: quello è il materiale che avevo. Non avevo altro… :smiley:

Ok, ma stai scrivendo una guida e non descrivi come hai fatto a pilotare un relé. in questo c’é un a grossa differenza.

antonio_cov:
Infine ti volevo ringraziare per le critiche mi aiutano ad organizzarmi meglio. Grazie questo forum è fantastico.
Ciao…

Di niente, dopo tutto vogliamo aiutarti :wink: :wink: :wink:
ciao Uwe

Grazie! Per la Ibsat vedi inizio seconda pagina... Saluti e ancora grazie...

dici questo?

Collector–Emitter Saturation Voltage (IC = 10 mA, IB = 0.5 mA) (IC = 100 mA, IB = 5.0 mA) (IC = 10 mA, IB = See Note 1)

Ciao Uwe

si...sbaglio qualcosa?

antonio_cov:
Grazie! Per la Ibsat vedi inizio seconda pagina…
Saluti e ancora grazie…

Il datasheet non cita esplicitamente la Ibsat per il semplice motivo che il suo valore minimo è dipendente da Ic, trovi specificati i due limiti in cui ottieni Vbesat, Ibsat con Ic =< 10 mA vale 0.5 mA, ma con Ic prossima a 100 mA, e questo è il tuo caso, servono 5 mA per Ibsat.

Ok grazie!

Sí. La tabella descrive le condizioni di misura della tensione di saturazione collettore-emettitore riportati sulla colonna di destra
Ciao Uwe