Hardware-Info
Die Bestellung erfolgt durch Klick auf den Bestell-Button:
Dann öffnet sich Ihr e-mail-Programm mit den Bestell-Daten.
Rücktritt vom Kauf innerhalb von 14 Tagen
Teil 3 Ultraschall
ACHTUNG! Sie haben nur Zugang zu TINKERCAD,
wenn Sie angemeldet sind! So melden Sie sich an:
int PIR=3;
int led=13;
void setup()
{ pinMode(PIR, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop()
{ if(digitalRead(5) == HIGH)
{
digitalWrite(13, HIGH);
Serial.println("motion detected");
}
else {
digitalWrite(13, LOW); // setng led to low Serial.println("scanning");
}
}
Abfrage der Daten auf einem Mikrocontroller
Zum Anschluss können Sie jeden beliebigen Digital-Pin nutzen, in unserem Beispiel verwenden wir Pin 3
Wir verbinden VCC mit 5V, GND mit GND und S mit D3 am ATmega328p.
Der Beispiel-Code sieht so aus:
ACHTUNG!
Zur Schaltung geht es nur, wenn Sie bei TINKERCAD angemeldet sind!
Hier melden Sie sich an:
#define PIN_LED 2
#define PIN_SR505 10
#define BUFFER_TIME 1000
unsigned long lastMeasure = 0;
void setup()
{
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_SR505, INPUT);
Serial.begin(9600);
}
void loop()
{
if ((millis() - lastMeasure) > BUFFER_TIME) {
lastMeasure += BUFFER_TIME;
if (digitalRead(PIN_SR505) == HIGH) {
Serial.println("Motion detected!");
digitalWrite(PIN_LED, HIGH);
} else {
Serial.println("No motion.");
digitalWrite(PIN_LED, LOW);
}
}
}
Die PDF-Dateien zum Ausdrucken als Schüler-Arbeitsblätter
sind auf Technik-online verfügbar.
Programm-Code: „sketch“
int LED=5; //Das Wort „LED“ steht jetzt für den Wert 5.
int bewegung=7; //Das Wort „bewegung“ steht jetzt für den Wert 7.
int bewegungsstatus=0; //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.
void setup() //Hier beginnt das Setup.
{
pinMode(LED, OUTPUT); //Der Pin mit der LED (Pin 5) ist jetzt ein Ausgang.
pinMode(bewegung, INPUT); //Der Pin mit dem Bewegungsmelder (Pin 7) ist jetzt ein Eingang.
}
void loop() //Der Loop-Teil beginnt
{ //Mit dieser Klammer wird der Loop-Teil geöffnet.
bewegungsstatus=digitalRead(bewegung); /Hier wird der Pin7 ausgelesen. Das Ergebnis wird unter der Variablen „bewegungsstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert.
if (bewegungsstatus == HIGH) //Verarbeitung: Wenn eine Bewegung detektiert wird (Das Spannungssignal ist hoch)
{ //Programmabschnitt des IF-Befehls öffnen.
digitalWrite(LED, HIGH); //LED leuchtet
delay(5000); //...und zwar für für 5 Sekunden.
digitalWrite(LED, LOW); //...danach soll die LED nicht mehr leuchten
} //Programmabschnitt des IF-Befehls schließen.
else //ansonsten...
{ //Programmabschnitt des else-Befehls öffnen.
digitalWrite(LED, LOW); // LED aus
} //Programmabschnitt des else-Befehls schließen.
} //Mit dieser letzten Klammer wird der Loop-Teil geschlossen.
Ersetze die LED durch einen Motor!
Diese Website verwendet Cookies.
Bei Zustimmung klicken Sie auf
OK
Bitte lesen Sie unsere Datenschutzerklärung für Details.
Verweigern
Setzt ein technisches Cookie, das aufzeichnet, dass Sie die Zustimmung verweigern. Es wird nicht nochmals nachgefragt werden.
Entfernen
Entfernt das Zustimmungscookie aus Ihrem Browser.