Interfacciare un Rele'

Da raspibo.
Versione del 10 mar 2013 alle 17:30 di Renzo (discussione | contributi) (→‎E ora il software)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Vediamo come si interfaccia un Rele'.

NB, anzi BENISSIMO. Potete provare questo circuito sulla breadboard. IN NESSUN CASO FATE PASSARE LA TENSIONE DI RETE (220v) SULLA BREADBOARD. Se volete pilotare l'accensione di un apparato a tensione di rete prendete tutte le precauzioni del caso in modo da non poter toccare conduttori sotto tensione e, soprattutto, prendetevi la piena responsabilita' di cio' che state facendo.


RelePi2.png


Occorre un piccolo rele' con la bobina a 5v.

Il circuito prevede un diodo 1N4007 di protezione e una resistenza di limitazione della corrente che fluisce sulla base del transistor. Molti mettono resistenze da 1K ma ho provato sperimentalmente che anche una resistenza da 10K basta per far scattare il rele', se volete stare "nel mezzo", mettete 4.7K (chiedo consiglio agli elettronici pro per dirimere la contesa del giusto valore della resistenza).

Il +5v puo' essere preso dal pin 2 del pettine di contatti, e GND (massa) con dal pin 6. (per la cronaca il simbolo che sembra una T rovesciata collagata a GND e' una abbreviazione che si fa spesso nel disegnare circuiti. Tutti i punti nel circuito collegati alla "T rovesciata" sono in realta' collegati assieme. Di norma la massa (T rovesciata) rappresenta il punto nel circuito che e' a tensione 0 per il circuito, se necessario viene collegata anche ai contenitori metallici per schermare il circuito dalle interferenze).

Il pin con l'asterisco e' a vostra scelta. E' preferibile usare PIN che non abbiano altri utilizzi quali GPIO17 (pin 11), GPIO18 (pin 12), GPIO22 (pin 15), GPIO23 (pin 16), GPIO24 (pin 18), GPIO22 (pin 22). Se volete usare il pin 13 fate attenzione che nelle schede rev.A e' il GPIO21 in quelle rev.B e' il GPIO27.

Consiglio di evitare: pin 3 e pin 5 (sono usati per il bus I2C), pin 08 e pin 10 (e' la seriale, ed e' attiva di default), pin 7 (sarebbe il GPIO4 ma c'e' un driver del kernel per usarlo come bus onewire).

Una proposta alternativa

Per chi non vuole progettare un circuito stampato o saldare cavetti di rame sulla millefori JeeLabs ha una scheda Rele'. (Schema Elettrico)

La scheda ha 2 rele' che reggono 2A a 250V (ricordate pero' sempre il pericolo di giocare con la 220). Per chi si assume il rischio pero' questa scheda prevede belle contattiere a vite.

Questa scheda ha un pettine da 6 contatti. Collegate:

  • PWR (indicato con P sul circuito stampato) al PIN 2 del Raspberry PI, +5v
  • DIO (indicato con D sul circuito stampato) alla linea GPIO che volete usare per il primo rele' (valgono le regole della linea con l'asterisco dello schema sopra).
  • GND (indicato con G sul circuito stampato) e' la massa, collegatela al PIN 6
  • +3v (indicato con + sul circuito stampato), sarebbe per la tensione 3.3v, questa scheda non usa questa tensione quindi potete lasciare scollegato questo pin
  • AIO (indicato con A sul circuito stampato) alla linea GPIO che volete usare per il secondo rele' (leggete sopra quanto detto alla linea DIO)
  • IRQ (indicato con I sul circuito stampato), sarebbe per segnali di interruzione, non usato in questa scheda, lasciatelo scollegato.

E ora il software: con la shell

Tutto quanto avete visto in giro per accendere un led vale per eccitare (si dice cosi') il rele'.

Per esempio, se avete attaccato un rele' al pin 11, GPIO 18, da bash potete dare i seguenti comandi (come root)

# cd /sys/class/gpio
# echo 18 > export
# cd gpio18
# echo out > direction

Ora per accendere il rele':

# echo 1 > value

Per scpegnerlo

# echo 0 > value

Alla fine per riportare tutto allo stato iniziale:

# echo in > direction 
# cd ..
# echo 18 > unexport  

Se volete farlo in Python o in Lisp (famolo strano ;-) cercate in giro i programmini per accendere i led.

E ora il software: Python

In Raspian c'e' il pacchetto python-rpi.gpio che consente di accedere a GPIO in modo semplice dal linguaggio Python. Potete installare RPI.gpio con in seguente comando:

$ sudo apt-get install python-rpi.gpio python3-rpi.gpio

Per accedere al nostro Rele' occorre inizializzare la libreria ed indicare che il pin 11, GPIO 18 (seguo l'esempio sopra) e' un pin di output:

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)

a questo punto per attivare il rele':

GPIO.output(18, GPIO.HIGH)

e per disattivarlo:

GPIO.output(18, GPIO.LOW)

Prima di terminare il programma e' bene richiamare:

GPIO.cleanup()

alcune altre note

Mi piacerebbe provare questo rele' di SparkFun: e' optoisolato e sembra interessante. (I Triac/Rele' allo stato solido funzionano bene con carichi resistivi ma non sono adatti per carichi induttivi. Quelli che ho provato non funzionavano bene con le lampade a basso consumo, questo funzionera'? Domanda per Elettronici Pro).

Per chi non vuole saldare troppo (e magari vuole un device marchiato CE per stare tranquilli) occorrerebbe l'equivalente europeo del Power Switch Tail (venduto anche da SparkFun. Questo non funzionerebbe qui in Europa perche' ha le spine sbagliate e va solo a 110v.

Non c'e' nessuno che ha voglia di fare un simile prodotto (montato e sicuro per gli sperimentatori che amano solo le basse tesioni)? Care riviste di elettronica, mi sentite?