#LIBRERIAS A UTLIZAR
from machine import Pin, I2C, PWM
import ssd1306
import time
led = Pin(19,Pin.OUT) # SE ASIGNA EL LED
led_ROJO = Pin(13,Pin.OUT)# SE ASIGNA EL LED
led_VERDE = Pin(12,Pin.OUT)# SE ASIGNA EL LED
i2c = I2C(0, scl = Pin(22), sda = Pin(21)) # SE ASIGNA EL DISPLAY
oled = ssd1306.SSD1306_I2C(128,64,i2c) # SE ASIGNA EL DISPLAY
boton = Pin(17,Pin.IN) # SE ASIGNA EL BOTON
boton2 = Pin(14,Pin.IN)# SE ASIGNA EL BOTON
led_estado = False #PONEMOS EL ESTADO DEL LED EN FALSO PARA QUE ESTE APAGADO DESDE EL INICIO
led_VERDE_estado = True #PONEMOS EL ESTADO DEL LED EN VERDADES PARA QUE ESTE ENCENDIDO DESDE EL INICIO
led_ROJO_estado = False #PONEMOS EL ESTADO DEL LED EN FALSO PARA QUE ESTE APAGADO DESDE EL INICIO
sensor1 = Pin(18,Pin.IN, Pin.PULL_DOWN) #SE ASIGNA EL PIN AL SENSOR
sensor2 = Pin(5,Pin.IN, Pin.PULL_DOWN) #SE ASIGNA EL PIN AL SENSOR
led_VERDE.value(led_VERDE_estado) #LE DAMOS EL VALOR DEL LED_VERDE AL ESTADO BOOLEANO QUE TENIAMOS
Bocina = PWM(Pin(2), freq = 440, duty = 0) #ASIGNAMOS LA BOCINA
#CREAMOS UNA FUNCION PARA EL FUNCIONAMIENTO DE LA BOCINA
def Sonido(freq, sleep):
Bocina.freq(freq)
Bocina.duty(512)
time.sleep(sleep)
Bocina.duty(0)
while True:
medicion1 = sensor1.value() #ASIGNAMOS UNA VARIABLE AL VALOR QUE TENDRA NUESTRO SENSOR
medicion2 = sensor2.value()
#VALIDAMOS SI LOS BOTONES Y LOS SENSORES ESTAN SIENDO UTLIZADOS
if boton.value() == 1 or boton2.value() == 1 or medicion1 == 1 or medicion2 == 1 :
led_estado = True #LO PASAMOS DE FALSO A VERDADERO
led.value(led_estado) #AHORA NUESTRO VALOR SERA EL MISMO QUE EL LED_ESTADO
led_VERDE_estado = False #APAGAMOS EL LED
led_VERDE.value(led_VERDE_estado) #ASIGNAMOS EL VALOR PARA QUE SE APAGUE
led_ROJO_estado = True #ENCEDEMOS EL LED
led_ROJO.value(led_ROJO_estado)#ASIGNAMOS EL VALOR PARA QUE SE ENCIENDA
oled.fill(0) #LLAMAMOS AL DISPLAY
oled.text("Puedes cruzar",15,20) #ESCRIBIMOS EN LA PANTALLA
oled.show() #MOSTTRAMOS LO QU ESTA EN LA PANTALLA
Sonido(440, 10) #LLAMAMOS NUESTRA FUNCION DE LA BOCINA CON UNA FREQUENCIA DE 440 DURANTE 10 SEGUNDOS
#VALIDAMOS SI LOS BOTONES Y LOS SENSORES NO ESTAN SIENDO UTLIZADOS
elif boton.value() == 0 or boton2.value() == 0 or medicion1 == 0 or medicion2 == 0:
led_estado = False #APAGAMOS EL LED
led.value(led_estado) #ASIGNAMOS NUESTRO BOOLEANO AL VALOR DEL LED PARA QUE SE APAGUE
led_VERDE_estado = True #ENCEDEMOS EL LED
led_VERDE.value(led_VERDE_estado)#ASIGNAMOS NUESTRO BOOLEANO AL VALOR DEL LED PARA QUE SE ENCIENDA
led_ROJO_estado = False #APAGAMOS EL LED
led_ROJO.value(led_ROJO_estado) #ASIGNAMOS NUESTRO BOOLEANO AL VALOR DEL LED PARA QUE SE APAGUE
oled.fill(0) #LLAMAMOS AL DISPLAY
oled.text("Presiona el",10,20) #ESCRIBIMOS EN PANTALLA
oled.text("boton para ",10,30)
oled.text("cruzar",10,40)
oled.show()#MOSTAMOS EN PANTALLA
time.sleep(0.5) #TIEMPO PARA QUE EL BUCLE DESCANSE HASTA PODER VOLVER A UTILIZAR