Arduino - Bewegingssensor - Servo Motor
We leren:
- Als er beweging wordt gedetecteerd, draait de servo motor naar 90 graden
- Als er geen beweging wordt gedetecteerd, draait de servo motor terug naar 0 graden
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.
Over Servo Motor en Bewegingssensor
Als u nog niet bekend bent met de servo motor en bewegingssensor (pinout, werking, programmeren, etc.), leer er meer over in de volgende tutorials:
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
Begininstelling
| Time Delay Adjuster | Draai deze helemaal tegen de klok in. |
| Detection Range Adjuster | Draai deze helemaal met de klok mee. |
| Repeat Trigger Selector | Plaats de jumper zoals op de afbeelding getoond. |

Arduino Code - Bewegingssensor bestuurt Servo Motor
/*
* Deze Arduino code is ontwikkeld door newbiely.nl
* Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld.
* Voor volledige instructies en schema's, bezoek:
* https://newbiely.nl/tutorials/arduino/arduino-motion-sensor-servo-motor
*/
#include <Servo.h>
// constants won't change
const int MOTION_SENSOR_PIN = 7; // Arduino pin connected to motion sensor's pin
const int SERVO_PIN = 9; // Arduino pin connected to servo motor's pin
Servo servo; // create servo object to control a servo
// variables will change:
int angle = 0; // the current angle of servo motor
int lastMotionState; // the previous state of motion sensor
int currentMotionState; // the current state of motion sensor
void setup() {
Serial.begin(9600); // initialize serial
pinMode(MOTION_SENSOR_PIN, INPUT); // set arduino pin to input mode
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(angle);
currentMotionState = digitalRead(MOTION_SENSOR_PIN);
}
void loop() {
lastMotionState = currentMotionState; // save the last state
currentMotionState = digitalRead(MOTION_SENSOR_PIN); // read new state
if (currentMotionState == LOW && lastMotionState == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Motion detected!");
servo.write(90);
}
else
if (currentMotionState == HIGH && lastMotionState == LOW) { // pin state change: HIGH -> LOW
Serial.println("Motion stopped!");
servo.write(0);
}
}
Snelle Stappen
- Verbind Arduino met de pc via USB-kabel
- Open de Arduino IDE, selecteer het juiste board en de juiste poort
- Kopieer de bovenstaande code en open deze in de Arduino IDE
- Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden
- Beweeg uw hand voor de sensor
- Zie de servo motor veranderen
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap het project succesvol uit te voeren.