Arduino - Capteur de son - Moteur servo
Dans ce tutoriel, nous allons explorer comment utiliser le capteur sonore pour contrôler un moteur servo. Plus précisément, nous nous pencherons sur deux applications passionnantes :
- Commutateur sonore : Lorsqu'un son est détecté (par exemple un coup), l'Arduino fait tourner le moteur servo à 90 degrés s'il est à 0 degré, et à 0 degré s'il est à 90 degrés.
- Relais activé par le son : Lors de la détection d'un son, l'Arduino fait tourner le moteur servo à 90 degrés pendant une période de temps spécifique, puis le ramène à 0 degré.
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du moteur servo et du capteur de son
Si vous ne connaissez pas le moteur servo et le capteur de son (brochage, fonctionnement, programmation...), renseignez-vous sur ces derniers dans les tutoriels suivants :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Code Arduino - Interrupteur sonore qui bascule l'angle du moteur servo
Le code ci-dessous bascule l'angle du moteur servo entre 0 et 90 degrés à chaque fois que le son est détecté.
Étapes rapides
- Connectez l'Arduino au PC via le câble USB
- Ouvrez l'IDE Arduino, sélectionnez la carte et le port appropriés
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur l'Arduino
- Frappez des mains devant le capteur de son
- Observez le changement du moteur servo
Code Arduino - Servomoteur activé par le son pour une durée déterminée
Le code ci-dessous fait tourner le moteur servo à 90 degrés pendant une période lorsque le son est détecté. Après cette période, le moteur servo est ramené à 0 degré.
Veuillez noter que le code mentionné ci-dessus utilise la fonction delay() pour des raisons de simplicité. Cependant, si vous ajoutez du code supplémentaire, il se peut qu'il soit bloqué pendant le temps de retard. Pour remédier à cela, le code suivant met en œuvre une approche non bloquante en utilisant la fonction millis() au lieu de delay pour éviter le blocage.