

Die Funktionsweise des Keramik-Sensors beruht auf der Entdeckung, dass durch den Druck auf die Oberfläche von Quarzkristallen und die dadurch bedingte Verformung elektrische Ladung entsteht (direkter Piezoeffekt).
Die Ladung, die man erhält, ist proportional zu der Kraft, die einwirkt.
Über eine Elektronik, einen so genannten Ladungsverstärker, wird die Ladung in ein einfach zu messendes 0 bis 5 V‑Signal gewandelt. Der Keramiksensor ist ein analoger Sensor, er wird am Anschluss A0 angeschlossen.
Benötigte Bauteile:
- LED
- Widerstand 220 Ω
- piezoelektrischer Keramiksensor
- Lautsprecher
- 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)

Analoger Anschluss A0
Jeder Druck auf den Sensor soll die LED kurz aufleuchten lassen. Gleichzeitig wird ein kurzer Ton wiedergegeben.
Lege die Anschlüsse und die Variable für den Sensorwert fest.
1 2 3 4 | int LED = 7; int PIEZO = A0; int LAUTSPRECHER = 5; int SensorWert; |
Da es sich um einen analogen Sensor handelt, liegt der Sensorwert zwischen 0 und 1023. In der Praxis bewegt sich der Wert für den „ungedrückten“ Sensor zwischen 20 und 40.
Das muss bei der Festlegung des Auslösewertes berücksichtigt werden. Du kannst diesen Wert im im Seriellen Monitor abfragen:

Du kannst den Seriellen Monitor auch mit der Tastenkombination strg+Umschalt+M starten.
Im setup-Teil müssen die Ausgänge zugeordnet und der Serielle Monitor gestartet werden:
1 2 3 4 5 6 7 8 9 10 11 | void setup() { pinMode(LED, OUTPUT); pinMode(LAUTSPRECHER, OUTPUT); // Seriellen Monitor starten Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} } |
Im loop-Teil wird der Wert des Sensors abgefragt und im Seriellen Monitor angezeigt …
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | void loop() { SensorWert = analogRead(PIEZO); /* damit der Auslösewert angepasst werden kann Sensorwert anzeigen kann danach auskommentiert werden */ Serial.println(SensorWert); /* Wert festlegen an dem LED/Lautsprecher aktiviert werden diesen Wert zwischen 20 und 80 anpassen, wenn Klopfzeichen nicht (oder zu oft) erkannt werden */ int AusloeserWert = 40; // wenn der Wert über dem Auslösewert liegt // LED/Lautsprecher einschalten if (SensorWert >= AusloeserWert) { digitalWrite(LED, HIGH); tone(LAUTSPRECHER, 1000); /* der Sensorwert braucht einige Zeit, um wieder unter den Auslösewert zu fallen der Wert muss eventuell größer oder kleiner sein */ delay(50); } else { digitalWrite(LED, LOW); noTone(LAUTSPRECHER); } } |
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
- Automatische Tür mit Hall-Sensoren
Letzte Aktualisierung:






