Sensore di movimento HC-SR501
Bewegungen erkennen und ein Warnsignal auslösen
Scegli il microcontrollore
Pin, schema elettrico e sketch nei passaggi di lavoro cambiano in base alla tua selezione. La selezione rimane salvata.
Den Bewegungsmelder kennenlernen
Den Jumper richtig setzen
Verkabeln und programmieren
Assegnazione dei pin Arduino UNO
Beim Arduino UNO schreibst du die Pin-Nummer direkt in den Sketch, also 5 und 7 ohne Zusatz.
// Das Wort "Piezo" steht jetzt für den Wert 5.
int Piezo = 5;
// Das Wort "Bewegungsmelder" steht jetzt für den Wert 7.
int Bewegungsmelder = 7;
// Das Wort "Bewegungsstatus" steht jetzt zunächst für den Wert 0.
// Später wird unter dieser Variable gespeichert, ob eine Bewegung erkannt wird oder nicht.
int Bewegungsstatus = 0;
// Hier beginnt das Setup.
void setup()
{
// Der Pin mit dem Lautsprecher (Pin 5) ist jetzt ein Ausgang.
pinMode(Piezo, OUTPUT);
// Der Pin mit dem Bewegungsmelder (Pin 7) ist jetzt ein Eingang.
pinMode(Bewegungsmelder, INPUT);
}
// Der loop-Teil beginnt
void loop()
{
// Hier wird Pin 7 ausgelesen. Das Ergebnis wird in der Variablen "Bewegungsstatus"
// mit dem Wert "HIGH" für 5 Volt oder "LOW" für 0 Volt gespeichert.
Bewegungsstatus = digitalRead(Bewegungsmelder);
// Wenn eine Bewegung erkannt wird (das Signal ist HIGH), soll der Lautsprecher piepsen.
if (Bewegungsstatus == HIGH)
{
digitalWrite(Piezo, HIGH);
delay(5000); // ... und zwar für 5 Sekunden.
digitalWrite(Piezo, LOW); // ... danach wird er ausgeschaltet.
}
// ansonsten, wenn das erkannte Signal LOW ist ...
else
{
// ... soll der Lautsprecher aus sein.
digitalWrite(Piezo, LOW);
}
}
// Mit dieser letzten Klammer wird der loop-Teil geschlossen.Download: programmcode-arduino-uno.ino
Scheda nell'IDE ArduinoArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
Assegnazione dei pin Wemos D1 Mini
Den Pin-Nummern muss das D vorangestellt werden. Du schreibst also D6 und D7 in den Sketch, nicht 6 und 7.
// Das Wort "Piezo" steht jetzt für den Wert D3.
int Piezo = D3;
// Das Wort "Bewegungsmelder" steht jetzt für den Wert D1.
int Bewegungsmelder = D1;
// Das Wort "Bewegungsstatus" steht jetzt zunächst für den Wert 0.
// Später wird unter dieser Variable gespeichert, ob eine Bewegung erkannt wird oder nicht.
int Bewegungsstatus = 0;
// Hier beginnt das Setup.
void setup()
{
// Der Pin mit dem Lautsprecher (Pin D3) ist jetzt ein Ausgang.
pinMode(Piezo, OUTPUT);
// Der Pin mit dem Bewegungsmelder (Pin D1) ist jetzt ein Eingang.
pinMode(Bewegungsmelder, INPUT);
}
// Der loop-Teil beginnt
void loop()
{
// Hier wird Pin D1 ausgelesen. Das Ergebnis wird in der Variablen "Bewegungsstatus"
// mit dem Wert "HIGH" für 5 Volt oder "LOW" für 0 Volt gespeichert.
Bewegungsstatus = digitalRead(Bewegungsmelder);
// Wenn eine Bewegung erkannt wird (das Signal ist HIGH), soll der Lautsprecher piepsen.
if (Bewegungsstatus == HIGH)
{
digitalWrite(Piezo, HIGH);
delay(5000); // ... und zwar für 5 Sekunden.
digitalWrite(Piezo, LOW); // ... danach wird er ausgeschaltet.
}
// ansonsten, wenn das erkannte Signal LOW ist ...
else
{
// ... soll der Lautsprecher aus sein.
digitalWrite(Piezo, LOW);
}
}
// Mit dieser letzten Klammer wird der loop-Teil geschlossen.Download: programmcode-wemos-d1-mini.ino
Scheda nell'IDE ArduinoLOLIN(WEMOS) D1 R2 & mini
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Assegnazione dei pin ESP32-Wroom
Beim ESP32 schreibst du die GPIO-Nummer direkt in den Sketch, also 26 und 27 ohne D davor.
// Das Wort "Piezo" steht jetzt für den Wert 22.
int Piezo = 22;
// Das Wort "Bewegungsmelder" steht jetzt für den Wert 23.
int Bewegungsmelder = 23;
// Das Wort "Bewegungsstatus" steht jetzt zunächst für den Wert 0.
// Später wird unter dieser Variable gespeichert, ob eine Bewegung erkannt wird oder nicht.
int Bewegungsstatus = 0;
// Hier beginnt das Setup.
void setup()
{
// Der Pin mit dem Lautsprecher (Pin 22) ist jetzt ein Ausgang.
pinMode(Piezo, OUTPUT);
// Der Pin mit dem Bewegungsmelder (Pin 23) ist jetzt ein Eingang.
// INPUT_PULLDOWN: der interne Widerstand wird auf LOW gezogen
pinMode(Bewegungsmelder, INPUT_PULLDOWN);
}
// Der loop-Teil beginnt
void loop()
{
// Hier wird Pin 23 ausgelesen. Das Ergebnis wird in der Variablen "Bewegungsstatus"
// mit dem Wert "HIGH" für 5 Volt oder "LOW" für 0 Volt gespeichert.
Bewegungsstatus = digitalRead(Bewegungsmelder);
// Wenn eine Bewegung erkannt wird (das Signal ist HIGH), soll der Lautsprecher piepsen.
if (Bewegungsstatus == HIGH)
{
digitalWrite(Piezo, HIGH);
delay(5000); // ... und zwar für 5 Sekunden.
digitalWrite(Piezo, LOW); // ... danach wird er ausgeschaltet.
}
// ansonsten, wenn das erkannte Signal LOW ist ...
else
{
// ... soll der Lautsprecher aus sein.
digitalWrite(Piezo, LOW);
}
}
// Mit dieser letzten Klammer wird der loop-Teil geschlossen.Download: programmcode-esp32-wroom.ino
Scheda nell'IDE ArduinoESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Assegnazione dei pin NodeMCU
Auch beim NodeMCU steht vor der Pin-Nummer ein D. D1 entspricht GPIO 5, D2 entspricht GPIO 4.
// Das Wort "Piezo" steht jetzt für den Wert D1.
int Piezo = D1;
// Das Wort "Bewegungsmelder" steht jetzt für den Wert D2.
int Bewegungsmelder = D2;
// Das Wort "Bewegungsstatus" steht jetzt zunächst für den Wert 0.
// Später wird unter dieser Variable gespeichert, ob eine Bewegung erkannt wird oder nicht.
int Bewegungsstatus = 0;
// Hier beginnt das Setup.
void setup()
{
// Der Pin mit dem Lautsprecher (Pin D1) ist jetzt ein Ausgang.
pinMode(Piezo, OUTPUT);
// Der Pin mit dem Bewegungsmelder (Pin D2) ist jetzt ein Eingang.
pinMode(Bewegungsmelder, INPUT);
}
// Der loop-Teil beginnt
void loop()
{
// Hier wird Pin D2 ausgelesen. Das Ergebnis wird in der Variablen "Bewegungsstatus"
// mit dem Wert "HIGH" für 5 Volt oder "LOW" für 0 Volt gespeichert.
Bewegungsstatus = digitalRead(Bewegungsmelder);
// Wenn eine Bewegung erkannt wird (das Signal ist HIGH), soll der Lautsprecher piepsen.
if (Bewegungsstatus == HIGH)
{
digitalWrite(Piezo, HIGH);
delay(5000); // ... und zwar für 5 Sekunden.
digitalWrite(Piezo, LOW); // ... danach wird er ausgeschaltet.
}
// ansonsten, wenn das erkannte Signal LOW ist ...
else
{
// ... soll der Lautsprecher aus sein.
digitalWrite(Piezo, LOW);
}
}
// Mit dieser letzten Klammer wird der loop-Teil geschlossen.Download: programmcode-nodemcu.ino
Scheda nell'IDE ArduinoNodeMCU 1.0 (ESP-12E Module)
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.