# ----------------------------------------------------------------------------
# (| " Potenciometro_Pico.py "|)
# (| " Este es un sencillo ejemplo de manejo de un Potenciometro con una "|)
# (| " Raspberry Pi Pico y MicroPython. "|)
# (| " "|)
# (| " El ADC de la Pico trabaja de 0 a 3V3 y tiene una resolución de 16 "|)
# (| " bits, esto significa que informa valores desde 0 como mínimo, hasta "|)
# (| " 2^16 - 1, o 65535, como máximo. "|)
# (| " "|)
# (| " Valor ADC = (Voltaje * 65535) / 3.3 "|)
# (| " "|)
# (| " Visualizaremos el valor actual del Potenciometro en la consola y "|)
# (| " mediante este valor controlaremos la velocidad de parpadeo del "|)
# (| " LED_BUILTIN GP25. "|)
# (| " "|)
# (| " El tap central del Potenciometro va al pin GP26 y los extremos van, "|)
# (| " uno a GND y otro a +3V3 (pin 36), NO ingrese señales TTL de 5V o "|)
# (| " freira el microcontrolador RP2040 permanentemente! "|)
# (| " "|)
# (| " Este código de ejemplo es de dominio público. "|)
# (| " "|)
# (| " Maker/Developer: jorgechac© - Técnico Laboral en Programación UNAB "|)
# (| " "|)
# (| " Visita https://jorgechac.blogspot.com "|)
# (| " "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32 "|)
# (| " Whatsapp y Ventas NEQUI +573177295861 "|)
# (| " Bucaramanga - Colombia "|)
# (| " "|)
# (| " Simulaciön https://wokwi.com/projects/341561335251731026 "|)
# (| " Repositorio https://github.com/jorgechacblogspot/micropython_pico "|)
# (| " https://jorgechac.blogspot.com/2021/04/raspberry-pi-pico-pin-mapping.html "|)
# ----------------------------------------------------------------------------------
from utime import sleep # importamos la funcion sleep del modulo utime
from machine import ADC, Pin # importamos la funcion pin del modulo machine
# y la función para conversión ADC
knob_pin = ADC(26) # asignamos GP26 al tap central del potenciometro
# es decir creamos un objeto ADC para leer los valores del pot
led_25 = Pin(25,Pin.OUT) # creamos un objeto de tipo pin y definimos el
# GP25 como salida digital
while True: # ciclo de control iterativo while, mientras sea True
knob_value = knob_pin.read_u16() # leemos el valor en formato entero sin signo
# de 16 bits del pin ADC GP26
td = 0.1 + knob_value/65535 # convertimos el valor del ADC a
# time delay (td) calculando el tiempo de espera
# para la siguiente iteración del bucle, sumando 0.1 segundos
# al valor normalizado del potenciómetro entre 0 y 1
print (knob_value) # se imprime el valor actual del potenciómetro en la consola
sleep(td) # esperamos td segundos
led_25.toggle() # switch de un estado a otro el Led
# GP25 en cada iteración del bucle.
pico:GP0
pico:GP1
pico:GND.1
pico:GP2
pico:GP3
pico:GP4
pico:GP5
pico:GND.2
pico:GP6
pico:GP7
pico:GP8
pico:GP9
pico:GND.3
pico:GP10
pico:GP11
pico:GP12
pico:GP13
pico:GND.4
pico:GP14
pico:GP15
pico:GP16
pico:GP17
pico:GND.5
pico:GP18
pico:GP19
pico:GP20
pico:GP21
pico:GND.6
pico:GP22
pico:RUN
pico:GP26
pico:GP27
pico:GND.7
pico:GP28
pico:ADC_VREF
pico:3V3
pico:3V3_EN
pico:GND.8
pico:VSYS
pico:VBUS
pot1:GND
pot1:SIG
pot1:VCC