Usando un RPi para controlar un LED RGB (4 / 5 paso)

Paso 4: Escribir el programa

Antes de adentrarnos en él, es importante tener en cuenta que la sangría es importante en el lenguaje Python. Otros idiomas utilizan signos de puntuación como soportes para decirle al programa la orden para ejecutar las cosas; Python usa indentación. Debido a esto, no puede simplemente copiar y pegar el código de esta página a su programa, el formato puede no ser totalmente preservado. No dude en seguir y escribir su propio código como ir, o simplemente descargar mi código de ejemplo aquí.

Si eres nuevo en la codificación, es importante mencionar que no hay una manera de escribir un programa. Personas tienen su propio estilo, pero sobre todo viene a cómo piensa resolver un problema. Me proporcionan código de ejemplo y explicar línea por línea, pero por favor, saber que no es la única manera de lograr el mismo resultado exacto.

 import sys, time 

Aquí importamos dos bibliotecas incorporadas - funciones, variables, etc. que ya han sido definidos y que podemos llamar el.

 import RPi.GPIO as GPIO 

Se trata de una biblioteca de Raspbian que nos permite utilizar Python para control GPIO pins.

 redPin = 11 greenPin = 13 bluePin = 15 

Ahora, definimos algunas variables - que pins nos va conectando a que conducen RGB. Este paso no es necesario, pero facilita cambiar pines si es necesario.

 def blink(pin): 

Aquí, definimos una función. Una función es un conjunto de pasos que el equipo se ejecutará en el orden que le damos a él. Esta función requiere una variable para poder ejecutar: el número del pin que queremos iluminar.

 GPIO.setmode(GPIO.BOARD) 

Comenzamos nuestra función haciendo referencia a una de nuestras bibliotecas, GPIO. Entonces, le decimos que queremos elegir una Convención de nomenclatura de los pines GPIO (que son dos), para que el programa sepa que nos estamos refiriendo a las más. Entonces, decimos que utilice la Convención de "tablero" (en lugar de la Convención BMC), utilizando la biblioteca GPIO.

 GPIO.setup(pin, GPIO.OUT) 

Ahora, una vez más usando la biblioteca GPIO, decimos el Pi que queremos usar un pin. Pero primero, tenemos que especificar que la clavija y cómo queremos usar-de entrada o de salida. Aquí, "pin" es la variable que va a ser conectada en blink(pin).

 GPIO.output(pin, GPIO.HIGH) 

Ahora que el pasador se ha establecido, esta línea lo convierte. Debe reconocer la sintaxis por ahora; Aquí estamos utilizando la misma variable "pin" y el uso de la biblioteca GPIO para fijar el pin a un valor de "alto". En el caso de los pines GPIO, un "alto" valor resulta en 3.3v se pasa, o "on", mientras que un "bajo" valor resultados en 0v se pasa, o "off".

Ahora vamos a definir una función para apagar las luces. Se va a ver casi idéntica a la función anterior, sólo que te ajuste los pernos a baja.

DEF turnOff(pin): def turnOff(pin): GPIO.setmode(GPIO.BOARD) GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW) 

Necesitamos definir algunas funciones específicas a color utilizando las funciones que acaba de hacer. Recordar que estamos utilizando pernos de 11, 13 y 15 para rojo, verde y azul. Comenzaremos con las funciones que encender la luz. Con este tipo de función, no requiere ningún parámetro, así que los soportes permanecen vacíos; llamar a esta función en el programa simplemente lo ejecutará.

 def redOn(): blink(redPin) 

Aquí, le damos a la función de "parpadear" un número pin que se usa, 11. Cuando llamamos a redOn(), nuestra función de abrir y cerrar comenzará a ejecutarse con "pin" sustituido por "redPin". Hay que recordar que, antes, fijar redPin igual a 11.

Ahora hacemos lo mismo para el resto de los colores.

 def greenOn(): blink(greenPin) def blueOn(): blink(bluePin) 

Recordar que cuando se trata con luz, amarillo es hecho mezclando el rojo con verde, cian con verde y azul, magenta con rojo, azul y blanco por la combinación de los tres.

 def yellowOn(): blink(redPin) blink(greenPin) def cyanOn(): blink(greenPin) blink(bluePin) def magentaOn(): blink(redPin) blink(bluePin) def whiteOn(): blink(redPin) blink(greenPin) blink(bluePin) 

