Distributeurs en ligne autorisés:

Acheter aux États-Unis Acheter au Royaume-Uni Acheter en Allemagne Acheter en Italie Acheter en France Acheter en Espagne ここでご購入を!

Nous avons appris les concepts d’entrée analogique ADC et de sortie analogique PWM dans la leçon 3. Cette fois, nous utilisons de nouveaux dispositifs d’entrée analogique et de sortie PWM.

Dans cette leçon, nous allons vous montrer comment lire un signal analogique à partir d’un potentiomètre (résistance variable) via une broche ADC Pico (GP28). Nous allons également connecter un moteur Servo à GP16 qui peut générer un signal PWM. Le servo fera tourner son bras lorsque vous ferez tourner le potentiomètre.

  1. Carte Raspberry Pi Pico et câble microUSB
  2. Un ordinateur pour exécuter l’IDE Python Thonny
  3. Une plaque d’essai x 1
  4. Potentiomètre x 1
  5. Moteur Servo x 1

Sur le schéma de circuit ci-dessus, vous pouvez voir que :
Le fil rouge du servo est connecté à la broche Vbus de Pico (5V)
Le fil brun du servo est connecté à la broche GND de Pico
Le fil jaune du servo est connecté à la broche PWM de Pico (GP16)
La broche GND du potentiomètre est connectée à la broche GND de Pico
La broche VCC du potentiomètre est connectée à la broche 3,3V de Pico
La broche centrale du potentiomètre est connectée à la broche ADC de Pico (GP28)

Vous pouvez télécharger le code Python de la leçon 5 à partir de https://osoyoo.com/driver/pico/lesson5/pico-lesson5.py.

Vous pouvez utiliser Thonny pour ouvrir pico-lesson5.py et le charger ultérieurement dans Pico.

Voici le code complet avec des commentaires:

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)

Étape 1 : Connectez la carte Pico à l’un des ports USB de votre PC.

Étape 2 : Si vous n’avez pas installé le logiciel Thonny ou que vous ne savez pas comment utiliser l’IDE Thonny, veuillez lire la leçon 1.

Étape 3 : Ouvrez maintenant l’IDE Python Thonny, cliquez sur Exécuter pour sélectionner MicroPython pour Raspberry Pi Pico comme interpréteur.

Veuillez également sélectionner le port COM auquel votre carte Pico est connectée.

Ensuite, cliquez sur OK pour enregistrer les paramètres.

Étape 4 : Maintenant, copiez le code Python dans la fenêtre Thonny comme suit.

Étape 5 : Cliquez sur le petit bouton ►, et la boîte de dialogue d’enregistrement apparaîtra comme indiqué dans la photo suivante.Sélectionnez Raspberry Pi Pico comme destination.

Étape 6 : Nommez le fichier pico-lesson5.py, puis cliquez sur OK.

Étape 7 : Cliquez à nouveau sur le petit bouton ► pour exécuter le code Python.

Maintenant, vous pouvez faire tourner le potentiomètre et vous verrez le bras du servo tourner en conséquence.

Après que l’opération est terminée, appuyez sur Ctrl+C pour mettre fin à la commande.

EN SAVOIR PLUS SUR LES PIÈCES SKU:2021005900

Non. Photo Nom du produit Lien
1 Carte Pico Raspberry Pi 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 Servomoteur https://osoyoo.store/products/micro-servo-sg90-blue-for-arduino-v2-0-robot-carmodel-lacc200610?variant=31648847560815
3 Module capteur infrarouge https://osoyoo.store/products/hc-sr501-pir-motion-sensor-for-arduino?variant=31957812838511
4 Module et carte RFID https://osoyoo.store/products/osoyoo-rfid-module?variant=31970646130799
5 Boutons-poussoirs et chapeaux https://osoyoo.store/products/push-button-and-hats-5pcs?variant=39879253131375
6 LED (6 x blanc, 6 x rouge, 6 x jaune, 6 x vert) https://osoyoo.store/products/led-packs-for-arduino?variant=31957816442991
7 Module Buzzer Piézo https://osoyoo.store/products/piezo-buzzer-module-1pcs?variant=39879251656815
8 Écran LCD I2C (16×2) https://osoyoo.store/products/i2c-lcd1602-display?variant=39875437101167
9 Tournevis cruciforme https://osoyoo.store/products/phillips-screwdriver?variant=31930635780207https://osoyoo.store/products/single-channel-relay-module-for-arduino-raspberry-pi?variant=31955954401391
10 Plaque d’essai sans soudure pour prototypage readboard-1pcs?variant=39879255457903
11 Potentionmètre (résistance réglable de 10K) https://osoyoo.store/products/potentionmeter-10k-adjustable-resistor-3pcs?variant=39879281016943
12 40Pin M to M Jumper Wires (fils de cavalier) https://osoyoo.store/products/40pin-m-to-m-jumper-wires?variant=39879256539247
13 20Pin M to F Fils de pontage 15cm https://osoyoo.store/products/20pin-15cm-female-to-female-cable?variant=31930663305327