Está en la página 1de 8

TALLER 2

TEMA: Salidas Digitales en Arduino usando Python a Tiempo Real

VALORACIÓN: 20 PUNTOS

INTEGRANTES: Adrián Ismael Flores Peralta, Jordán Joel Pacheco Herrera,

Henrry David reyes flores, Bernardo José Caizaluisa Patiño, Darwin

Sebastián Naranjo Ponce

ITEMS

1. Encender un Led en la tarjeta Arduino usando el IDE de Arduino. (3 puntos)

const int LED=13;


void setup()
{
pinMode(LED,OUTPUT);
}
void loop()
{
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(LED,LOW);
delay(1000);
}

2. Encender un Led usando la librería ‘serial’ de Python. Crear una interfaz con
la librería tkinter, tk_tools entre otras q considere necesario. (4 puntos)

3. Repetir el item anterior usando el protocolo ‘firmata’ en lugar del ‘serial’. (5


puntos)
4. from tkinter import *
5. from pyfirmata import Arduino
6.
7. placa = Arduino('com4')
8.
9. def led_on():
10. placa.digital[9].write(1)
11. def led_off():
12. placa.digital[9].write(0)
13.
14.
15. scale.pack()
16.
17. btn = Button(root, text="ON", command=led_on)
18. btn.pack()
19. btn1 = Button(root, text="OFF", command=led_off)
20. btn1.pack()
21.
22. root.mainloop()

4. Implementar con Python el item sugerido en el laboratorio: Encender 3 leds


de manera secuencial, con un botón virtual desde Python y con otro botón
invertir la secuencia. Puede utilizar la librería serial o firmata. (8 puntos)
ANEXO A

Código en Python

#Importar modulos
import serial
import tkinter
import tk_tools
#Conéctese a arduino a través del puerto serie
#com3 --> Cambie el puerto de acuerdo con el suyo
arduino = serial.Serial('com3', 9600)
#Llamada de función para botón led_on
def led_on():
arduino.write(b'0') #mando a Arduino
led.to_red(True)
boton_on.config(state = "disabled")
boton_off.config(state = "normal")
#Llamada de función para botón led_off
def led_off():
arduino.write(b'1')
led.to_red()
boton_off.config(state = "disabled")
boton_on.config(state = "normal")
#salir de la llamada - función para cerrar el
programa def cerrar_ventana():
arduino.close() #cierro Serial
ventana.destroy() #cierro tkinter app
# Principal
ventana = tkinter.Tk()
ventana.title("Arduino--> Control de un Led")
ventana.configure(background="white")
#Creo botones
boton_on = tkinter.Button(ventana, text="PRENDER",
font= ('Verdana',16), padx=50, pady =20,
bg="green",fg="white",
command = led_on)
boton_off = tkinter.Button(ventana, text="APAGAR",
font=('Verdana',16), padx=50, pady =20,
bg="red",fg="white",
command = led_off)
boton_salir = tkinter.Button(ventana, text="SALIR",
font=('Verdana',16),
padx=130, pady =20,
command = cerrar_ventana)
#Ubicar botones
boton_on.grid(row=1,column=1)
boton_off.grid(row=1,column=2)
boton_off.config(state = "disabled")
boton_salir.grid(row=2,column=1, columnspan =2)
#Crear led interactivo usando tk-tools
led = tk_tools.Led(ventana, size=100)
led.to_red()
led.grid(row=0,column=1, columnspan =2)
#ejecuta ventana
ventana.mainloop()
ANEXO B

Código del Arduino

//Declarar variables

char serialData;

int Led=13;

//Configurar baudios y pines

void setup()

pinMode(Led, OUTPUT); // Pin a prenderse en Arduino

Serial.begin(9600);

//Bucle de repetición

void loop()

if (Serial.available() > 0) // enviar dara a la Arduino cuando se recibe de Python

serialData = Serial.read(); //Leer data por serial y asignar variable

Serial.print(serialData); //IMprimir pra confirmar data en Serial

//Condición

if(serialData ==

'0')

digitalWrite(Led, HIGH); //Encender Led

else if(serialData == '1')

digitalWrite(13, LOW); //Apagar Led

También podría gustarte