Module photo from the Joy-IT SensorKit documentation. The boards in the kit may not carry the Joy-IT print but are the same modules.
KY-002, Vibration switch
Closes a contact when the module is shaken or knocked.
How it works
Vibration switch
What is going on
Inside the black can is a spring wrapped around a centre post. At rest they do not touch and the signal pin sits high through the pull-up. A knock makes the spring flex onto the post for a moment, which pulls the signal low. It is a switch, not a sensor: it says shaken or not shaken, never how hard.
Connections
Wiring to the Arduino Nano on its expansion shield
The pins below match the sketch further down this page; change one and change the other.
Power off first
Unplug the USB cable before you plug in, move or remove any module.
A lead plugged in live can touch the wrong pin for a moment, and 5 V on a signal pin is how a module dies. Unplug, wire, check the letters, then plug the cable back in.
Module pinGoes to
Module SignalS row of the column marked 10, digital bank
Module +VV row, 5 V
Module GNDG row, ground
The Nano I/O expansion shield supplied in the kit, photographed from above for the Voltaat product listing. Column positions measured from the photo; labels added by Fix It Today.
Where it plugs in on the shield
The ringed column is the one this module uses. G on top for ground, V in the middle for 5 V, S at the bottom for the signal. A module with more than one signal wire uses one column per wire.
Read the letters on the shield
Both banks on this shield read G, V, S from the top. The letters are printed at the ends of the rows.
The module's minus or GND pin goes to G, its plus or VCC pin to V, and each signal to the S row of the numbered column.
A module in backwards puts 5 V on the signal pin. Some survive it, plenty do not.
Starter sketch
Code you can copy and upload
Every sketch on these pages is compiled for the Arduino Nano before it is published. The pin numbers at the top match the connection table above.
ky002.inoArduino C++
1const uint8_t SHAKE = 10; // module S -> D10
2const uint8_t LED = 13;
3
4void setup() {
5 pinMode(SHAKE, INPUT_PULLUP);
6 pinMode(LED, OUTPUT);
7 Serial.begin(9600);
8}
9
10void loop() {
11 if (digitalRead(SHAKE) == LOW) { // spring touched the post
12 digitalWrite(LED, HIGH);
13 Serial.println("shake");
14 delay(200);
15 } else {
16 digitalWrite(LED, LOW);
17 }
18}
Try first
Tap the bench beside the module. The L LED flashes and the monitor prints shake.
The quickest way to see it respond.
1
Unplug the USB cable. Plug the module into the column shown above, minus to G, plus to V, signal to S.
2
Plug the USB cable back in. Copy the sketch, upload it, and open Tools > Serial Monitor at 9600 baud.
3
Do the thing the module senses and watch the reading, the L LED, or the sound respond.
Reference
More on this module
The Joy-IT page has the datasheet figures and examples for other boards; the repository has the original vendor files.
Have an idea for what MakerAccess should stock, improve, or explain next? Share it in the survey. If you bought or used a product and want to comment on the item itself, use the product feedback form.