Arduino - Türsensor - Servomotor
Wir werden lernen:
- Wenn die Tür offen ist, drehen Sie den Servomotor auf 90 Grad
- Wenn die Tür erneut offen ist, drehen Sie den Servomotor zurück auf 0 Grad
Dieser Prozess wird wiederholt.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.
Über Servomotor und Türsensor
Wenn Sie nichts über Servomotoren und Türsensoren wissen (Pinbelegung, Funktionsweise, Programmierung ...), informieren Sie sich in den folgenden Tutorials darüber:
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino-Code - Türsensor steuert Servomotor
/*
* Dieser Arduino Code wurde von newbiely.de entwickelt
* Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt.
* Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte:
* https://newbiely.de/tutorials/arduino/arduino-door-sensor-servo-motor
*/
#include <Servo.h>
// constants won't change
const int DOOR_SENSOR_PIN = 7; // Arduino pin connected to door 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 lastDoorState; // the previous state of door sensor
int currentDoorState; // the current state of door sensor
void setup() {
Serial.begin(9600); // initialize serial
pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(angle);
currentDoorState = digitalRead(DOOR_SENSOR_PIN);
}
void loop() {
lastDoorState = currentDoorState; // save the last state
currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state
if(lastDoorState == LOW && currentDoorState == HIGH) {
Serial.println("The door-opening event is detected");
// change angle of servo motor
if(angle == 0)
angle = 90;
else
if(angle == 90)
angle = 0;
// control servo motor arccoding to the angle
servo.write(angle);
}
}
Schnelle Schritte
- Verbinde Arduino über ein USB-Kabel mit dem PC
- Öffne die Arduino IDE, wähle das richtige Board und den passenden Port
- Kopiere den obigen Code und öffne ihn mit der Arduino IDE
- Klicke in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf Arduino hochzuladen
- Bewege den Magneten nahe an den Reed-Schalter und dann weit vom Reed-Schalter entfernt. Wiederhole dies mehrmals
- Beobachte die Bewegung des Servomotors
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.