Por último, escribiremos las funciones para apagar las luces. Otra vez, la sintaxis será similar a las funciones anteriores.

 def redOff(): turnOff(redPin) def greenOff(): turnOff(greenPin) def blueOff(): turnOff(bluePin) def yellowOff(): turnOff(redPin) turnOff(greenPin) def cyanOff(): turnOff(greenPin) turnOff(bluePin) def magentaOff(): turnOff(redPin) turnOff(bluePin) def whiteOff(): turnOff(redPin) turnOff(greenPin) turnOff(bluePin) 

Ahora estamos listos para definir nuestra función principal; un bucle que constantemente piden la entrada del usuario y reacciona llamando a varias funciones. En este caso, el usuario podrá activar o desactivar colores. Este programa está escrito para que solo aceptará algunas entradas predefinidas. De lo contrario, no hará nada y mostrar un mensaje a tal efecto.

Una vez más, no pedimos para las variables de esta función, así que los soportes permanecen vacíos. esencialmente "mientras que el verdadero" dice "mientras se ejecuta el programa, hacer esto", para que corra constantemente hasta que nos salga.

 def main(): while True: cmd = raw_input("Choose an option:") 

Definimos una nueva variable "cmd" para utilizar más adelante y ponerlo igual a la entrada del usuario. También constantemente se pedirá al usuario que elija una opción.

Ahora una declaración "si" que se ejecutará sólo si el usuario de entrada exactamente coincide con el texto dentro de las comillas. Tenga en cuenta que aquí utilizamos dos símbolos "igual a". En Python y de hecho la mayoría de las idiomas, un solo "igual a" se utiliza para cambiar el valor de una variable mientras que los dobles se utilizan para comparar valores variable coinciden entre sí o no.

 if cmd == "red on": redOn() 

"elif" está parado para "else, if". Esto tachuelas en la instrucción "if" anterior y agrega nuevos parámetros, lo que nos permite crear fácilmente una cadena de sentencias "else, if".

 elif cmd == "red off": redOff() elif cmd == "green on": greenOn() elif cmd == "green off" greenOff() elif cmd == "blue on": blueOn() elif cmd == "blue off": blueOff() elif cmd == "yellow on": yellowOn() elif cmd == "yellow off": yellowOff() elif cmd == "cyan on": cyanOn() elif cmd == "cyan off": cyanOff() elif cmd == "magenta on": magentaOn() elif cmd == "magenta off": magentaOff() elif cmd == "white on": whiteOn() elif cmd == "white off": whiteOff() else: print("Not a valid command.") return 

Con nuestra última declaración "else", si el usuario intenta introducir nada que no sea uno de los comandos especificados anteriormente, le dirá al usuario que es un comando no válido. Lo último que necesita la función es esa "vuelta" para que el programa sepa cuando a lazo.

 main() 

Esta es la última línea de nuestro código. Cuando se ejecuta el programa, esta línea llame a la función principal que acaba de definir y se establecerá el bucle.

Artículos Relacionados

Usando Team Viewer para controlar otro ordenador

Usando Team Viewer para controlar otro ordenador

mis padres recientemente han conseguido en la autopista de la información y descubrió rápidamente que no sabían nada sobre el mundo amplia interweb ;). En lugar de ir a su casa todos los días que descargué un programa de control remoto por lo que les
Acelerómetro basado en reconocimiento de gestos para controlar un LED

Acelerómetro basado en reconocimiento de gestos para controlar un LED

Estos materiales y la información contenida en este instructivo son proporcionan por los estudiantes matriculados en el Software de lugares (www.softwareofplaces.com)Clase en la Universidad PUC-Rio. El contenido representado aquí es el proyecto final
LinkIT uno y LEDs RGB

LinkIT uno y LEDs RGB

Este es mi primer instructivo y en este instructable voy a mostrarle cómo controlar un LED RGB usando un Linkit una wireless (WiFi).Paso 1: Lista de piezasLinkIT unoRGB LED (ánodo común)Tablero de panCables dePCPaso 2: RGB LEDUsé un LED RGB en config
Android controla LEDs RGB con Arduino

