CONTENUTO ►
Il sensore di vibrazioni di Arduino (ky-002) è utilizzato per rilevare la presenza di vibrazioni esterne sul modulo e viene impiegato nella creazione di sistemi di allarme domestici. Prenderemo in considerazione diversi esempi di utilizzo del sensore e presenteremo diversi schemi per il collegamento del sensore di vibrazioni alla scheda Arduino e dimostreremo un semplice programma utilizzando il ciclo while() del linguaggio di programmazione Arduino.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- sensore di vibrazione SW-420
- LED e resistenza
- pulsante
- breadboard
- cavi di collegamento
Sensore di vibrazione KY-002 / SW-420 datasheet, pinout
Questo sensore può essere prodotto come modulo SW-420 o come sensore di vibrazione KY-002 per microcontrollore Arduino. Il sensore SW-420 si basa su una sfera metallica e una molla all’interno di un piccolo tubo di plastica. La sfera chiude i contatti quando si verificano le vibrazioni. Il modulo è dotato di un amplificatore di segnale, di una resistenza di sintonia per regolare la sensibilità del sensore e di tre pin per il collegamento al microcontrollore.
Caratteristiche del sensore di vibrazione SW-420 Arduino:
- Tensione di alimentazione: 3,3 – 5 V
- Consumo di corrente: 5 mA
- Sensibilità: regolabile
- Interfaccia: digitale
I sensori SW-420 hanno tre uscite: GND e VCC per l’alimentazione e l’uscita del segnale analogico A0, che può essere collegata a qualsiasi ingresso analogico. Il modulo di vibrazione 140C001 801S è dotato di una porta digitale aggiuntiva; quando la vibrazione raggiunge un determinato valore (impostato con una resistenza di sintonizzazione), sulla porta viene emesso uno zero logico, in modo da poter essere utilizzato in modo indipendente.
Come collegare sensore di vibrazione SW-420 Arduino
Per utilizzare il modulo KY-002 o il sensore HDX come sensore di vibrazioni, è necessario utilizzare schemi di cablaggio diversi. Il modulo SW-420 o il sensore di vibrazioni KY-002 devono essere collegati direttamente ad Arduino secondo la piedinatura (vedi schema sopra). Il sensore HDX come elemento singolo deve essere collegato tramite una resistenza all’ingresso digitale o analogico del microcontrollore, come mostrato nel diagramma.
Programma Arduino per utilizzare sensore di vibrazione
#define VIB A1 #define LED 12 int val = 0; void setup() { pinMode(LED, OUTPUT); pinMode(VIB, INPUT); Serial.begin(9600); } void loop() { val = analogRead(VIB); Serial.print("Vibration sensor - "); Serial.println(val); if (sens > 500) { digitalWrite(LED, HIGH); } if (sens < 500) { digitalWrite(LED, LOW); } delay(1000); }
Spiegazione del codice per sensore di vibrazione SW-420 Arduino:
- i valori della variabile val possono essere completamente diversi: tutto dipende dall’impostazione della sensibilità del rilevatore di vibrazioni;
- l’istruzione condizionale if consente di definire un’azione in presenza di una condizione vera.
Come collegare del sensore di vibrazione e pulsante
Nel programma proposto, il LED si accende quando c’è una vibrazione e si spegne quando non c’è alcuna vibrazione, il che non è adatto a un dispositivo di allarme. Perché funzioni correttamente, è necessario finalizzare lo schizzo e collegare il pulsante. Il LED non deve spegnersi al termine della vibrazione (altrimenti non ci si accorge che il sensore è stato attivato), ma tornare in modalità standby solo quando si preme il pulsante.
Programma Arduino per utilizzare sensore di vibrazione
#define LED 12 #define VIB A1 #define BUT 2 int val = 0; byte w = 0; void setup() { pinMode(LED, OUTPUT); pinMode(VIB, INPUT); pinMode(BUT, INPUT); Serial.begin(9600); } void loop() { val = analogRead(VIB); Serial.print("Vibration sensor - "); Serial.println(val); if (sens > 500) { digitalWrite(LED, HIGH); w = 1; } if (sens < 500) { digitalWrite(LED, LOW); } while (w == 1) { Serial.println("DANGER"); if (digitalRead(BUT) == HIGH) { w = 0; } } delay(1000); }
Spiegazione del codice per sensore di vibrazione e pulsante Arduino:
- La variabile globale byte w = 0; è necessaria nel programma per evitare che il ciclo while Arduino venga eseguito all’inizio del programma.
Conclusione. Quando il sensore viene attivato, cambiamo il valore della variabile w = 1; questo è necessario per avviare il ciclo while() del programma. Il ciclo while verrà eseguito all’infinito finché la condizione while (w = 1) non diventerà falsa. La condizione diventa falsa quando viene premuto il pulsante – cambiamo il valore della variabile a “0” e usciamo dal ciclo.
Lascia un commento