Kapazitiver Touch-LED-Schalter mit Arduino UNO – Einfaches DIY-Projekt
Komponenten und Materialien
| Arduino UNO | 1 |
| LED (beliebig) | 1 |
| Jumper-Kabel | 4 |
| Widerstand 1 MΩ | 1 |
| Aluminiumfolie oder Münze (als Sensor) | 1 |
Verwendete Software
- Arduino IDE
- CapacitiveSensor-Bibliothek: Download
Projektbeschreibung
Dieses Projekt realisiert einen berührungsempfindlichen Schalter, der eine LED ein- und ausschaltet. Als Sensor dient eine Münze oder ein Stück Aluminiumfolie. Die CapacitiveSensor-Bibliothek wandelt zwei Arduino-Pins in einen kapazitiven Sensor um, der die elektrische Kapazität des menschlichen Körpers detektiert. Bereits ein hochohmiger Widerstand (1 MΩ) und ein Draht mit Folie am Ende genügen. In maximaler Empfindlichkeit reagiert der Sensor sogar auf Annäherung der Hand.
Schaltung und Funktionsweise
Es handelt sich um ein einfaches RC-Glied (Widerstand-Kondensator). Der Arduino misst die Zeit, die der Kondensator (der menschliche Körper + Sensorfläche) benötigt, um sich über den 1 MΩ-Widerstand aufzuladen. Diese Zeit ändert sich, wenn ein leitfähiges Objekt (Finger) die Kapazität erhöht. Der hochohmige Widerstand sorgt für eine lange Entladezeit und damit hohe Empfindlichkeit.
Als Sensormaterial eignen sich alle metallischen Objekte: Münzen, Alufolie, Drahtschlaufen etc.
Hardware-Aufbau
- Stecken Sie den 1 MΩ-Widerstand zwischen Pin 2 und Pin 4 des Arduino.
- Verbinden Sie den Sensor (Münze/Folie) mit Pin 4 (Receive-Pin).
- Schließen Sie die LED zwischen GND und Pin 8 an (Anode an Pin 8, Kathode an GND). Ein Vorwiderstand (220 Ω) für die LED ist empfehlenswert.
Software
Installieren Sie zunächst die CapacitiveSensor-Bibliothek über den Bibliotheksverwalter oder per ZIP-Import. Der folgende Sketch schaltet die LED bei jeder Berührung um (Toggle-Funktion) und entprellt mit 200 ms.
#include <CapacitiveSensor.h>
CapacitiveSensor cs_2_4 = CapacitiveSensor(2, 4); // 1M Widerstand zwischen Pin 2 & 4, Pin 4 ist Sensor
const int ledPin = 8;
bool ledState = false;
unsigned long lastToggle = 0;
const unsigned long debounce = 200;
void setup() {
pinMode(ledPin, OUTPUT);
cs_2_4.set_CS_AutocaL_Millis(0xFFFFFFFF); // Autokalibrierung deaktivieren für Stabilität
}
void loop() {
long sensorValue = cs_2_4.capacitiveSensor(30); // 30 Samples
if (sensorValue > 500) { // Schwellenwert anpassen!
if (millis() - lastToggle > debounce) {
ledState = !ledState;
digitalWrite(ledPin, ledState);
lastToggle = millis();
}
}
delay(10);
}
Hinweis: Der Schwellenwert (hier 500) muss experimentell ermittelt werden. Größere Widerstände (z. B. 10 MΩ) erhöhen die Empfindlichkeit und wirken wie ein Näherungssensor.
Test
Berühren Sie den Sensor – die LED wechselt ihren Zustand. Mit größeren Widerständen reagiert der Sensor bereits auf Annäherung (Proximity-Sensor).
Schaltplan
Herstellungsprozess
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
- Raspberry Pi Badezimmer-Belegungssensor mit Sprach- & SMS-Benachrichtigung via Twilio
- Digitaler Lichtsensor – LED per Umgebungslicht steuern mit Windows 10 IoT Core
- Temperatur- und Luftfeuchtedaten zwischen zwei Arduinos via Firebase übertragen
- Gesteuerter RGB-Tischlampe – Interaktive, berührungslose Beleuchtung
- Arduino-Uno-Roboter zur Personenerkennung – Sensorintegration Schritt für Schritt
- DIY Infrarot-Herzschlag-Sensor mit Arduino: Schritt-für-Schritt-Anleitung
- Android-gesteuertes Roboterfahrzeug mit Raspberry Pi Motor Shield
- Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall