Die Tasten 1 bis 3 des 4-Tasten Berührungssensors sollen bei der ersten Berührung die LEDs einschalten, bei einer erneuten Berührung wird die jeweilige LED wieder ausgeschaltet.
Taste 4 schaltet alle LEDs aus.
Bei dieser Anleitung lernst du die Verwendung von Arrays kennen. Du kannst dir ein Array wie einen Schrank mit Schubladen vorstellen.
Beispiel:
Definition eines Arrays mit 5 Elementen vom Typ int. Mit den eckigen Klammern wird die Anzahl der Elemente festgelegt.
int LED[5] = {3, 4, 5, 6, 7};
In jeder Schublade befindet sich ein Element. Jede Schublade ist nummeriert, besitzt einen Index Mit Hilfe von Arrays können Daten eines einheitlichen Typs (z. B. int) im Speicher abgelegt und jederzeit wieder hervor geholt werden.
Inhalt von Schublade Nummer 0 → Schublade[0] = 3
Inhalt von Schublade Nummer 1 → Schublade[1] = 4
Das Beispielprogramm zeigt das Array an:
void setup()
{
Serial.begin(9600);
// for-Schleife vom ersten (0) bis zum letzten (4) Element des Arrays
for (int i = 0; i < 4; i++)
{
Serial.println(LED[i]);
}
}
void loop()
{
// bleibt leer, Programm läuft nur einmal
}
➨Weitere Informationen zu Arrays
Benötigte Bauteile:
- 3 LEDs
- 2 Widerstände 220 Ω (rote und grüne LED)
- Widerstand 100 Ω (weiße LED)
- 4-Tasten Berührungssensor
- Leitungsdrähte
Beachte die ➨Vorwiderstände verschiedener LEDs
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Der 4-Tasten-Sensor verfügt über vier berührungsempfindliche Tasten. Wird eine Taste betätigt, leuchtet die dazugehörige LED zur Kontrolle.
Die Tasten, die Pins der LEDs und der Zustand der LEDs (HIGH/LOW) werden jeweils als Array definiert:
// Definition der Tasten mit den dazugehörigen Pins
int TASTE[4] = {4, 5, 6, 7};
// Definition der LEDs mit den dzugehörigen Pins
int LED[3] = {8, 9, 10};
// Status der LEDs, beim Start alle aus
bool Status[3] = {false, false, false};
Im setup-Teil kannst du mit einer for-Schleife allen LEDs als OUTPUT zuordnen und in einer weiteren for-Schleife die Tasten als INPUT definieren.
void setup()
{
// LEDs als OUTPUT definieren
for (int i = 0; i <= 2; i ++)
{
pinMode(LED[i], OUTPUT);
}
// Tasten als INPUT definieren
for (int i = 0; i <= 3; i ++)
{
pinMode(TASTE[i], INPUT);
}
}
Im loop-Teil wird zunächst geprüft, welche Taste gedrückt wird und dann wird die entsprechende LED eingeschaltet. Taste 4 schaltet die LEDs aus.
void loop()
{
/*
prüfen, welche Taste gedrückt wurde
Status der jeweiligen LED wird umgedreht
HIGH → LOW LOW → HIGH
die Tasten reagieren empfindlich auf Berührung
-> kurzes delay einfügen
*/
for (int i = 0; i < sizeof(TASTE) - 1; i++)
{
if (digitalRead(TASTE[i]) == HIGH)
{
delay(200);
Status[i] = !Status[i];
digitalWrite(LED[i], Status[i]);
}
}
// Taste 4 schaltet alle LEDs aus
if (digitalRead(7) == HIGH)
{
for (int i = 0; i <= 2; i ++)
{
digitalWrite(LED[i], LOW);
}
}
}
Verwandte Anleitungen:
- Alarmanlage mit einem Bewegungsmelder
- Alarmanlage mit einem Fotowiderstand
- Alarmanlage mit einem Gesten-Sensor
- Alarmanlage mit dem Hall-Sensor KY-024
- Alarmanlage mit einer Lichtschranke
- Klopfzeichen mit einem piezoelektrischen Keramik-Sensor
- Lauflicht mit einem Gesten-Sensor
- Licht schalten mit einem Berührungssensor
- Licht schalten mit einem Soundsensor
- Morsegerät mit einem Berührungssensor
Letzte Aktualisierung: