Arduino Mega - SW-420 Vibrationssensor

In diesem Projekt wird ein Arduino Mega mit einem SW-420 Vibrationssensor kombiniert, um Stöße und Erschütterungen in dem Moment zu erfassen, in dem sie auftreten. Das werden wir behandeln:

Arduino Mega SW-420 Vibrationssensor

Sobald die grundlegende Erkennung funktioniert, können Sie den Sketch erweitern, um einen Summer ertönen zu lassen, eine LED blinken zu lassen oder ein Relais auszulösen, wann immer eine Vibration erkannt wird.

Benötigte Hardware

1×Arduino MEGA
1×Alternativ: DIYables MEGA Development Board
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×SW-420 Vibration Sensor Module
1×Verbindungskabel
1×(Empfohlen) Screw Terminal Block Shield for Arduino Uno/Mega
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Mega
1×(Empfohlen) Breadboard Shield for Arduino Mega
1×(Empfohlen) Enclosure for Arduino Mega

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den SW-420 Vibrationssensor

Das SW-420 Vibrationssensormodul erkennt Stöße, Klopfen und Erschütterungen. Im Inneren des Moduls befindet sich ein kleiner federbasierter Schalter, der dicht neben einem Metallkontakt angeordnet ist; wenn eine Vibration die Feder auslenkt, wandelt ein LM393-Komparator auf der Platine diese Störung in ein sauberes digitales Signal um. Mit einem kleinen Potentiometer auf der Platine können Sie einstellen, wie stark die Erschütterung sein muss, bevor das Modul eine Auslösung meldet.

Pinbelegung des SW-420 Vibrationssensors

Das Modul hat drei herausgeführte Pins.

  • VCC-Pin: Spannungseingang, akzeptiert 3,3V bis 5V.
  • GND-Pin: Massebezug (0V).
  • DO-Pin: digitaler Ausgangspin. Er bleibt LOW, solange das Modul ruhig ist, und wechselt in dem Moment auf HIGH, in dem eine Vibration oder ein Stoß erkannt wird. Verbinden Sie diesen Pin mit einem Digitaleingang des Arduino Mega.
Pinbelegung des SW-420 Vibrationssensors
image source: diyables.io

Zwei LEDs auf der Platine helfen bei der Fehlersuche.

  • Eine Betriebsanzeige-LED
  • Eine Auslöseanzeige-LED, die aufleuchtet, wann immer der DO-Pin auf HIGH geht

Funktionsweise

  • Im Ruhezustand bleibt der interne Federschalter offen, sodass der Komparator den DO-Pin auf LOW hält.
  • Wenn eine Vibration oder ein Stoß die Feder auslenkt, berührt sie kurz den Kontakt, und der Komparator setzt den DO-Pin auf HIGH.
  • Durch Drehen des Potentiometers auf der Platine ändern Sie, wie stark eine Vibration sein muss, bevor das Modul sie meldet.

Schaltplan

Schaltplan Arduino Mega SW-420 Vibrationssensor

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wie man den SW-420 Vibrationssensor programmiert

  • Konfiguriert einen Pin des Arduino Mega mit der Funktion pinMode() als Digitaleingang. Zum Beispiel Pin 8.
pinMode(8, INPUT);
  • Liest den aktuellen Zustand dieses Pins mit der Funktion digitalRead().
int vibrationState = digitalRead(8);

Arduino Mega Code - Vibration erkennen

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-sw-420-vibration-sensor */ #define SENSOR_PIN 8 // The Arduino Mega pin connected to the DO pin of the SW-420 vibration sensor int prev_vibration_state = LOW; // the previous state from the input pin int vibration_state; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the input pin: vibration_state = digitalRead(SENSOR_PIN); if (prev_vibration_state == LOW && vibration_state == HIGH) Serial.println("Vibration detected!"); else if (prev_vibration_state == HIGH && vibration_state == LOW) Serial.println("Vibration stopped"); // save the the last state prev_vibration_state = vibration_state; }

Schnelle Schritte

Befolgen Sie diese Schritte der Reihe nach.

  • Verdrahten Sie den SW-420 Vibrationssensor wie im Schaltplan gezeigt mit dem Arduino Mega.
  • Schließen Sie den Arduino Mega über ein USB-Kabel an Ihren Computer an.
  • Starten Sie die Arduino IDE.
  • Wählen Sie das richtige Board: Arduino Mega, und den passenden COM-Port.
  • Fügen Sie den folgenden Code in einen neuen Sketch in der Arduino IDE ein.
  • Klicken Sie auf Upload, um den Sketch auf den Arduino Mega zu übertragen.
  • Klopfen Sie auf den SW-420-Sensor oder schütteln Sie ihn, um ihn auszulösen.
  • Beobachten Sie die Ergebnisse im seriellen Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Mega Or...
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Mega Or...' on 'COM15')
New Line
9600 baud
Vibration detected! Vibration stopped Vibration detected! Vibration stopped
Ln 11, Col 1
Arduino Mega Or... on COM15
2

Fehlerbehebung

Wenn der SW-420 Vibrationssensor nicht wie erwartet reagiert, probieren Sie diese Schritte:

  • Empfindlichkeit anpassen: Drehen Sie das Potentiometer auf der Platine, um das Modul empfindlicher oder weniger empfindlich gegenüber Erschütterungen zu machen.
  • Umgebungsvibrationen fernhalten: Montieren Sie den Sensor entfernt von Motoren, Lüftern oder anderen Quellen ständiger Vibration, die Fehlauslösungen verursachen könnten.
  • Verdrahtung prüfen: Stellen Sie sicher, dass VCC, GND und DO alle mit den richtigen Pins verbunden sind.
  • Stromversorgung prüfen: Eine instabile Versorgung kann zu inkonsistenten oder verrauschten Messwerten führen.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Funktionsreferenzen

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!