Relé y leds activados por la Raspberry Pi 3 con programación en Python

Ultima revisión de esta página: 02-Octubre-2016

Descripción del circuito:

La Raspberry Pi remite la señal de activación para el relé por el pin GPIO.1 (pín físico 12) que se envía a través de una resistencia de 100 Ohmios a la base del transistor NPN (C945). En el colector del transistor se ha conectado el pin físico 2 de la Raspberry Pi 3 que facilita 5V DC (cable azul). Al recibir señal por el GPIO.1, el transitor conmuta y hace llegar los 5V a la bobina del relé. También se ha acoplado a la llegada de la señal GPIO.1 un led con su correspondiente resistencia limitadora (330 Ohms) de forma que al recibir la señal de activación de la Raspberry, se activa el relé y el led. La masa (0V) está conectada al pin físico 6 (cable BLANCO).

Los pin GPIO.2 (pin 13), GPIO.3 (pin 15) y GPIO.4 (pin 16) van conectados a una resistencia de 100 Ohmios configurada como resistencia de Base de un transistor NPN (tipo BC547, C945, etc.) que actúa como interruptor para iluminar los led.

En el GPIO.2 (pin 13) van conectados varios led de color verde (conectados en serie de dos en dos con una resitencia limitadora de 150 Ohmios.

En el GPIO.3 (pin 15) y en el GPIO.4 (pin 16) van conectados los leds rojos y amarillos respectivamente.

Como los pin de datos de la Raspberry Pi funcionan a 3.3V y con muy poco amperaje (menos de 50mA), se usará el pin 2 para alimentar los leds ya que provee 5V y mayor amperaje y para darle o no darle voltaje a los led se usan transistores NPN configurados al corte.

¿Cuantos LEDs se podrían conectar?: no lo he probado experimentalmente pero, suponiendo que cada led consuma en torno a 20mA y que la Raspberry Pi 3 nos dé por el Pin 2 (5V) unos 500mA, pues se podrían conectar un máximo de unos 25 leds. Suponiendo que los 5V de la Raspberry llegasen hasta los 700mA (no tengo claro el máximo de corriente que puede facilitar el pin de 5V de la Raspberry Pi), pues aguantaría unos 35 leds. Hay que tener en cuenta también el consumo de los 4 transistores. Para conectar más led creo que sería preferible poner una fuente de alimentación externa o tomar los 5V directamente del transformador de la Raspberry Pi sin pasar por la propia Raspberry.

He visto que la Raspberry Pi no admite más de 2 leds en serie. Con 3 led y una resistencia de 10 Ohmios, los led ya no se iluminan prácticamente nada y eso suponiendo que sean leds verdes, rojos o amarillos que suelen ser de unos 2V. Si fuesen leds blancos que consumen más de 3V ya sólo se podría poner 1 led por resistencia para no sobrepasar los 5V.

Esquema conexión de los LED de cada uno de los colores...

Esquema conexión LEDs de cada uno de los colores



Conexión a la Raspberry Pi 3...

Conexión a la Raspberry Pi 3


Descargar esquema completo en formato PDF: "rele-y-leds.pdf"



Programa Python para probar la activación del relé por GPIO.1 y los leds en tres bloques conectados al GPIO.2, GPIO.3 y GPIO.4.

  
# Programa de pruebas en Python para activar un Rele y tres grupos de 
# leds conectados a la Raspberry Pi 3
# Se utiliza el puerto GPIO.1 (pin fisico 12) para el rele
# Se utiliza el puerto GPIO.2 (pin fisico 13) para los leds verdes
# Se utiliza el puerto GPIO.3 (pin fisico 15) para los leds rojos
# Se utiliza el puerto GPIO.4 (pin fisico 16) para los leds amarillos

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.output(12, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(16, False)

# Activamos el pin 12 (GPIO1) que tiene conectado un rele
GPIO.output(12, True)
time.sleep(0.2)   # Segundos que va a estar activo el rele
# Desactivamos el pin 12 que tiene conectado un rele
GPIO.output(12, False)

# Activamos el pin 13 (GPIO2) que tiene conectados leds Verdes
GPIO.output(13, True)
time.sleep(1.8)   # Segundos que van a estar activos los led Verdes
# Desactivamos el pin 13
GPIO.output(13, False)

# Activamos el pin 15 (GPIO3)) que tiene conectados leds Rojos
GPIO.output(15, True)
time.sleep(0.8)   # Segundos que van a estar activos los led Rojos
# Desactivamos el pin 15
GPIO.output(15, False)

# Activamos el pin 16 (GPIO4)) que tiene conectados leds Amarillos
GPIO.output(16, True)
time.sleep(0.8)   # Segundos que van a estar activos los led Amarillos
# Desactivamos el pin 16
GPIO.output(16, False)

# Ahora activamos a la vez los pin 12, 13, 15 y 16 durante 3 segundos
GPIO.output(12, True)
GPIO.output(13, True)
GPIO.output(15, True)
GPIO.output(16, True)
time.sleep(3.0)   # Segundos que van a estar activos todos los led
# Desactivamos los pin 12, 13, 15 y 16
GPIO.output(12, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(16, False)

GPIO.cleanup()

Descargar código fuente: "rele-y-leds.py"