Authorized Online Retailers:

Buy from USA Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

Abbiamo imparato il concetto di ingresso analogico ADC e di uscita analogica PWM nella Lezione 3. Questa volta, usiamo un nuovo dispositivo di ingresso analogico e un dispositivo di uscita PWM.

In questa lezione, vi mostreremo come leggere il segnale analogico da un potenziometro (resistenza regolabile) attraverso un pin ADC Pico (GP28). Collegheremo anche un servomotore a GP16 che può generare un segnale PWM. Il servo ruoterà il suo braccio quando si ruota il potenziometro.

  1. Scheda Raspberry Pi Pico e cavo microUSB
  2. Un computer per eseguire Thonny Python IDE
  3. Breadboard x 1
  4. Potenziometro x 1
  5. Servomotore x 1

Nel grafico del circuito di cui sopra, si può vedere che:
Filo rosso del servo collegato al pin Vbus di Pico (5V)
Filo marrone del servo collegato a Pico GND
Filo giallo del servo collegato al pin PWM di Pico (GP16)
GND del potenziometro collegato a Pico GND
VCC del potenziometro collegato al Pico 3.3V
Pin centrale del potenziometro collegato al pin ADC del Pico (GP28)

Potete scaricare il codice python della lezione 5 da https://osoyoo.com/driver/pico/lesson5/pico-lesson5.py

Potete usare Thonny per aprire pico-lesson5.py e caricarlo su Pico in seguito.

Ecco il codice completo con i commenti:

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)

Step 1:Collegare la scheda Pico a una delle porte USB del PC
Step 2: Se non avete installato il software Thonny o non sapete come usare Thonny IDE, leggete la lezione 1

Step 3: Ora aprite l'IDE Thonny Python, cliccate su Run per selezionare MicroPython per Rapsberry Pi Pico come interprete:

Seleziona anche la porta COM a cui è collegata la tua scheda Pico:

Dopo di che, cliccate su OK per salvare l'impostazione.

Step 4: Ora copiate il codice python nella finestra di Thonny come segue:

Step 5: Fare clic sul piccolo pulsante ►, la pagina di salvataggio apparirà come la seguente foto;

selezionare Raspberry Pi Pico come destinazione.

Step 6:Nominare il file come pico-lesson5.py, poi cliccare su OK

Step 7: Clicca di nuovo sul piccolo pulsante ► per eseguire il codice Python.

Ora potete ruotare il potenziometro, vedrete che il braccio del servo ruoterà di conseguenza.

SCOPRI DI PIÙ CIRCA I COMPONENTI SKU:2021005900

No. Immagine Nome Prodotto Link
1 Scheda 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 Servo motore https://osoyoo.store/products/micro-servo-sg90-blue-for-arduino-v2-0-robot-carmodel-lacc200610?variant=31648847560815
3 Modulo Infrared Sensor https://osoyoo.store/products/hc-sr501-pir-motion-sensor-for-arduino?variant=31957812838511
4 Modulo RFID e carta https://osoyoo.store/products/osoyoo-rfid-module?variant=31970646130799
5 Pulsanti e capucci https://osoyoo.store/products/push-button-and-hats-5pcs?variant=39879253131375
6 LED(6 x Bianco, 6 x Rosso, 6 x Giallo, 6x Verde) https://osoyoo.store/products/led-packs-for-arduino?variant=31957816442991
7 Servo motore https://osoyoo.store/products/sg90-micro-servo-for-arduino-raspberry-pi-robot?variant=31957821096047
8 Piezo Buzzer Module https://osoyoo.store/products/piezo-buzzer-module-1pcs?variant=39879251656815
9 Display I2C LCD(16×2) https://osoyoo.store/products/i2c-lcd1602-display?variant=39875437101167
10 Cacciavite Philips https://osoyoo.store/products/phillips-screwdriver?variant=31930635780207https://osoyoo.store/products/single-channel-relay-module-for-arduino-raspberry-pi?variant=31955954401391
11 Breadboard per prototipi senza saldature https://osoyoo.store/products/solderless-prototype-breadboard-1pcs?variant=39879255457903
12 Ptenziomentro (10K Resistenza regolabile) https://osoyoo.store/products/potentionmeter-10k-adjustable-resistor-3pcs?variant=39879281016943
13 40Pin M to M Fili Jumper https://osoyoo.store/products/40pin-m-to-m-jumper-wires?variant=39879256539247
14 20Pin M to F Flli Jumper 15cm https://osoyoo.store/products/20pin-15cm-female-to-female-cable?variant=31930663305327