Presentamos la placa de Expansion para la Raspberry Pi. Esta ha sido pensada para poder explotar todas las posibilidades de la Raspberry Pi a nivel de hardware. La placa presenta las siguientes características:
Todo su funcionamiento se explicará a continuación para que no haya dudas a la hora de realizar proyectos con la Raspberry Pi. Además se proporcionará código de ejemplo para su uso. En el siguiente tutorial se explica cómo instalar la librería wiringPi.
La placa incorpora un conector para alimentar la placa y la Raspberry Pi. Por este conector se tiene que proporcionar al menos 7V y un máximo de 12V. Esta entrada está conectada a un regulador lm323 que proporciona 5V y hasta 3A. Con el selector 5v_selector se puede elegir si la Raspberry Pi se alimenta desde el microUSB o desde el regulador. En este último caso hay que tener en cuenta que el regulador sin un disipador se puede calentar bastante, por lo que es recomendable alimentar por el microUSB y el alimentador de 12V. Si se desea usar solo este alimentador se aconseja el uso de tensiones entre 7V y 9V.
La placa dispone de 7 pines de uso general además del pin nº7 que está conectado al led controlable. Estos pines de uso general están conectados al TXB0108 que convierte la señal de 3.3V a 5V y viceversa. Por lo que la Raspberry puede usarse con dispositivos a 5V como son la mayoría de dispositivos compatibles con Arduino.
Un ejemplo de su uso es el siguiente código, donde se encienden todos los pines y se apagan durante 1 segundo. Hay que tener en cuenta que el TXB0108 tiene el pin de Output Enable (OE). Este pin está conectado a una pull-up, pero si se conecta el jumper OE, se desactivarán todas las salidas del integrado.
El pin 11 está conectado a una resistencia de pull-down; ese pin puede usarse para conectar algún botón o fin de carrera sin necesidad de incorporar la resistencia. Para más información se puede consultar el siguiente tutorial.
Compilamos con cc -o pines pines.c -L/usr/local/lib -lwiringPi
y con sudo ./pines ejecutamos.
La Raspberry Pi Expansion Board incorpora a 5V que puede proporciona en el lado del contacto hasta 5A a 230V esto es equivalente a una carga 1150 W. El Relé esta conectado a la salida del regulador LM323 por lo que si se quiere usar hay dos opciones:
Alimentar la placa por el conector de 12V y la Raspberry Pi por su microUSB. La segunda opción es alimentar la placa por el conector de 12V y ademas mover el jumper de alimentación a la posición correcta.
La activación del relé se realiza mediante un transistor bjt npn e incorpora su diodo de recirculación.
El relé esta conectado al pin 1 e incorpora un led, por lo que se puede ver su estado observándolo. Para activarlo o desactivarlo simplemente usamos el código de los pines anteriores y hacemos en vez de encender los demás pines encendemos el pin 1.
Con este relé puedes hacer pequeños proyectos de domótica, como encender luces o otros aparatos como ventiladores etc. Ademas con el ADC puedes poner diferentes sensores como fotoresistencias o sensores de temperatura y poder controlar cualquier cosa de tu casa desde internet. Puedes guiarte por este tutorial con Arduino.
Dado que la Raspberry Pi no incorpora ningún conversor analógico digital, en la placa se dispone de un conversor por SPI, en concreto el MCP3008, un conversor de 8 canales y 10 bits. Para saber cómo funciona en detalle se puede visitar el tutorial dedicado a él. En el siguiente ejemplo se usa la función analogRead creada en el tutorial anterior. Con esta función se puede leer cualquiera de los 8 canales y devolverá un entero entre 0 y 1023. Recordemos que el conversor trabaja a 3.3V, por lo que ese es su rango de medida.
El siguiente codigo hace una lectura de los 8 canales del ADC y los muestro por pantalla cada 250 ms.
Se compila con: cc -o adc adc.c -L/usr/local/lib -lwiringPi
y con sudo ./adc ejecuta.
El conversor hace uso del SPI_0 por lo que este puerto SPI estará ocupado por el ADC quedando libre el SPI 1.
Todos los pines del ADC están marcados por lo que es fácil identificarlos.
La placa incluye una zona para que puedas ampliarla con algunos componentes mas. La zona de prototipado tiene los agujeros exteriores conectados a GND,5V y 3.3V tal como indica la figura. Los demás no están conectados a nada se pueden usar como uno quiera.
La placa incorpora salida a pines del bus SPI 1, I2C y Serial. Todos ellos trabajan a 3.3V y están serigrafiados en la placa. El conector SPI sigue la misma configuración que en Arduino. La placa no lleva soldadas las resistencias de pull-up para el I2C, pero si que esta preparada para ello. En caso de usar algun dispositivo que no tenga instaladas sus propias pull-up puedes soldar dos resistencias de 1k o 4.7K.