Arduino - Capteur à ultrasons - Moteur servo
Nous apprendrons :
- Si l'objet est proche du capteur ultrasonique, faites tourner le moteur servo à 90 degrés.
- Si l'objet est éloigné du capteur ultrasonique, faites revenir le moteur servo à 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) |
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.
À propos du moteur servo et du capteur ultrasonique
Si vous ne connaissez pas le moteur servo et le capteur à ultrasons (brochage, fonctionnement, programmation...), renseignez-vous dans les tutoriels suivants :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Code Arduino - Un capteur ultrasonique contrôle un moteur servo
/*
* Ce code Arduino a été développé par newbiely.fr
* Ce code Arduino est mis à disposition du public sans aucune restriction.
* Pour des instructions complètes et des schémas de câblage, veuillez visiter:
* https://newbiely.fr/tutorials/arduino/arduino-ultrasonic-sensor-servo-motor
*/
#include <Servo.h>
// constants won't change
const int TRIG_PIN = 6; // Arduino pin connected to Ultrasonic Sensor's TRIG pin
const int ECHO_PIN = 7; // Arduino pin connected to Ultrasonic Sensor's ECHO pin
const int SERVO_PIN = 9; // Arduino pin connected to Servo Motor's pin
const int DISTANCE_THRESHOLD = 50; // centimeters
Servo servo; // create servo object to control a servo
// variables will change:
float duration_us, distance_cm;
void setup() {
Serial.begin (9600); // initialize serial port
pinMode(TRIG_PIN, OUTPUT); // set arduino pin to output mode
pinMode(ECHO_PIN, INPUT); // set arduino pin to input mode
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(0);
}
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
if(distance_cm < DISTANCE_THRESHOLD)
servo.write(90); // rotate servo motor to 90 degree
else
servo.write(0); // rotate servo motor to 0 degree
// print the value to Serial Monitor
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
delay(500);
}
Étapes rapides
- Connectez Arduino à l'ordinateur via le câble USB
- Ouvrez Arduino IDE, sélectionnez la bonne carte et le bon port
- Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
- Cliquez sur le bouton Upload de Arduino IDE pour téléverser le code sur Arduino
- Déplacez votre main devant le capteur
- Observez le changement du moteur servo
※ NOTE THAT:
Le code ci-dessus est destiné à des fins pédagogiques. Le capteur ultrasonique est très sensible au bruit. Si vous souhaitez utiliser le capteur ultrasonique en pratique, vous devriez filtrer le bruit pour le capteur ultrasonique. Voir comment filtrer le bruit pour le capteur ultrasonique