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.
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:
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 ...
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
- Lauflicht mit einem Gesten-Sensor
- LEDs mit einem 4-Tasten Berührungssensor schalten
- Licht schalten mit einem Berührungssensor
- Licht schalten mit einem Soundsensor
- Morsegerät mit einem Berührungssensor
Letzte Aktualisierung: