Licht schal­ten mit einem Berührungssensor

Lese­zeit: 4 Minu­ten
Navi­ga­ti­on

Der Berüh­rungs­sen­sor soll durch Berüh­rung die LED ein­schal­ten und bei erneu­ter Berüh­rung die LED wie­der aus­schal­ten.
Das Pro­gramm muss fest­stel­len, ob die LED gera­de ein- oder aus­ge­schal­tet ist. 

Benö­tig­te Bauteile:

  • LED
  • Wider­stand > 100 Ω
  • Berüh­rungs­sen­sor
  • Lei­tungs­dräh­te

Baue die Schal­tung auf:
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Das Pro­gramm muss fest­stel­len, ob die LED gera­de ein- oder aus­ge­schal­tet ist.

Dazu dient eine Varia­ble vom Typ bool. Sie kann nur zwei Wer­te anneh­men:
true (wahr) oder fal­se (falsch).

Ist die LED aus, soll der Wert fal­se sein, leuch­tet die LED, soll der Wert true sein.

bool

Set­ze die Varia­blen:
Die LED soll zunächst aus­ge­schal­tet sein. 

int SENSOR = 7;
int LED = 6;

int SensorLesen;

/* 
   setzt den Status
   Status true →  LED an
   Status false → LED  aus
*/
bool Status = false;

Defi­nie­re den pin­Mo­de der LED und des Tasters:

void setup() 
{
  pinMode(LED, OUTPUT);
  pinMode(SENSOR, INPUT);
}

Im loop-Teil wird als Ers­tes der Zustand des Sen­sors abgefragt:

void loop()
{
  SensorLesen = digitalRead(SENSOR);
  if (SensorLesen == HIGH)
  { 
    delay(200);

    // LED ist aus → Status == false 
    if (Status == false)
    { 
      digitalWrite(LED, HIGH); 

      // Status auf true (an) setzen
      Status = true;
    }

    // LED ist an → Status == true 
    else if (Status == true) 
    { 
      digitalWrite(LED, LOW);

      // Status auf false (aus) setzen   
      Status = false;
    }
  } 
}

Es geht auch kürzer:

int SENSOR = 7;
int LED = 6;

int SensorLesen;

/* 
   setzt den Status
   Status true →  LED an
   Status false → LED  aus
*/
bool Status = false;

void setup() 
{
  pinMode(LED, OUTPUT);
  pinMode(SENSOR, INPUT);
}

void loop()
{
  // Taster lesen
  SensorLesen = digitalRead(SENSOR); 

  // Sensor berührt
  if (digitalRead(SENSOR) == HIGH)
  {
    delay(200);

    // Zustand von Status umkehren
    // aus true wird false, aus false wird true 
    Status = !Status;

     // LED schalten 
     digitalWrite(LED, Status);
   }
}


Ver­wand­te Aufgaben:


Letzte Aktualisierung: 21. Nov 2020 @ 18:15