Alarmanlage die auf Erschütterung reagiert

Hallo,

ich möchte mit dem Arduino Uno eine Alarmanlage bauen.
Diese Alarmanlage sollte nach einem Schütteln oder Kippen für z.B. 5min einen Alarmton ausgeben.
Meine Idee war, dass ich ein Kabel verbinden lasse, wenn der Arduino geschüttelt wird.
Es gibt dazu auch ein Übungsprogramm auf der Arduino-Seite:

Wie dort weiter unten auch Beschrieben wird, flackert die LED, wenn die zwei Dräte (5V und pin2) nicht verbunden sind.
Wie kann ich das verhindern, ohne ein drittes Kabel zu verwenden?
Hat jemand sonst noch vorschläge, wie man dieses Problem anderst lösen kann?

Vielen Dank schonmal!

Meine Idee war, dass ich ein Kabel verbinden lasse, wenn der Arduino geschüttelt wird.

Verstehe ich nicht.

Ausserdem sehe ich nicht wo das 3. Kabel sein soll. Der Widerstand kann direkt am Arduino sein.


( Ich kann dich evtl. auch noch weiter verwirren, indem ich sage, das Button-Beispiel kann man auch umschreiben und statt eines externen Pulldown-Widerstands den internen Pullup-Widerstand aktivieren. Der andere Anschluss des Tasters geht dann nicht an 5V sondern an GND. So gibt es dann wirklich nur 2 Anschlüsse zu deinem
Schalter als Erschütterungssensor --- wobei ich aber nicht sehe, wie das funktionieren soll. )

Nimm lieber einen Erschüterungssensor. Z.B. den hier:
http://www.watterott.com/de/Piezo-Vibrationssensor-gross-mit-Gewicht oder eine
Drucksensor, den du z.B: bei der Alarmanlage unter einen Teppich legst :
http://www.watterott.com/de/Force-Sensitive-Resistor-Square

Addi

michael_x:

Meine Idee war, dass ich ein Kabel verbinden lasse, wenn der Arduino geschüttelt wird.

Verstehe ich nicht.

Ausserdem sehe ich nicht wo das 3. Kabel sein soll. Der Widerstand kann direkt am Arduino sein.


Ich meine, dass bei Erschütterung z.B. ein Plastikplättchen wegfällt, sodass sich zwei Kabel verbinden (wie ein Schalter), und der Arduino das erkennt.
Wie bringe ich den Arduino dazu, den durchfluss zu erkennen und z.B. eine LED anzuschalten?

cave2596:
Ich meine, dass bei Erschütterung z.B. ein Plastikplättchen wegfällt, sodass sich zwei Kabel verbinden (wie ein Schalter), und der Arduino das erkennt.
Wie bringe ich den Arduino dazu, den durchfluss zu erkennen und z.B. eine LED anzuschalten?

Genau so, wie du es in deinem Eröffnungsposting verlinkt hast, bzw. ohne zusätzlichen Widerstand, wie michael_x vorschlug.

dann leutet die LED bei berührung (wie ich es will).
nur wenn die kabel sich nicht berühren (kein durchfluss) flackert die LED und ist nicht aus.
Der Microcontroller würde also auch schon einen Alarm auslösen.
Wie kann ich das verhindern?

Du meinst diesen Satz:

If you disconnect the digital i/o pin from everything, the LED may blink erratically. This is because the input is "floating" - that is, it will randomly return either HIGH or LOW. That's why you need a pull-up or pull-down resistor in the circuit.

Das bedeutet, dass du den pulldown Widerstand nicht abziehen darfst, dann ist der Input Pin sicher LOW, wenn die Drähte sich nicht berühren.
Alternativ aktivierst du den interen PULLUP Widerstand, dann ist der Input Pin sicher HIGH, ausser wenn die Drähte eine Verbindung zwischen Input Pin und GND herstellen.

Zur Ansteuerung deines zeitverlängernden Alarms oder der Anzeige-LED aus dem Beispiel, ist Pullup oder Pulldown übrigens egal, das kannst du leicht im Sketch anpassen.