# Programa para experimentar el uso del JoyStick KN-023 y 5 leds
# Módulos a trabajar
from machine import Pin, ADC #, PWM
import utime
# Definición de pines del ESP32 para las señales de entrada
sw = ADC(Pin(34)) # Pulsador digital
vrx = ADC(Pin(35)) # Señal analógica en x
vry = ADC(Pin(33)) # Señal analógica en y
# Definición de pines del ESP32
pinLedRojo = 5
pinLedVerde = 4
pinLedAzul = 23
pinLedMorado = 22
pinLedAmarillo = 2
pinBuzzer = 15
# Definición de pines del ESP32 para las señales de salida a leds
LedCentroVerde = Pin(pinLedVerde, Pin.OUT)
LedDerechaAzul = Pin(pinLedAzul, Pin.OUT)
LedArribaMorado = Pin(pinLedMorado, Pin.OUT)
LedIzquierdaAmarillo = Pin(pinLedAmarillo, Pin.OUT)
LedAbajoRojo = Pin(pinLedRojo, Pin.OUT)
Buzzer = Pin(pinBuzzer,Pin.OUT)
# Apaga todos los leds
LedCentroVerde.value(0)
LedDerechaAzul.value(0)
LedArribaMorado.value(0)
LedIzquierdaAmarillo.value(0)
LedAbajoRojo.value(0)
# Atenuación del voltaje de la ESP32 a 3.3V
vrx.atten(ADC.ATTN_11DB);
vry.atten(ADC.ATTN_11DB);
# Resolución a 4096
vrx.width(ADC.WIDTH_10BIT)
vry.width(ADC.WIDTH_10BIT)
# Ciclo de operación
while True:
valorx = vrx.read() # Lee el valor en x de 0 a 1023
valory = vry.read() # Lee el valor en y de 0 a 1023
valorsw = sw.read() # Lee el valor del pulsador digital
if valory >= 1000:
print("Disminuye Cantidad: ", valory)
LedIzquierdaAmarillo.value(1)
utime.sleep_ms(50)
else:
LedIzquierdaAmarillo.value(0)
if valory <= 23:
print("Aumenta Cantidad: ", valory)
LedDerechaAzul.value(1)
utime.sleep_ms(50)
LedDerechaAzul.value(0)
if valorx <= 23:
print("Solicita Reabasto: ", valorx)
LedArribaMorado.value(1)
utime.sleep_ms(50)
LedArribaMorado.value(0)
if valorx >= 1000:
print("Surtido Nulo: ", valorx)
LedAbajoRojo.value(1)
utime.sleep_ms(50)
LedAbajoRojo.value(0)
if valorsw == 0:
print("Surtido Completo: ", valorsw)
LedCentroVerde.value(1)
Buzzer.value(1)
utime.sleep_ms(500)
LedCentroVerde.value(0)
Buzzer.value(0)
utime.sleep_ms(500)