Arduino – Piezo als Klopfsensor verwenden

Das man einen Piezo oder auch Buzzer oder Summer genannt, als Alarmgeber für die Ausgabe von Tönen nutzen kann weiß jeder. Ein Piezo hat aber eine besonders interessante Eigenschaft, mit der es möglich ist, diesen auch als Klopfsensor verwenden zu können.

Piezoelement

Ein Piezo besteht aus Materialen, die durch mechanische Verformung eine Spannung erzeugen können. Wenn der Piezo also mechanisch verformt wird, wozu bereits laute Geräusche oder Klopfen gehören, verlagern sich der positive und der negative Ladungsschwerpunkt. Dadurch entsteht eine elektrische Spannung am Piezo die man am analogen Pin messen kann.

Für die Schaltung benötigt man folgende Bauteile

1 x Piezo
1 x 1 MOhm Widerstand für den Piezo
1 x LED
1 x Widerstand für die LED

Piezo als Klopfsensor - Breadboard

 

Der 1 MOhm Widerstand wird benötigt um einerseits im neutralen Zustand den Analogen Pin zuverlässig auf Ground zu ziehen. Andererseits sorgt dieser dafür dass bei einem auftretenden Ereignis, also wenn der Piezo verformt wird, keine zu hohe Spannung in den Analogen Pin gelangt und den Arduino beschädigt.

 

Arduino Sketch

 

Ich habe mir kürzlich eine Schaltung aufgebaut, wo ich den Piezo benutze um eine RGB-LED ein- und auszuschalten indem ich diesen anpuste, so wie wenn man eine Kerze auspustet.  Dabei musste ich den Wert hinter piezoRamp natürlich stark verkleinern.

Wenn ich den Piezo anblase nehme ich einen Wert von 20-50, beim klopfen hingegen hat sich ein Wert zwischen 100 und 300 bewährt. Dabei kommt es natürlich auch wieder darauf an, wo man den Piezo befestigt hat und ob man direkt auf den Piezo oder auf eine Holz- oder Plexiglasplatte, auf der der Piezo befestigt ist, klopft.

Um den richtigen Wert herauszufinden, setzt man am besten DEBUG auf true und schaut sich die Werte, die beim klopfen auf den Piezo ausgegeben werden, im Seriellen Monitor an.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

2 Kommentare zu “Arduino – Piezo als Klopfsensor verwenden

  1. Hi Enrico,

    Ich plane zurzeit ein Spielzeug Piano umzurüsten. Im Originalzustand hat es Tasten, die über eine einfache Hammermechanik verfügen – wie ein echtes Klavier. Diese Kunsstoff-Hammer schlagen Klangstäbe an, die den Ton erzeugen. Leider klingt es eher wie ein Xylophon.

    Mein Plan ist es, eine Stopp-Leiste zwischen die Hammer und die Klangstäbe zu schieben und darauf Piezo-Sensoren zu montieren. Das Arduino Board nimmt dann die Signale entgegen und soll sich selbst wie ein Midi-Device verhalten. Dazu wird später die Firmware ausgetauscht, so dass die Notwendigkeit von Midi-2-Serial und Midi Loopback-Devices entfällt.

    Meine Frage:
    Gibt es bei Piezos etwas zu beachten? Die Sensoren werden recht nah beieinander liegen. Genügt es nach Deiner Erfahrung bereits aufgrund der Schwellwerte zu unterscheiden, ob der eigene Sensor von einem Hammer getroffen wurde, oder ob das Signal von links oder rechts induziert wird? Oder muss man die Sensoren physisch „entkoppeln“ durch ein weiteres Material… Stichwort „Schwingungsfrei“… ich habe da leider keine Erfahrungen… aber vielleicht weißt Du ja mehr. :)

    Gruß,
    Christian.

    • Ich denke schon dass das funktionieren kann. Die Piezos reagieren ja auf Druck und Verformung und ich denke nicht dass der Schall in diesem Spielzeug genug Kraft aufbringt um die anderen Piezos zu beeinflussen.