MicroPython: lecture analogique
Petit complément dans les tutoriels MicroPython, cette fois, nous nous penchons sur la lecture de valeurs analogiques avec ce tuto issu de notre Kit Découverte MicroPython
Lecture de valeur analogique
Potentiomètre vers PWM
Le programme suivant lit la valeur sur l'entrée analogique et module la luminosité de la LED en fonction de la position du potentiomètre.
Vous pouvez le saisir en mode REPL (ce serait un peu long) ou simplement le placer dans le fichier main.py.
Tournez le potentiomètre pour modifier la luminosité de la LED.
Et bien d'autres exemples et informations sur le tutoriel.
Tutoriel
La gamme MicroPython est disponible chez MCHobby.
Source: Tutoriel sur les entrées analogiques micropython |
Source: Tutoriel sur les entrées analogiques micropython |
Lecture de valeur analogique
pot = pyb.ADC( 'X19' ) # résolution par défaut 12 bits (valeur de 0 à 4096) for i in range( 0, 10 ): print( pot.read() ) pyb.delay( 1000 )
Potentiomètre vers PWM
Le programme suivant lit la valeur sur l'entrée analogique et module la luminosité de la LED en fonction de la position du potentiomètre.
Vous pouvez le saisir en mode REPL (ce serait un peu long) ou simplement le placer dans le fichier main.py.
Tournez le potentiomètre pour modifier la luminosité de la LED.
# Lecture analogique pour controler la puissance d'une LED PWM. # ATTENTION: échantillonnage 12 Bits (valeur de 0 à 4096) from pyb import Timer, delay adc = pyb.ADC(pyb.Pin.board.X19) # Créer ADC sur la broche X19 # Creer un timer à une fréquence de 5 Hz (le timer 5) # Créer un canal (channel) PWM avec le Timer. tim = pyb.Timer( 5, freq=100) tchannel = tim.channel(1, Timer.PWM, pin=pyb.Pin.board.X1, pulse_width=0) # Minimum et Maximum de largeur d'impulsion correspondant au minimum # et maximum de luminosité max_width = 150000 min_width = 8000 # fonction qui permet de passer d'un range de valeur (in_) à une autre # (out_) en appliquant une règle de trois. def arduino_map(x, in_min, in_max, out_min, out_max): return int( (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min ) while True: # Lectures analogiques ivalue = adc.read() # Transformer une valeur analogique (0 à 4096) en largeur d'impulsion (20000 à 2000000) pulse_width = arduino_map( ivalue, 0, 4096, min_width, max_width ) # Modifier le signal PWM tchannel.pulse_width( pulse_width ) delay( 100 )
Et bien d'autres exemples et informations sur le tutoriel.
Tutoriel
- La page des tutoriels du Discovery Kit
- Retrouvez le tutoriel "super complet" sur le wiki de MCHobby
- Nos autres tutoriel MicroPython
La gamme MicroPython est disponible chez MCHobby.
Écrire un commentaire