4.2 Haciendo uso del pinout
Llegó el momento de mancharnos las manos
Todos los montajes deben hacerse con la Raspberry Pi apagada.
Cuestiones previas
Antes de comenzar a trabajar con la raspberry Pi necesitamos tener claras algunas cuestiones como el pinout del modelo con el que estemos trabajando. Así, el pinout del modelo 4 es el siguiente:
Imagen obtenida de https://www.raspberrypi.com/documentation/computers/raspberry-pi.html
Una cosa que han hecho muy bien desde Raspberry Pi es mantener la retrocompatibilidad entre modelos así el pinout del modelo 2 B es el mismo que es de este modelo.
Para las prácticas que realizaré a continuación utilizaré una Raspberry Pi modelo 2 B. Las mismas deberían ser totalmente compatibles con modelos actuales.
Vamos a hacer uso de resistencias para algunos montajes por ello te dejo a mano el código de colores de las resistencias:
Imagen obtenida de https://i.ytimg.com/vi/ox8Su0lyFXo/maxresdefault.jpg
También necesitaremos conocer los diferentes segmentos de un display
Imagen obtenida de https://mvelectronica.com/storage/app/OPTOELECTRONICA/DISPLAY/D7S3A/2.png
Lo último que tenemos que tener claro es el patillaje de un diodo LED
Imagen obtenida de https://ebotics.com/es/actividad/proyecto-no-2-controlar-el-brillo-del-led/
También recuerda:
- Ley de Ohm: V = R * I (Tensión es igual a Resistencia por Intensidad) en sus respectivas unidades:
- Tensión se mide en Voltios (V)
- Resistencia se mide en Ohmios (Ω)
- Intensidad se mide en amperios (A)
- Un diodo sólo deja pasar la corriente en un determinado sentido por ello verifica que si no se enciende está conectado en la posición correcta (si no luce también puede ser que esté quemado)
Ejemplo de cálculo
Si queremos actuar sobre algún dispositivo lo haremos a través de los pines que podemos encender y apagar a través del software. Si recurrimos a la documentación de Raspberry Pi indican "A GPIO pin designated as an output pin can be set to high (3.3V) or low (0V)." Es decir, cuando establezcamos que un pin está encendido (a HIGH, a 1, son todo sinónimos) significa que estaremos estableciendo que en ese pin hay 3,3V mientras que si establecemos que un pin está apagado (a LOW, a 0, son todo sinónimos) significa que estamos estableciendo que en ese pin hay 0V. Además la corriente máxima con la que pueden funcionar un GPIO en la Raspberry es 16mA.
Así, si queremos utilizar un diodo LED rojo que funciona con 1,7 V y 20mA tendremos un exceso de 1,6V (los 3,3V que genera la salida de la Raspberry menos los 1,7V que requiere el LED rojo) ese exceso de tensión tendremos que dárselos a otro componente para que no se queme el LED por ello en nuestro diseño meteremos una resistencia, que no tendrá mas objetivo que ser ella la que consuma ese exceso de 1,6V. ¿Y de cuánto tendrá que ser esa resistencia? Sabemos que en esa resistencia tiene que haber 1,6V y que por ella van a circular 16mA =0,016A (lo ideal sería 20mA pero la Raspberry nos lo limita a 16mA), usamos la Ley de Ohm R=V/I=1,6/0,016 = 100 Ω. Por lo que junto a nuestro led rojo deberemos usar una resistencia de 100 Ω que coincide con un valor standard comercial. Si el valor calculado no coincide con un valor comercial, hay que elegir el inmediato superior (el inferior proporcionaría más corriente y tenemos la limitación de los 16mA de la Raspberry que no queremos quemarlo).
La potencia que "sufrirá" esa resistencia será P= VI = 1.6Vx16mA=27mW por lo tanto cualquier resistencia comercial es válida pues lo mínimo es 1/8W la más común son las 1/4W.
De la misma forma podemos hacer los cálculos para otros colores de Leds, (aquí para descargar la hoja de cálculo) pero como podemos ver, algunos colores no funcionarían con la Raspberry pues necesitan más tensión de la que proporciona la Raspberry
Fuente de datos Wikipedia https://es.wikipedia.org/wiki/Circuito_de_LED
Normalmente en placas como Arduino trabaja a 5V por lo que las resistencias son mayores :
Imagen de https://todotecnologia-eso.blogspot.com/ Licencia CC-BY-SA-NC
Encender y apagar un led
Materiales
- 1 led
- 1 resistencia de 100Ω / 1/4W
- 2 cables
- placa de conexiones
Conexiones
- Resistencia al cátodo del led
- ánodo del led a pin 7 (pin, no GPIO)
- Resistencia a pin 25 (tierra)
Programa
Nos dirigiremos a la terminal y allí escribiremos
nano led.py
con ello se abrirá el editor nano y estaremos trabajando sobre el fichero led.py que si no existe se creará y si existe trabajaremos sobre el existente. A continuación escribiremos el código python que aparece a continuación:
# Importamos la biblioteca que nos permite pausar la ejecución del programa
import time
# Importamos la biblioteca que nos permite conectar a los GPIO pins
# otros dispositivos. GPIO -> General Purpose Input Output
import RPi.GPIO as GPIO
# A partir de aquí configuramos la plcada
# 1ero: borramos cualquier configuración previa
GPIO.cleanup()
# 2ndo: establecemos el modo de trabajo de la raspi
GPIO.setmode(GPIO.BOARD)
# 3ero: Indicamos que el pin 7 actuará como salida
GPIO.setup(7,GPIO.OUT)
# Bucle infinito
while True:
# Escribo en el terminal el texto enciendo
print("enciendo")
# Pongo tensión en el pin 7
GPIO.output(7,GPIO.HIGH)
# Detengo la ejecución del programa 2 segundos
time.sleep(2)
# Escribo en el terminal
print("apago")
# Quito la tensión del pin 7
GPIO.output(7,GPIO.LOW)
# Pauso la ejecución del programa 2 segundos
time.sleep(2)
para salir del editor pulsaremos control + x
y aceptaremos los cambios. Tras ello, si ejecutamos ls -l
veremos listado el directorio en el que nos encontramos y ahí veremos nuestro fichero. Lo ejecutaremos escribiendo python led.py
En el terminal veremos algo similar a
Elaboración propia
Si las conexiones que hemos realizado son correctas veremos como el led va encendiéndose y apagándose. Para detener la ejecución del programa pulsaremos control + c
. Dejo a continuación alguna foto del programa funcionando:
Conexiones en la protoboard. Elaboración propia
Conexiones en la Raspberry Pi. Elaboración propia
Mensaje de led encendido y led encendido. Elaboración propia
Mensaje de led apagado y led apagado. Elaboración propia
Semáforo
Materiales
- 1 led rojo
- 1 led amarillo
- 1 led verde
- 1 resistencia de 100 Ω y dos de 82 Ω pero si se utilizan todos de 100 Ω no pasa nada.
- 4 cables
- placa de conexiones
Conexiones
- Una resistencia al cátodo de cada led
- ánodo del led rojo a pin 3 (pin, no GPIO)
- ánodo del led amarillo a pin 5 (pin, no GPIO)
- ánodo del led verde a pin 7 (pin, no GPIO)
- Resistencias a pin 25 (tierra)
Programa
Al igual que en el caso anterior crearemos el fichero con nano y lo ejecutaremos con python. Esa parte no varía por lo que no me repito. El nombre que le pongáis al programa no es importante.
Elaboración propia
Display de 7 segmentos
Esta práctica variará en función de si usamos un display de cátodo común o de ánodo común, tenlo en cuenta.
Materiales
- Display de 7 segmentos
- 4 resistencias de 82 Ω o 100 Ω
- 5 cables
- placa de conexiones
Conexiones
Si utilizas un display de cátodo común serán las siguientes:
- Cátodo del display a pin 25 (tierra)
- Pin 3 a resistencia y esta a segmento f.
- Pin 5 a resistencia y esta a segmento e.
- Pin 7 a resistencia y esta a segmento b.
- Pin 11 a resistencia y esta a segmento c.
Si utilizas un display de ánodo común serán las siguientes:
- Ánodo del display a pin 1 (3,3V)
- Pin 3 a resistencia y esta a segmento f.
- Pin 5 a resistencia y esta a segmento e.
- Pin 7 a resistencia y esta a segmento b.
- Pin 11 a resistencia y esta a segmento c.
Programa
Al igual que en el caso anterior crearemos el fichero con nano y lo ejecutaremos con python. Esa parte no varía por lo que no me repito. El nombre que le pongáis al programa no es importante.
El programa encenderá un lateral del display y luego otro de modo infinito. Te propongo que modifiques el programa y las conexiones para convertir esta práctica en una cuenta atrás.
Elaboración propia
Otras prácticas
Con mi alumnado de FP básica otras prácticas que he llevado a cabo han sido:
- encender el led cuando no hay luz (haciendo uso del LDR)
- un detector de humedad (que suene un sonido y/o se enciende una luz cuando el circuito se cierra con la humedad)
En internet existen multitud de prácticas para realizar con la Raspberry Pi.
No Comments