Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
Lektion 42: Touch-Schalter für Licht
Dieses Projekt ist eine einfache Umsetzung eines Verkehrslichtsteuerungssystems unter Verwendung eines Berührungssensors und eines Verkehrslicht-LED-Moduls. Die Aktivierung des Berührungssensors löst eine Sequenz aus, in der die LEDs in folgender Reihenfolge leuchten: Rot -> Gelb -> Grün.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen. Hier ist der Link:
Name |
ITEMS IN THIS KIT |
LINK |
|---|---|---|
Universal Maker Sensor Kit |
94 |
Sie können sie auch separat von den untenstehenden Links kaufen.
Component Introduction |
Purchase Link |
|---|---|
Arduino UNO R3 or R4 |
|
- |
|
- |
|
Verkabelung
Code
Code-Analyse
Die Funktionsweise dieses Projekts ist unkompliziert: Eine Berührungserkennung am Sensor löst die Beleuchtung der nächsten LED in der Sequenz (Rot -> Gelb -> Grün) aus, gesteuert durch die Variable currentLED.
1. Pins und Startwerte definieren
const int touchSensorPin = 2; // Touch sensor pin const int rledPin = 7; // Red LED pin const int yledPin = 8; // Yellow LED pin const int gledPin = 9; // Green LED pin int lastTouchState; // Previous touch sensor state int currentTouchState; // Current touch sensor state int currentLED = 0; // Current LED: 0->Red, 1->Yellow, 2->GreenDiese Zeilen definieren die Pin-Verbindungen für die Komponenten des Arduino-Boards und initialisieren die Zustände des Berührungssensors und der LEDs.
setup() Funktion
void setup() { Serial.begin(9600); // Initialize serial communication pinMode(touchSensorPin, INPUT); // Set touch sensor pin as input // Configure LED pins as outputs pinMode(rledPin, OUTPUT); pinMode(yledPin, OUTPUT); pinMode(gledPin, OUTPUT); currentTouchState = digitalRead(touchSensorPin); // Read initial touch state }
Diese Funktion konfiguriert das initiale Setup für den Arduino, definiert Eingangs- und Ausgangsmodi und startet die serielle Kommunikation zum Debuggen.
loop() Funktion
void loop() { lastTouchState = currentTouchState; // Store the last state currentTouchState = digitalRead(touchSensorPin); // Read new touch state if (lastTouchState == LOW && currentTouchState == HIGH) { // Detect touch Serial.println("Sensor touched"); turnAllLEDsOff(); // Turn off all LEDs // Activate the next LED in sequence switch (currentLED) { case 0: digitalWrite(rledPin, HIGH); currentLED = 1; break; case 1: digitalWrite(yledPin, HIGH); currentLED = 2; break; case 2: digitalWrite(gledPin, HIGH); currentLED = 0; break; } } }
Die Schleife überwacht kontinuierlich den Berührungssensor, durchläuft die LEDs, wenn eine Berührung erkannt wird, und stellt sicher, dass jeweils nur eine LED eingeschaltet ist.
LEDs ausschalten Funktion
void turnAllLEDsOff() { // Set all LED pins to LOW, turning them off digitalWrite(rledPin, LOW); digitalWrite(yledPin, LOW); digitalWrite(gledPin, LOW); }
Diese Hilfsfunktion schaltet alle LEDs aus und hilft beim Durchlaufen des Zyklus.