Lösungen Übungsaufgabe 6

1.1. Stecke die Schaltung aus Abbildung 1 auf deinem Steckbrett nach.

Abbildung 1 So sieht es aus wenn man nach dem Schaltplan gesteckt hat

1.2. Welchen Wert gibt digitalRead(D1) zurück, wenn

void setup(){
 pinMode(D1, INPUT);
 Serial.begin(115200);
}

void loop(){
int status = digitalRead(D1);
Serial.println(status);
}

a. der Taster nicht gedrückt wird.

Es wird der Wert 0 zurückgegeben (LOW)

b. der Taster gedrückt wird.

Es wird der Wert 1 zurückgegeben (HIGH)

Video 1 Funktion für Aufgabe 1.2

1.3. Implementiere die folgende Anwendung: Beim Systemstart ist die LED aus. Wenn der Taster getätigt wird, dann geht die LED an, wenn sie vorher aus war und die LED aus, wenn sie vorher an war.

const int led = D2;
bool rueckgabeLed;

void setup(){
 pinMode(D1, INPUT);
 pinMode(led, OUTPUT);
 rueckgabeLed = true;
 digitalWrite(led, rueckgabeLed);
}

void loop(){
 if(digitalRead(D1){
  if (rueckgabeLed){
   digitalWrite(led, LOW);
   rueckgabeLed = false;
  }else{
    digitalWrite(led, HIGH);
    rueckgabeLed =false;
   }
  }
 if(digitalRead(D1)){
  delay(300);
 }
}
Video 2 Funktion für Aufgabe 1.3

1.4. Ergänze die vorige Anwendung um folgende Funktion: Falls die LED an ist, dann schaltet sich diese nach 15s selbst wieder ab.

const int led = D2;
bool rueckgabeLed;

void setup(){
 pinMode(D1, INPUT);
 pinMode(led, OUTPUT);
 rueckgabeLed = true;
 digitalWrite(led, rueckgabeLed);
 Serial.begin(115200);
}

void loop(){
 if(digitalRead(D1){
  if (rueckgabeLed){
   digitalWrite(led, LOW);
   rueckgabeLed = false;
   delay(15000);
   digitalWrite(led, HIGH);
  }else{
    digitalWrite(led, HIGH);
    rueckgabeLed = true;
   }
  }
 if(digitalRead(D1)){
  delay(300);
 }
}
Video 2 Funktion für Aufgabe 1.4

1.5. Ergänze die vorige Anwendung um folgende Funktion: Die LED geht nicht sofort aus, sondern nimmt gleichmäßig an Helligkeit ab, bis sie komplett aus ist.

1.6. Ergänze die vorige Anwendung um folgende Funktion: Das Abklingen der LED muss innerhalb der angegeben 15s (+/- 100ms) erreicht werden. Bestätige die Korrektheit deines Programms mit Hilfe des Seriellen Monitors

1.7. Bestätige mit Hilfe des Seriellen Monitors, dass der Bewegungssensor funktioniert. Informationen zum verwendeten Sensor findest du hier: https://create.arduino.cc/projecthub/electropeak/pir-motion-sensor-how-touse-pirs-w-arduino-raspberry-pi-18d7fa https://www.mpja.com/download/31227sc.pdf Sobald der Bewegungssensor eine Bewegung detektiert hat, leuchtet die LED auf. Nach 10s klingt die LED langsam wieder ab (siehe Aufgabe 5). Tipp: Nutze eine leere Klopapierrolle oder ein Buch, um zu verhindern, dass du den Sensor versehentlich auslöst.

1.8. Das folgende Programm hilft dir die Adressierung der WS2812B LEDs auf dem LED-Streifen zu verstehen: https://cs.uol.de/s/MXrBiAfN2y74HN6 Lade den Quellcode herunter, kompiliere diesen und übertrage die Binary auf den Mikrocontroller. Deine LED sollte nun zum Teil leuchten. Vervollständige die fehlenden Kommentare im Quellcode.

1.9. Implementiere die folgende Anwendung. Beim Start leuchtet der gesamte LED-Streifen.

1.10. Implementiere die folgende Anwendung. Mit Hilfe des LED-Streifens wird eine Lichtanimationen dargestellt.

1.11. Implementiere die folgende Anwendung: Mit Hilfe des Tasters kann zwischen mindestens zwei verschiedenen Lichtanimationen gewechselt werden.

1.12. Entwickle mit Hilfe des Bewegungssensors und des LED-Streifens ein einfaches Nachtlicht. Der Taster ermöglicht es die Helligkeit der LEDs in drei Stufen zu dimmen.

Bonus (10 Pkt)

Das Nachtlicht aus Aufgabe 1.12 funktioniert nur zwischen 18:00 Uhr und 08:00 Uhr. Eine Zeitschaltuhr, zusätzliche Sensoren oder ein manuelles Eingreifen sind nicht erlaubt

Ein Gedanke zu „Lösungen Übungsaufgabe 6

  1. Moin,

    Danke für deinen Abgabe. Ich bewerte die unten aufgeführten Punkte.

    1.1 3/3

    1.2 2/2

    1.3 4/4

    1.4 5/5

    1.5 0/5

    1.6 0/6

    1.7 0/3

    1.8 0/2

    1.9 0/4

    1.10 0/4

    1.11 0/6

    1.12 0/6

    Bonus: 0/20

    2.0 Tagebuch 10/10

    Erreicht: 40%

    Bitte binde nächstes Mal die Programme mit GitHub Gist ein. Danke! 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert