Minoristas en línea autorizados:

Comprar en EE. UU. Comprar en el Reino Unido Comprar en Alemania Comprar en Italia Comprar en Francia Comprar en España ここでご購入を!

Hemos aprendido el concepto de entrada analógica ADC y salida analógica PWM en la Lección 3. Esta vez, usamos algunos dispositivos nuevos de entrada analógica y salida PWM.

En esta lección, le mostraremos cómo leer la señal analógica de un potenciómetro (resistor ajustable) a través de un pin ADC Pico (GP28). También conectaremos un motor de Servo a GP16 que puede generar una señal PWM. El servo girará su brazo cuando gire el potenciómetro.

  1. Placa Raspberry Pi Pico y cable microUSB
  2. Una computadora para ejecutar el IDE de Python Thonny
  3. Placa de ensayo x 1
  4. Potenciómetro x 1
  5. Motor de Servo x 1

En el gráfico del circuito anterior, puede ver que:
El cable rojo del servo está conectado al pin Vbus de Pico (5V)
El cable marrón del servo está conectado a Pico GND
El cable amarillo del servo está conectado al pin PWM de Pico (GP16)
El GND del potenciómetro está conectado a Pico GND
El VCC del potenciómetro está conectado a Pico 3.3V
El pin central del potenciómetro está conectado al pin ADC de Pico (GP28)

Puede descargar el código Python de la lección 5 desde https://osoyoo.com/driver/pico/lesson5/pico-lesson5.py.

Puede usar Thonny para abrir pico-lesson5.py y cargarlo en Pico más tarde.

Aquí está el código completo con comentarios:

from machine import Pin, PWM,ADC #import libraries for Pin, PWM, ADC
from time import sleep

adc = ADC(Pin(28))      #set Potentiometer analog input from GP28 pin
    
servoPin = PWM(Pin(16)) #set servo pwm output to GP16 pin
servoPin.freq(50)       #set servo frequency 50

def servo(degrees):     #rotate servo arm to degrees position
    # limit degrees beteen 0 and 180
    if degrees > 180: degrees=180
    if degrees < 0: degrees=0
    # set max and min duty
    maxDuty=9000
    minDuty=1000
    # new duty is between min and max duty in proportion to its value
    newDuty=minDuty+(maxDuty-minDuty)*(degrees/180)
    # servo PWM value is set
    servoPin.duty_u16(int(newDuty))

while True:
  value=adc.read_u16()   #read Potentiometer value
  print(value)
  degree=value*180/65500 #convert Potentiometer value to a servo position angle
  servo(degree).         #rotate servo to that angle     
  sleep(0.001)

Paso 1: Conecta la placa Pico a uno de los puertos USB de tu PC.

Paso 2: Si no has instalado el software Thonny o no sabes cómo usar el IDE de Thonny, por favor lee la lección 1.

Paso 3: Ahora abre el IDE de Python Thonny, haz clic en Ejecutar para seleccionar MicroPython para Raspberry Pi Pico como el intérprete.

Además, por favor selecciona el puerto COM al que está conectada tu placa Pico.

Después de eso, haz clic en Aceptar para guardar la configuración.

Paso 4: Copia el código Python en la ventana de Thonny de la siguiente manera.

Paso 5: Haz clic en el pequeño botón ►, y aparecerá el cuadro de diálogo de guardar como se muestra en la siguiente foto.

Selecciona Raspberry Pi Pico como destino.

Paso 6: Nombra el archivo como pico-lesson5.py, y haz clic en Aceptar.

Paso 7: Haz clic en el pequeño botón ► de nuevo para ejecutar el código Python.

Ahora puedes girar el potenciómetro y verás que el brazo del servo gira en consecuencia.

Después de completar la operación, presiona Ctrl + C para finalizar el comando.

APRENDE MÁS SOBRE LAS PIEZAS SKU:2021005900

No. Fotografía Nombre del producto Enlace
1 Placa Raspberry Pi Pico https://osoyoo.store/products/raspberry-pi-pico-flexible-microcontroller-board-based-on-the-raspberry-pi-rp2040-dual-core-arm-cortex-m0-processor-1-pc?variant=39875307864175
2 Servomotor https://osoyoo.store/products/micro-servo-sg90-blue-for-arduino-v2-0-robot-carmodel-lacc200610?variant=31648847560815
3 Módulo sensor de infrarrojos https://osoyoo.store/products/hc-sr501-pir-motion-sensor-for-arduino?variant=31957812838511
4 Módulo y tarjeta RFID https://osoyoo.store/products/osoyoo-rfid-module?variant=31970646130799
5 Pulsadores y sombreros https://osoyoo.store/products/push-button-and-hats-5pcs?variant=39879253131375
6 LED (6 blancos, 6 rojos, 6 amarillos, 6 verdes) https://osoyoo.store/products/led-packs-for-arduino?variant=31957816442991
7 Módulo zumbador piezoeléctrico https://osoyoo.store/products/piezo-buzzer-module-1pcs?variant=39879251656815
8 Pantalla LCD I2C (16×2) https://osoyoo.store/products/i2c-lcd1602-display?variant=39875437101167
9 Destornillador Philips https://osoyoo.store/products/phillips-screwdriver?variant=31930635780207https://osoyoo.store/products/single-channel-relay-module-for-arduino-raspberry-pi?variant=31955954401391
10 Protoboard sin soldadura para prototipos https://osoyoo.store/products/solderless-prototype-breadboard-1pcs?variant=39879255457903
11 Potenciómetro (resistencia ajustable de 10K) https://osoyoo.store/products/potentionmeter-10k-adjustable-resistor-3pcs?variant=39879281016943
12 40Pin M to M Jumper Wires https://osoyoo.store/products/40pin-m-to-m-jumper-wires?variant=39879256539247
13 20Pin M to F Jumper wires 15cm https://osoyoo.store/products/20pin-15cm-female-to-female-cable?variant=31930663305327