| Ligne 242 : |
Ligne 242 : |
| | * '''Lignes 7 et 8''' : paramètres de la fonction réciproque permettant de transformer la valeur du convertisseur analogique (valeur ADC) en une distance exprimée en centimètres. | | * '''Lignes 7 et 8''' : paramètres de la fonction réciproque permettant de transformer la valeur du convertisseur analogique (valeur ADC) en une distance exprimée en centimètres. |
| | * '''Ligne 13''' : désactivation du mode d'économie d'énergie du régulateur. Cela permet de réduire le bruit sur l'étage d'alimentation (bruit que l'on retrouverait sur l'entrée analogique). | | * '''Ligne 13''' : désactivation du mode d'économie d'énergie du régulateur. Cela permet de réduire le bruit sur l'étage d'alimentation (bruit que l'on retrouverait sur l'entrée analogique). |
| − | * '''lignes 15 à 21''' : | + | * '''lignes 15 à 21''' : mise en place de la détection du bouton sur GP16 (voir le projet [[P2E-MELODIC-BELL|sonnette]]). |
| | + | * '''Lignes 23 à 25''' : définition de l'objet {{fname|buzzer}} sur GP13 et utilisé pour produire du son. La fréquence est fixée à 500 hertz et le cycle utile du signal PWM à 0%. Le buzzer est donc silencieux. |
| | + | * '''Ligne 27''' : définition de l'objet {{fname|a1}}, entrée analogique (classe {{fname|ADC}}) associée à la broche GP27. |
| | + | * '''Lignes 28 à 48''' : boucle infinie exécutant les tâche suivantes: |
| | + | *# activation/désactivation du buzzer lorsque le bouton est pressé. |
| | + | *# lecture analogique de la photorésistance sur 10 bits (au lieu de 16 bits afin de réduire l'impact du bruit). |
| | + | *# calcul de la distance en cm. |
| | + | *# conversion de la distance en fréquence |
| | + | *# modification de la fréquence du buzzer |
| | + | |
| | + | * '''Ligne 29''' : exécution des lignes 30 à 36 si le bouton a été pressé. |
| | + | * '''Lignes 30 et 31''' : si le buzzer ne produit pas de son alors le cycle utile du signal PWM est à zéro. Dans pareil cas, le cycle utile du buzzer est configuré sur 30% et il commence à produire du son à la fréquence PWM actuelle configurée. Remarque: l'opération '//' permet de réaliser une division entière (sans partie décimale). |
| | + | * '''Ligne 32 et 33''' : le buzzer produisait du son, il faut donc arrêter le générateur PWM en fixant le cycle utile sur 0. |
| | + | * '''Ligne 34 à 36''' : attendre 300ms pour éviter tous les problèmes de rebonds et laisser le temps à l'utilisateur de retirer le doigt du bouton. Ensuite le {{fname|counter}} est replacé à zéro et l'instruction {{fname|continue}} redémarre un nouveau tour de la boucle {{fname|while}}. |
| | | | |
| | == Ressources == | | == Ressources == |