Arduino: pilotare relè in modo semplice con il chip ULN2003


Ciao!

Il tutorial di oggi mostra come collegare fino a 7 relè ad Arduino in modo molto semplice.
Infatti grazie al piccolo ma potente circuito integrato ULN2003 è possibile pilotare carichi come relè o piccoli motori senza usare altri componenti.


Ogni canale di questo integrato può pilotare un carico massimo di 500mA (600mA di picco)
e all'interno è già presente il diodo di protezione per i carichi induttivi (come relè o motori).

Per i più smanettoni allego anche lo schema elettrico di come è realizzato all'interno ogni singolo canale:






Ecco un video di un relè pilotato con questo integrato:





Ed ecco finalmente lo schema per collegare i nostri relè ad Arduino, come vedete è sufficiente un singolo ULN2003 per collegare 7 relè (ma potete collegarne anche solo alcuni se ve ne servono di meno).

Lo schema è molto semplice, basta collegare i pin di Arduino che vogliamo utilizzare agli ingressi dell' ULN2003, mentre le uscite del chip andranno collegate alle bobine dei relè.
infine l'altro polo delle bobine dei relè andrà collegato a 5V.
Se volete maggiori info sul collegamento di un relè vi rimando anche a questa pagina






Fatto questo basterà portare alta la porta di Arduino corrispondente per attivare il relè.
ad esempio se vogliamo attivare il relè R1 configureremo il numero della porta di Arduino che vogliamo utilizzare come uscita e nel loop quando necessario porteremo alta la porta per arrivare il relè.

ecco uno sketch di esempio per maggior chiarezza:


  1. void setup()
  2. {
  3.   pinMode(2, OUTPUT);
  4.   pinMode(3, OUTPUT);
  5.   pinMode(4, OUTPUT);
  6.   pinMode(5, OUTPUT);
  7.   pinMode(6, OUTPUT);
  8.   pinMode(7, OUTPUT);
  9.   pinMode(8, OUTPUT);
  10. }
  11. void loop()
  12. {
  13.   digitalWrite(2, LOW);  
  14.   delay(1000);            
  15.   digitalWrite(2, HIGH);  
  16.   delay(1000);  
  17.   digitalWrite(3, LOW);  
  18.   delay(1000);            
  19.   digitalWrite(3, HIGH);  
  20.   delay(1000);  
  21.   digitalWrite(4, LOW);  
  22.   delay(1000);            
  23.   digitalWrite(4, HIGH);  
  24.   delay(1000);
  25.   digitalWrite(5, LOW);  
  26.   delay(1000);            
  27.   digitalWrite(5, HIGH);  
  28.   delay(1000);
  29.   digitalWrite(6, LOW);  
  30.   delay(1000);            
  31.   digitalWrite(6, HIGH);  
  32.   delay(1000);
  33.   digitalWrite(7, LOW);  
  34.   delay(1000);            
  35.   digitalWrite(7, HIGH);  
  36.   delay(1000);
  37.   digitalWrite(8, LOW);  
  38.   delay(1000);            
  39.   digitalWrite(8, HIGH);  
  40.   delay(1000);
  41. }

Questo esempio è davvero molto semplice, verrà attivato e disattivato un relè alla volta in modo ciclico, dal primo all'ottavo.

Mi fa molto piacere ringraziare il simpaticissimo Alberto Panu che ho conosciuto all'Arduino Day 2015 per la dritta di utilizzare questo componente per pilotare relè.
vi rimando anche al suo sito, in particolare al bellissimo progetto Ardupower che utilizza proprio questo componente.

Per qualsiasi domanda come al solito lasciate un commento, cercherò di rispondervi il più presto possibile, ciao!

Segui Daniele Alberti su Google+!







Nessun commento:

Posta un commento

Lascia un commento qui sotto, ti risponderò il prima possibile!

Related Posts Plugin for WordPress, Blogger...