Página principal
Control de 3 salidas
Raspberry Pi
xsetaseta@gmail.comEl primer montaje con un microcontrolador sueles ser el parpadeo de un led. Para mi primer montaje con la Raspberry Pi he elegido el control de 3 leds mediante el teclado, o mediante un interface gráfico.
Navegando por internet encontre la siguiente página:
http://www.diverteka.com/?p=1792#comment-3529
Explica como controlar un rele mediante Raspberry Pi, es un buen tutorial realizado en lenguaje Python y las librerías ncurses. Yo lo único que he hecho es ampliarlo para que funcione con 3 leds.
Esquema eléctrico
Simulación de montaje
Montaje eléctrico.
Control mediante el teclado en consola.
# ========================================== # - Programa para manejo RELE de control - # ------------------------------------------ # - J.C.G.P. - (c) Webtronika 2013 - # # Modificado el 22/08/2013 por SETA43 # ========================================== #!/usr/bin/python import sys import curses import time import RPi.GPIO as GPIO # --------------------------------------------------------------- # - Rutina de configuracion de puertos en GPIO ------------------ # --------------------------------------------------------------- def confiGPIO(param1): GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(23, GPIO.OUT) GPIO.setup(24, GPIO.OUT) GPIO.setup(25, GPIO.OUT) return 0 # --------------------------------------------------------------- # ############################################################### # - PROGRAMA PRINCIPAL ------------------------------------------ # # Utiliza curses para visualizar salida a pantalla # # ############################################################### # --------------------------------------------------------------- stdscr = curses.initscr() curses.cbreak() curses.start_color() curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_GREEN) hsize = curses.COLS vsize = curses.LINES curses.curs_set(0) curses.noecho stdscr.border(0) stdscr.keypad(1) stdscr.nodelay(1) confiGPIO(0) try: stdscr.bkgd(curses.color_pair(1)) while True: # Rutina principal del programa char = stdscr.getch() time.sleep(.1) ### Hace que el sistema no se sature if (char == 81 or char == 113): # Tecla Q/q break if (char == 49): # Tecla 1 GPIO.output(23, True) if (char == 50): # Tecla 2 GPIO.output(23, False) if (char == 51): # Tecla 3 GPIO.output(24, True) if (char == 52): # Tecla 4 GPIO.output(24, False) if (char == 53): # Tecla 5 GPIO.output(25, True) if (char == 54): # Tecla 6 GPIO.output(25, False) else: stdscr.addstr(vsize/6, (hsize/2)-18,"Control de RELE via GPIO") stdscr.addstr((vsize/5)+2, (hsize/2)- 22,"[1] - Activa el RELE1") stdscr.addstr((vsize/5)+3, (hsize/2)- 22,"[2] - Desactiva el RELE1") stdscr.addstr((vsize/5)+5, (hsize/2)- 22,"[3] - Activa el RELE2") stdscr.addstr((vsize/5)+6, (hsize/2)- 22,"[4] - Desactiva el RELE2") stdscr.addstr((vsize/5)+8, (hsize/2)- 22,"[5] - Activa el RELE3") stdscr.addstr((vsize/5)+9, (hsize/2)- 22,"[6] - Desactiva el RELE3") stdscr.addstr(vsize-8, (hsize/2)- 18," Pulsa [Q] para salir") stdscr.refresh() finally: curses.nocbreak() stdscr.keypad(0) curses.echo() curses.endwin() |
Utilizando la librería Tcl/Tk he creado un interface gráfico.
Control gráfico.
#!/usr/bin/python import Tkinter import RPi.GPIO as GPIO def confiGPIO(param1): GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(23, GPIO.OUT) GPIO.setup(24, GPIO.OUT) GPIO.setup(25, GPIO.OUT) return 0 def on1(): print "on1" GPIO.output(23, True) return def off1(): print "off1" GPIO.output(23, False) return def on2(): print "on2" GPIO.output(24, True) return def off2(): print "off2" GPIO.output(24, False) return def on3(): print "on3" GPIO.output(25, True) return def off3(): print "off3" GPIO.output(25, False) return confiGPIO(0) top = Tkinter.Tk() top.geometry("200x250") top.title("RELE_TK") #top.config(bg="blue") A = Tkinter.Button(top, text ="ON1 ", command = on1) B = Tkinter.Button(top, text ="OFF1", command = off1) C = Tkinter.Button(top, text ="ON2 ", command = on2) D = Tkinter.Button(top, text ="OFF2", command = off2) E = Tkinter.Button(top, text ="ON3 ", command = on3) F = Tkinter.Button(top, text ="OFF3", command = off3) Q = Tkinter.Button(top, text ="QUIT",fg="red", command = quit) A.pack() B.pack() C.pack() D.pack() E.pack() F.pack() Q.pack() top.mainloop() |
Saludos
Juan Galaz
Bibliografía:
http://www.diverteka.com/?p=1792#comment-3529
http://docs.python.org/2/library/tkinter.html
http://www.tcl.tk/