A08|01 Der Klopfsensor
Knock Sensor
Sensorwerte / Neigung oder Erschütterungen messen
Der Name verrät es schon: dieses Modul detektiert Stöße. Der Sensor kann eingesetzt werden, um z.B. ein Zusammenstoß eines mobilen Roboters mit einem Objekt zu detektieren. Oder wie wäre es ein elektrisches Schloss aufzusperren, in dem man auf gewisse Weise auf die Tür klopft?
Die Positionierung des Sensors zum Aktionsbereich ist wichtig. Im Allgemeinen sollte der Sensor physisch so nah wie möglich an dem zu überwachenden Bereich montiert werden, sonst werden die Schwingungen gedämpft. Andererseits kann es sein, dass der Sensor zu empfindlich reagiert. In diesem Fall kann es hilfreich sein, den Klopfsensor aus dem Aktionsbereich zu verschieben.
Spezifikationen
- Betriebsspannung: 5V
- Signalart: Digital
- Pinabstand: 2.54mm
Der interne Aufbau ist genial einfach. Der Schalter besteht in erster Linie aus einer Klemme, die einen Mittelpfosten bildet, und einer zweiten Klemme, bei der es sich um eine Feder handelt, die den Mittelpfosten umgibt. Wenn eine ausreichende Kraft auf den Schalter übertragen wird, bewegt sich die Klemme, die aus der Feder besteht, und schließt beide Klemmen miteinander kurz.
Der Aufbau
Verbinde dein Arduino mithilfe der Jumper Wire mit dem Modul:
Der minimal Sketch
Der Test-Sketch für den Klopfsensor ist denkbar einfach. Folgender Sketch liest den Zustand des Sensors und lässt entsprechend eine LED ein- oder ausschalten. Dieser Sketch ist in seinem Aufbau identisch mit dem Code aus dem Kapitel für den digitalen Momentanschalter - bis auf die Variablennamen. Siehe für nähere Erläuterungen des Sketches in A07|01 Der digitale Momentanschalter nach. Kopiere den unteren Sketch, füge ihn in die Arduino IDE ein und lade ihn auf das Arduino-Board rauf.
/********************************************************
A07|03 Kollisionssensor
Mr Robot UXSD / www.mrrobotuxsd.com
*********************************************************/
int knockPin = 3; //Pin für den Taster
int ledPin = 13; //Pin für die LED
void setup()
{
pinMode(ledPin, OUTPUT); //LED-Pin als Ausgang deklarieren
pinMode(knockPin, INPUT); //Klopfsensor als Eingang deklarieren
}
void loop()
{
//Variable um den Klopfsensor abzufragen
int knockState = digitalRead(knockPin);
if (knockState == HIGH) //Prüfen, ob Klopfsensor ausgelöst wurde
{
//Dieser Teil wird ausgeführt, wenn knockState HIGH ist
digitalWrite(ledPin, HIGH); //LED einschalten
}
else
{
//Dieser Teil wird ausgeführt, wenn knockState LOW ist
digitalWrite(ledPin, LOW); //LED ausschalten }
}
}
Falls du die hier beschriebenen Elektronik-Module nicht hast kannst du sie in meiner Einkaufsliste finden. Warum ich selber hauptsächlich mit Modulen der Marke Keyestudio arbeite erläutere ich unter diesem Blog-Artikel.