Seismograph mit Piezolautsprecher

Ein Seismograph ist ein Messgerät zur Ermittlung von Bodenerschütterungen. Er wird meist für die Aufzeichnung von Vulkanaktivitäten und Erdbeben verwendet. Erschütterungen werden dabei mit einer frei schwingenden Masse erfasst. Kann man so etwas mit einem Arduino nachbauen? Klar. Auch ein Piezolautsprecher kann als Erschütterungssensor eingesetzt werden. Zusammen mit dem Franzis LCD-Shield lässt sich daraus ein einfacher Seismograph bauen.
Erschütterungssensor mit Piezolautsprecher
Der Piezolautsprecher an sich ist gegenüber Erschütterungen noch recht unempfindlich. Dies ändert sich jedoch sobald eine bewegliche Masse ins Spiel kommt. Eine einfache AA Batterie sorgt bereits für eine ausreichende Empfindlichkeit. Leichtes klopfen auf der Tischplatte wird zuverlässig erkannt. Die Anwendung basiert auf dem Quellcode des Beispielprogramms "scope" aus dem Lernpaket "Grafikdisplays programmieren". Es wurden lediglich ein paar Anpassungen in den Settings und in der Zeichenroutine vorgenommen. Der Eingangspin für den Piezo ist A0. Und hier geht's zum Download.
#include "Display.h"
#include "SPI.h"

/****************Settings*****************/
// Zeige Messspeicher für X ms an
word store = 50;
// Pixelbreite der Signaldarstellung
byte focus = 3;
// Signalverschiebung in y-Richtung
byte yPos = 0;
// Zeitbasis - Prescaler ADC - Werte von 0-7 
byte time = 4;
// Signalstärke über Division des ADC Wertes (/2^volts)
byte volts = 3;

Display lcd = Display();
byte values[128] = {};

void setup() {
  ADCSRA &= ~7;
  ADCSRA |= time;
  lcd.init(18);
  pinMode(A0, INPUT);
}

void loop() {
  lcd.clearVideoBuffer();
  for (byte x=0; x<128; x++) {
    delay(store);
    values[x] = (analogRead(A0) >> volts) + yPos;
    for (byte p=0; p<focus; p++) {
      lcd.drawPixel(x, 64-values[x] - p + 1);
      lcd.show();
    }
  }
}
Die Empfindlichkeit erhöhen
Je wackeliger die Konstruktion auf dem Piezo aufgebaut ist umso empfindlicher wird das System gegenüber Schwingungen. Zudem kann durch Vergrößerung der Fläche (z.B. durch anbringen eines Stück Karton) Luftbewegungen wahrgenommen werden. Viel Spaß beim experimentieren.
Nachtrag: Verbesserter Versuchsaufbau von Max5V (30.07.15)
Parallel zum Piezo hat sich ein Widerstand (1MOhm) bewährt, der für bessere Ergebnisse gesorgt hat. Dies führt zu einer Glättung des Ausgangssignal. Als Schwungmasse hat sich eine aufgeklebte Mutter bewährt, der Vorteil ist das man unterschiedlich lange Schrauben verwenden kann und somit flexibel mehrere Massen testen kann.
Links und Referenzen: