Ligne 7 : |
Ligne 7 : |
| | | |
| == Le buzzer ne s'arrête vraiment pas == | | == Le buzzer ne s'arrête vraiment pas == |
− | Q: Lorsque je tape la commande '''pibrella.buzzer.stop()''', le son a changé mais il ne s'arrête pas. | + | {{bloc-etroit|text=Q: Lorsque je tape la commande '''pibrella.buzzer.stop()''', le son a changé mais il ne s'arrête pas. |
| | | |
| R: Le son a changé parce que le système a modifié la fréquence PWM pour arrêter le buzzer. Il peu rester un son résiduel pouvant être gênant (probablement causé par un manque de précision dans le signal PWM?). | | R: Le son a changé parce que le système a modifié la fréquence PWM pour arrêter le buzzer. Il peu rester un son résiduel pouvant être gênant (probablement causé par un manque de précision dans le signal PWM?). |
| | | |
− | Nous avons réussit à contourner le problème en assignant une fréquence presque nulle à l'aide de la commande suivante: | + | Nous avons réussit à contourner le problème en assignant une fréquence presque nulle à l'aide de la commande suivante:}} |
| | | |
| pibrella.buzzer.buzz( 0.0001 ) | | pibrella.buzzer.buzz( 0.0001 ) |
| | | |
| == Connaître la broche et son état == | | == Connaître la broche et son état == |
− | Q: Dans les exemples de | + | Q: Dans les exemples [[PiBrella-D%C3%A9buter|des premiers pas]], les système événementiel est utilisé pour détecter la modification d'une entrée. Est-il possible d'utiliser une seule fonction d'événement et de savoir quelle broche est pressée. |
| | | |
| + | R: Oui, c'est tout à fait possible. Voyez le code suivant: |
| + | |
| + | Vous pouvez créer un script Python pour le tester assez facilement (voir ci-dessous). N'oubliez pas de le démarrer avec sudo. |
| + | |
| + | <nowiki>#!/usr/bin/python |
| + | #-*- encoding: utf8 -*- |
| + | |
| + | # Pibrella - comment lire l'état d'une broche dans un événement "changed" ou "pressed" |
| + | # |
| + | # Voir notre tutoriel Pibrella sur |
| + | # http://wiki.mchobby.be/index.php?title=PiBrella |
| + | # |
| + | # Par Meurisse D. pour MCHobby.be - vente de kits et composants |
| + | # Code sous licence CC-BY-SA |
| + | # |
| + | import pibrella, signal, time |
| + | |
| + | def changement( pin ): |
| + | print( "broche %i" % pin.pin ) |
| + | print( " etat %i" % pin.is_high() ) |
| + | |
| + | pibrella.input.a.changed( changement ) |
| + | pibrella.input.b.changed( changement ) |
| + | pibrella.input.c.changed( changement ) |
| + | pibrella.input.d.changed( changement ) |
| + | |
| + | if __name__ == '__main__': |
| + | print( "Voila, vous avez 20 sec pour faire vos tests" ) |
| + | signal.pause # laisser le système d'événement faire son boulot |
| + | time.sleep( 20 ) # mettre le programme en pause pour qu'il ne se termine pas immédiatement |
| + | print( "Le programme est terminé" ) |
| + | </nowiki> |
| + | |
| + | Il ne vous reste plus qu'a démarrer le programme et ponter les entrées A,B,C,D pour les tester |
| + | |
| + | Ce qui produit le résultat suivant: |
| + | <nowiki>broche 9 |
| + | etat 1 |
| + | broche 9 |
| + | etat 0 |
| + | broche 7 |
| + | etat 1 |
| + | broche 8 |
| + | etat 1 |
| + | broche 7 |
| + | etat 0 |
| + | broche 8 |
| + | etat 0</nowiki> |
| + | |
| + | La correspondance des entrées et n° de broche est décrit dans la section [[PiBrella-Utiliser|exploiter carte]] |
| + | |
| + | == x == |
| + | |
| + | == y == |
| + | |
| + | == z == |
| {{PiBrella-TRAILER}} | | {{PiBrella-TRAILER}} |