Danas ćemo se pozabaviti s jednim vrlo jednostavnim i praktičnim senzorom. Riječ je o senzoru vibracija SW-520D koji najčešće dolazi u dvije verzije kao sam senzor kao u našem primjeru ili s LM393 komparatorom napona u izvedbi modula. Ovaj senzor može koristiti kao i indikator nagiba no o tome drugom prilikom.
Sam senzor sastoji se od dvije vodljive kuglice koje će pri udaru ili zakretu odvojiti od vodljivih nožica i time uzrokovati otvaranje ili zatvaranje strujnog krug. Iz samog načina rada možemo zaključiti očekivane vrijednosti. Pri normalnom načinu rada senzor je u potpunosti provodan i dati će nam očitanje od 1024 na analognom pinu možemo očekivati manje varijacije zbog gubitaka ne značajne 1022-1024. Pri podrhtavanju kuglice se odvajaju i dobivamo značajno manja očitanja ovisno o jačini vibracije.
Tehničke karakteristike
- Maksimalni napon:12V
- Maksimalna struja: 20mA
- Materijal: PVC, metal
Testiranje
Probni spoj senzora vrlo je jednostavan dovoljno je samo spojiti jednu nožicu na 5V a drugu na analogni pin po izboru te pokrenuti program za čitanje vrijednosti analognog pina koji se nalazi u primjerima Arduino IDE, te na serial monitoru pratiti vrijednosti koje dobivate sa senzora. Senzor u mirovanju veće od 1022 , senzor osjetio vibracije ispod 1022
Mini APP
Sada kada smo vidjeli da naš senzor radi, idemo spojiti uređaj koji će nam signalizirati s LED diodama ima li vibracija ili ne.

Shema je vrlo jednostavna, spajanje senzora je čisto jedna nožica 5V druga na A0. Mi smo koristili RGB diodu no koristite onu koju imate pri ruci. Važno je za naglasiti da je ovakav spoj RGB diode gdje je otpornik jedino na katodi jedino preporučljiv ako će biti upaljena samo jedna boja istovremeno te koristiti otpornike 330 Ohm
Program
/******************************************************* Spajanje senzora vibracije SD-520D ********************************************************/ int senzorPin = A0; // pin za senzor int ledCrvena = 2; // pinovi za LED diode int ledZelena = 3; // pinovi za LED diode int senzorVrijednost = 0; // spremanje vrijednosti senzora void setup() { pinMode(ledCrvena, OUTPUT); pinMode(ledZelena, OUTPUT); pinMode(senzorPin, INPUT); } void loop() { // citanje podataka sa senzora senzorVrijednost = analogRead(senzorPin); Serial.println(senzorVrijednost); if(senzorVrijednost < 1022){ digitalWrite(ledZelena, HIGH); digitalWrite(ledCrvena, LOW); } else{ digitalWrite(ledZelena, LOW); digitalWrite(ledCrvena, HIGH); } delay(50); }