Ligne 220 : |
Ligne 220 : |
| Raccordez le Servo moteur sur X2 comme [MicroPython-Hack-servo nous l'avons dans ce tutoriel], nous allons ensuite saisir le programme suivant pour contrôler la position du servo moteur à partir de la position du potentiomètre. | | Raccordez le Servo moteur sur X2 comme [MicroPython-Hack-servo nous l'avons dans ce tutoriel], nous allons ensuite saisir le programme suivant pour contrôler la position du servo moteur à partir de la position du potentiomètre. |
| | | |
− | <nowiki></nowiki> | + | <nowiki># Lecture analogique pour contrôler allumer une LED sur base d'un seuil. |
| + | # 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 |
| + | servo = pyb.Servo(2) # Servo moteur sur X2 |
| + | |
| + | # 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 angle entre -90° à +90° |
| + | angle = arduino_map( ivalue, 0, 4096, -90, 90 ) |
| + | |
| + | # Activer la sortie si plus grand que seuil |
| + | servo.angle( angle ) |
| + | |
| + | delay( 100 )</nowiki> |
| | | |
| Chargez sur votre PyBoard dans le fichier {{fname|main.py}}, éjectez le lecteur de la Pyboard puis appuyez sur le bouton "Reset" de votre carte. | | Chargez sur votre PyBoard dans le fichier {{fname|main.py}}, éjectez le lecteur de la Pyboard puis appuyez sur le bouton "Reset" de votre carte. |