Arduino - Regensensor - Servomotor
Wir werden lernen:
- Wenn der Regen erkannt wird, drehen Sie den Servomotor auf 90 Grad.
- Wenn der Regen nicht erkannt wird, drehen Sie den Servomotor auf 0 Grad zurück.
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 Regensensor
Wenn Sie nichts über Servomotoren und Regensensoren wissen (Pinbelegung, wie sie funktionieren, wie man sie programmiert …), lernen Sie in den folgenden Tutorials mehr darüber:
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Arduino-Code – Regensensor 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-rain-sensor-servo-motor
*/
#include <Servo.h>
#define RAIN_SENSOR_PIN A0 // Arduino pin connected to rain sensor's pin
#define 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 prev_rain_state; // the previous state of rain sensor
int rain_state; // the current state of rain sensor
void setup() {
Serial.begin(9600); // initialize serial
pinMode(RAIN_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);
rain_state = digitalRead(RAIN_SENSOR_PIN);
}
void loop() {
prev_rain_state = rain_state; // save the last state
rain_state = digitalRead(RAIN_SENSOR_PIN); // read new state
if (rain_state == LOW && prev_rain_state == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Rain detected!");
servo.write(90);
}
else
if (rain_state == HIGH && prev_rain_state == LOW) { // pin state change: HIGH -> LOW
Serial.println("Rain stopped!");
servo.write(0);
}
}
Schnelle Schritte
- Verbinde Arduino über USB-Kabel mit dem PC
- Öffne die Arduino IDE und wähle das richtige Board und den richtigen Port
- Kopiere den obigen Code und öffne ihn mit der Arduino IDE
- Klicke in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino hochzuladen
- Bewege deine Hand vor dem Sensor
- Sieh die Veränderung 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.