🧩 ماژول سنسور لرزش SW-420 (SW-420 Vibration Sensor Module)
| اسم انگلیسی | SW-420 Vibration Sensor Module |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | 🌡️ سنسورها |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
ماژول سنسور لرزش SW-420 (Vibration Sensor Module) همان سنسور فنری SW-420 است که روی یک برد کوچک با مقایسهگر LM393، یک پیچ تنظیم حساسیت و دو LED نشانگر سوار شده. فرقش با سنسور خام SW-420 این است که پالسهای خیلی کوتاه فنر را به یک خروجی دیجیتال تمیزتر روی پایهی DO تبدیل میکند و دیگر لازم نیست با پولآپ و وقفه سر و کله بزنی. با آن هشدار تکان خوردن کیف یا دوچرخه، حسگر ضربه به صندوق یا شمارندهی ضربههای یک بازی میسازی.
ماژول لرزش در ووکوی (Wokwi)
تا جایی که میدانیم ووکوی نسخهی آمادهی این قطعه را ندارد. چون خروجی ماژول فقط یک سیگنال دیجیتال است، یک wokwi-pushbutton بین پین 3 و GND جایگزین سادهای است. کدی که در ادامه میبینی سطح سکون را خودش یاد میگیرد و پولآپ داخلی را هم روشن میکند، پس با همین دکمه هم بدون تغییر کار میکند.
{
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-pushbutton", "id": "btn1", "top": -100, "left": 150, "attrs": { "color": "red" } }
],
"connections": [
[ "btn1:1.l", "uno:3", "green", [] ],
[ "btn1:2.l", "uno:GND.1", "black", [] ]
]
}
خود ماژول SW-420 در تینکرکد فارسی در هر دو مود رایگان شبیهسازی میشود.
سیمکشی با آردوینو
| پایهی قطعه | وصل به |
|---|---|
| VCC | 5V (ماژول ۳٫۳ تا ۵ ولت کار میکند) |
| GND | GND |
| DO | پین 3 |
| LED نشانگر | LED داخلی برد روی پین 13 |
پیچ آبی روی ماژول حساسیت را تنظیم میکند. ماژول را روی میز بگذار و پیچ را آرام بچرخان تا جایی که LED وضعیت روی برد در حالت سکون ثابت بماند و با یک تقهی ملایم به میز چشمک بزند.
کد نمونه
ماژولهای SW-420 در حالت سکون همه یک سطح خروجی ندارند؛ بعضی LOW میدهند و بعضی HIGH. بهجای اینکه روی یکی شرط ببندیم، برنامه در setup سطح سکون را میخواند و از آن به بعد هر خروجی متفاوت را «لرزش» حساب میکند. هر رویداد شماره میگیرد و LED تا یک ثانیه بعد از آخرین لرزش روشن میماند.
// SW-420 module, DO on pin 3: learn the resting level, then count jolts.
const int DO_PIN = 3;
const unsigned long HOLD_MS = 1000; // one event = jolts closer than this
int idleLevel;
unsigned long lastEvent = 0;
int events = 0;
void setup() {
Serial.begin(9600);
pinMode(DO_PIN, INPUT_PULLUP); // harmless on the module, needed for a bare button
pinMode(LED_BUILTIN, OUTPUT);
delay(500); // keep it still at power-up
idleLevel = digitalRead(DO_PIN); // the resting output level
Serial.print("Idle level = ");
Serial.println(idleLevel);
}
void loop() {
bool shaking = digitalRead(DO_PIN) != idleLevel;
if (shaking) {
if (events == 0 || millis() - lastEvent > HOLD_MS) { // a new event
events++;
Serial.print("Vibration event #");
Serial.println(events);
}
lastEvent = millis();
}
bool ledOn = events > 0 && millis() - lastEvent < HOLD_MS;
digitalWrite(LED_BUILTIN, ledOn ? HIGH : LOW);
}
اشتباههای رایج
- تکان دادن ماژول هنگام روشن شدن: کد سطح سکون را در نیمثانیهی اول یاد میگیرد؛ اگر آن موقع ماژول بلرزد، منطق برعکس میشود. موقع روشن کردن دست به آن نزن.
- پیچ حساسیت تا ته: با حساسیت زیاد، صدای پا یا لرزش کولر هم «لرزش» حساب میشود و شمارنده مدام بالا میرود. از حساسیت کم شروع کن.
- انتظار شدت لرزش: DO فقط میگوید لرزش بوده یا نه. اگر شدت را میخواهی، تعداد رویدادها در یک بازهی زمانی را بشمار یا سراغ شتابسنج برو.
- نصب شل: ماژولی که با سیم آویزان است، لرزش جسم را حس نمیکند. آن را با پیچ یا چسب دوطرفه محکم کن.
آموزشهای مرتبط
- سنسور خام SW-420 و شمارش پالس با وقفه
- سنسور شیب برای تشخیص کج شدن
- پیزو بزرگ برای آژیر
- دزدگیر با سنسور حرکت PIR
- ایدههای پروژهی مدرسه با آردوینو
سؤالهای رایج
پیچ روی ماژول SW-420 چه کار میکند؟
آستانهی مقایسهگر LM393 را تنظیم میکند، یعنی چقدر لرزش لازم است تا خروجی DO عوض شود. با چرخاندنش حساسیت را کم و زیاد میکنی.
خروجی DO ماژول لرزش هنگام تکان HIGH است یا LOW؟
در ماژولهای مختلف فرق دارد. برای همین بهتر است کد سطح سکون را هنگام روشن شدن یاد بگیرد و هر سطح متفاوت را لرزش حساب کند.
قطعههای دیگرِ سنسورها
سنسور فاصله اولتراسونیک (HC-SR04)
HC-SR04 Ultrasonic Sensor
سنسور دما و رطوبت DHT11 / DHT22
DHT22 / DHT11 Temperature & Humidity Sensor
سنسور نور LDR (فتورزیستور)
Photoresistor (LDR)
سنسور حرکت PIR
PIR Motion Sensor (HC-SR501)
سنسور دما TMP36 / LM35
TMP36 / LM35 Temperature Sensor
سنسور شیب (تیلت)
Tilt Sensor (SW-520D)