Android controla LEDs RGB con Arduino

Hai a todos en el post iam va a mostrar cómo controlar el LED RGB utilizando android con arduino y el módulo Bluetooth HC-05.He buscado en la web hay muchas técnicas para controlar el LED RGB. Pero este es el método que es muy simple y fácil.En este
Ofertas LEDs RGB para cualquier proyecto (WS2812, también conocido como NeoPixels)

Ofertas LEDs RGB para cualquier proyecto (WS2812, también conocido como NeoPixels)

Cuando estamos trabajando con LEDs, nos gusta a menudo controlar su estado (encendido/apagado), el brillo y el color. Hay muchas maneras de ir sobre esto, pero ninguno son como una solución como la WS2812 RGB LED compacta. En su paquete pequeño de 5
Sensor ping controlar LEDS RGB

Sensor ping controlar LEDS RGB

Como parte de mi proyecto este semestre necesitaba ser capaces de controlar unos LEDs RGB usando un sensor ping. Para mi proyecto he querido mi LED a desaparecer a través de colores pero cuando alguien muy cercano al proyecto que quería los LEDs rojo
Sistema de LED RGB controlable para su hogar u oficina

Sistema de LED RGB controlable para su hogar u oficina

¿Son aburridas las luces en su espacio de trabajo o casa? ¿Quieres añadir un poco de energía o iluminación del humor en su habitación? Este Instructable muestra cómo crear una matriz de LED RGB controlable para el uso en su hogar u oficina. Su red, e
Control LED RGB utilizando Amarino Nano 1.0

Control LED RGB utilizando Amarino Nano 1.0

Qué es Amarino Nano 1.0Este es mi nuevo kit de bricolaje para Android-Arduino comunicación vía Bluetooth.Amarino Nano particularmente usa Arduino Nano, así que usé el título como 'Nano'. Es un juego muy simple para probar la mayoría de las funciones
Charliecube - Cubo de LED RGB de Charlieplexed 4 x 4 x 4

Charliecube - Cubo de LED RGB de Charlieplexed 4 x 4 x 4

Se trata de un cubo 3D de Charlieplexed 64 RGB LED.El CharlieCube tiene un total de 192 LEDs y es controlada por 16 pines de arduino conectados 16 torres de 4 LED y 4 conexiones. Las conexiones de 64 que lleva 16 agujas de 4 están conectadas de tal m
Horizonte de la lámpara LED RGB

Horizonte de la lámpara LED RGB

esta es la primera versión de la lámpara de mi horizonte. El circuito y el código que se ejecuta el microprocesador fueron todos desarrollados utilizando el entorno de Arduino y entonces una vez yo estaba feliz que todo funcionaba como yo quería mi p
Escultura de LED RGB

Escultura de LED RGB

me decidí a publicar este proyecto para entrar en el concurso de diseño instructivo y el hacer que resplandor concurso. Este es un logo que mi amigo diseñado para su banda (rima y razón). Él me dio la oportunidad de traer su logotipo de la banda a la
Corriente constante LED RGB fade efecto con transistores

Corriente constante LED RGB fade efecto con transistores

Me aburría así que empecé a jugar con transistores. La razón de esto se convirtió en un LED se descolora y circuito actual constante es simplemente porque las piezas eran a mano y luces de diferentes colores siempre es fresco. Por favor ver adjunto v
Android Bluetooth Control Led RGB

Android Bluetooth Control Led RGB

Elegir el color de la luz que te hace sentir más cómodo.Mando a distancia bluetooth simple que puede modificar la iluminación de tu dispositivo móvil o tablet.Tiene dos canales RGB separados donde se pueden obtener diversos colores por canal.Control
Mueva la mano para controlar brazo robótico OWI... sin compromiso

Mueva la mano para controlar brazo robótico OWI... sin compromiso

LA IDEA:Hay por lo menos 4 otros proyectos en Instructables.com (a partir del 13 de mayo de 2015) alrededor de modificar o controlar el brazo robótico OWI. No es de extrañar, ya que es tan un gran barato robótico kit y para jugar con. Este proyecto e