Benutzer-Werkzeuge

Webseiten-Werkzeuge


allgemein:arduino

Dies ist eine alte Version des Dokuments!


## 1. Was man auf dem Foto eindeutig erkennt

### Arduino-Pins

* Pin 2 → LED (grün) * Pin 3 → linker Taster * Pin 4 → rechter Taster * GND ist gemeinsam geführt * 5 V liegt am Breadboard an

### Tasterbeschaltung

* Jeder Taster hat einen Widerstand nach GND * Beim DrĂĽcken wird der jeweilige Pin auf HIGH (5 V) gezogen

→ **klassische Pull-Down-Schaltung**, völlig korrekt, oldschool, lehrbuchsauber 👍

👉 Wichtig: Das bedeutet:

* nicht gedrĂĽckt = LOW * gedrĂĽckt = HIGH

Dein aktueller Code wertet nur Pin 3 aus. Pin 4 existiert elektrisch, aber softwareseitig noch gar nicht.

— ## 2. Warum der vorhandene Code die Aufgabe NICHT erfüllt

Aktuell:

```cpp if (digitalRead(3) == HIGH)

LED an

else

LED aus

```

Das ist ein Taster = Momentkontakt. Sobald man loslässt → LED wieder aus.

Die Aufgabe verlangt aber:

🔹 linker Taster → einschalten 🔹 rechter Taster → ausschalten 🔹 LED merkt sich den Zustand

Also: kein `else`, sondern zwei unabhängige Entscheidungen.

—

## 3. Minimal korrekte Lösung (exakt zur Aufgabe passend)

Kein Schnickschnack, keine Entprell-Orgie, didaktisch sauber:

```cpp void setup() {

pinMode(2, OUTPUT);   // LED
pinMode(3, INPUT);    // linker Taster (EIN)
pinMode(4, INPUT);    // rechter Taster (AUS)

}

void loop() {

if (digitalRead(3) == HIGH)   // linker Taster gedrĂĽckt
{
  digitalWrite(2, HIGH);      // LED EIN
}
if (digitalRead(4) == HIGH)   // rechter Taster gedrĂĽckt
{
  digitalWrite(2, LOW);       // LED AUS
}

} ```

### Warum das korrekt ist

* Kein `else` → Zustand bleibt erhalten * Jeder Taster hat eine klare Aufgabe * Passt 1:1 zur Verdrahtung * Entspricht exakt dem Aufgabentext

— ## 4. Typischer Denkfehler (konstruktive Kritik)

Viele machen hier reflexartig:

```cpp if (Taste1) LED an; else LED aus; ```

Das ist falsch, weil:

* `else` bedeutet „alle anderen Fälle“ * Du willst aber zwei explizite Aktionen, keine Gegenspieler

Merksatz fĂĽr die PrĂĽfung:

Schalten ≠ Gedrückt halten

—

## 5. Wenn der Lehrer pingelig ist (Bonuswissen)

* Entprellen ist nicht gefordert * `INPUT_PULLUP` ist nicht erlaubt, weil ihr Widerstände verbaut habt * Globale Variablen sind nicht nötig * Der Code ist bewusst simpel gehalten → prüfungsfreundlich

allgemein/arduino.1768219201.txt.gz · Zuletzt geändert: von lars