5.4.10 Projekt 5.2 Fenster schließen
1. Beschreibung
Wir verwenden ein Servo und einen Regensensor, um ein Gerät zu bauen, das Fenster bei Regen automatisch schließt.
2. Komponentenkenntnisse
Regensensor: Dies ist ein analoges Eingangsmodul; je größer die mit Wasser bedeckte Fläche auf der Detektionsfläche, desto größer der zurückgegebene Wert (Bereich 0~4096).
3. Testcode
#include <ESP32Servo.h>
#define servoPin 5
#define waterPin 34
Servo myservo;
void setup() {
Serial.begin(9600);
pinMode(waterPin, INPUT);
// Allow allocation of all timers
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
myservo.setPeriodHertz(50); // standard 50 hz servo
myservo.attach(servoPin, 1000, 2000); // attaches the servo on pin 18 to the servo object
// using default min/max of 1000us and 2000us
// different servos may require different min/max settings
// for an accurate 0 to 180 sweep
delay(200);
}
void loop() {
int water_val = analogRead(waterPin);
Serial.println(water_val);
if(water_val > 1500) {
myservo.write(0);
delay(200);
}
else {
myservo.write(176);
delay(200);
}
}
4. Testergebnis
Zunächst öffnet sich das Fenster automatisch, und wenn Sie den Regensensor mit Ihrer Hand berühren (die Wasser auf der Haut hat), schließt sich das Fenster.