- Modulul senzorului de vibrații SW-420
- Componente necesare
- Diagrama circuitului senzorului de vibrații Arduino
- Programarea senzorului de vibrații Arduino Uno
- Testarea circuitului senzorului de vibrații Arduino
Există mai multe mașini critice sau echipamente scumpe care suferă daune datorate vibrațiilor. Într-un astfel de caz, este necesar un senzor de vibrații pentru a afla dacă mașina sau echipamentul produce sau nu vibrații. Identificarea obiectului care vibrează continuu nu este o sarcină dificilă dacă senzorul adecvat este utilizat pentru a detecta vibrația. Există mai multe tipuri de senzori de vibrațiidisponibile pe piață, care pot detecta vibrațiile prin detectarea accelerației sau vitezei și ar putea oferi rezultate excelente. Cu toate acestea, astfel de senzori sunt prea scumpi acolo unde este utilizat accelerometrul. Accelerometrul este foarte sensibil și poate fi folosit pentru a face circuitul detectorului de cutremur. Dar, există puțini senzori dedicați și ieftini, de asemenea, sunt disponibili pentru a detecta numai vibrațiile, un astfel de senzor de vibrații este SW-420 pe care îl vom interfața cu Arduino Uno.
Deci, în acest proiect, un modul senzor de vibrație de bază este interfațat cu popularul Arduino UNO și ori de câte ori senzorul de vibrații detectează orice vibrație sau smucitură, un LED va începe să clipească.
Modulul senzorului de vibrații SW-420
Acesta este un modul de vibrații SW-420, care poate funcționa de la 3,3V la 5V. Senzorul folosește comparatorul LM393 pentru a detecta vibrația peste un punct de prag și pentru a furniza date digitale, Logic Low sau Logic High, 0 sau 1. În timpul funcționării normale, senzorul oferă Logic Low și atunci când vibrația este detectată, senzorul oferă Logic High. Există trei periferice disponibile în modul, două LED-uri, unul pentru starea de alimentare și altul pentru ieșirea senzorului. În plus, este disponibil un potențiometru care poate fi utilizat în continuare pentru a controla punctul de prag al vibrației. În acest proiect, vom folosi 5V pentru a alimenta modulul.
Am folosit același senzor în sistemul de alertă antifurt folosind microcontrolerul ATmega8. De asemenea, un senzor de înclinare poate fi utilizat pentru a detecta accidentul brusc.
Componente necesare
- Arduino UNO
- Modulul senzorului de vibrații SW-420
- LED de 5 mm (orice culoare)
- Sârme jumper (fire conectate)
- Cablu USB pentru încărcarea programului
Diagrama circuitului senzorului de vibrații Arduino
Schema pentru interfața senzorului de vibrații cu Arduino uno este prezentată mai jos.
LED-ul este conectat în pinul D13. Modulul este alimentat utilizând pinul de 5V disponibil în Arduino. Pământul și pinul de 5V sunt utilizate pentru a porni Arduino, în timp ce pinul A5 este utilizat pentru a obține datele de la senzorul de vibrații.
Circuitul este construit acolo unde modulul SW-420 și LED-ul sunt conectate cu Arduino Uno.
Programarea senzorului de vibrații Arduino Uno
Programarea Arduino UNO pentru interfața senzorului de vibrații nu necesită mult efort, deoarece numai pinul de intrare trebuie monitorizat pentru a concluziona. Codul complet și video de lucru sunt atașate la sfârșitul anului.
Inițial sunt incluse fișierele antet. Antetul arduino este inclus deoarece acest tutorial a fost scris în Eclipse IDE cu extensie Arduino. Această schiță va funcționa și pentru Arduino IDE și, în timp ce utilizați această schiță în Arduino IDE, nu este nevoie să includeți antetul.
#include
Aici sunt definite două macro-uri pentru ON și OFF.
#define ON 1 #define OFF 0
Afirmația de mai jos este utilizată pentru integrarea LED-urilor și a senzorului de vibrații. Senzorul de vibrații este conectat la pinul A5. Se utilizează, de asemenea, LED-ul încorporat, care este conectat direct în placă la pinul 13. LED-ul de 5 mm este, de asemenea, conectat la pinul 13.
/ * * Descriere pin * / int vibration_Sensor = A5; int LED = 13;
Sunt declarate două numere întregi unde senzorii prezenți ieșire și ieșire anterioară vor fi stocate, care vor fi utilizate în continuare pentru a detecta dacă vibrația se întâmplă sau nu.
/ * * Fluxul programului Descriere * / int present_condition = 0; int condiția_anterioră = 0;
Același pin care este declarat ca conexiune periferică, direcția pinilor sunt configurate. Pinul senzorului ca intrare și pinul LED ca ieșire.
/ * * Setare mod Pin * / setare void () { pinMode (vibration_Sensor, INPUT); pinMode (LED, OUTPUT); }
O funcție este scrisă pentru a clipi ledul de două ori. Întârzierea poate fi configurată prin introducerea valorii întârzierii.
void led_blink (void) { digitalWrite (LED, ON); întârziere (250); digitalWrite (LED, OFF); întârziere (250); digitalWrite (LED, ON); întârziere (250); digitalWrite (LED, OFF); întârziere (250); }
În funcția buclă, se compară starea prezentă și cea anterioară. Dacă aceste două nu sunt aceleași, ledurile încep să clipească până când ambele sunt aceleași. La pornire, cele două variabile țin 0 și ledul rămâne oprit în timpul începerii programului. Atunci când există unele virbraion, present_condition variabila devine 1 și condus de pornire să clipească. Și din nou, când vibrațiile se opresc, ambele dispozitive devin 0 și LED-ul încetează să clipească.
bucla void () { condiția_anterior = condiția_ prezent; prezent_condiție = digitalRead (A5); // Citirea datelor digitale de la pinul A5 al Arduino. if ( condiție_anterioră ! = condiție_ prezentă) { led_blink (); } else { digitalWrite (LED, OFF); } }
Aceasta termină programarea arduino UNO cu senzor de vibrații. Ultimul pas va fi testarea întregii configurări.
Testarea circuitului senzorului de vibrații Arduino
Circuitul nu necesită panou suplimentar. Poate fi testat simplu folosind placa Arduino UNO. Ledul este monitorizat atunci când senzorul de vibrații este lovit sau dacă își schimbă starea. Ledul va clipi conectat la pinul 13 al Arduino UNO atunci când există unele vibrații. Dacă senzorul de vibrații nu funcționează, verificați conexiunea și puterea. Evitați orice conexiune liberă între senzor și microcontroler.
Așa că așa se poate interfața un senzor de vibrație cu Arduino UNO. Dacă aveți vreo îndoială sau sugestie, atunci ne puteți contacta prin forum sau puteți comenta mai jos.