ماژول سنسور ضربه و ضربهزن
(Tap/Knock Sensor Module)
حسگر تشخیص ضربه، تپ و لرزش
سنسور ضربه/تپ (Tap/Knock Sensor): حسگر ساده اما موثر برای تشخیص ضربههای فیزیکی و تعامل لمسی
ماژول سنسور ضربه و تپ یک حسگر پیزوالکتریک یا MEMS است که تشخیص ضربه، تپ (ضربه آرام)، لرزش و ضربات فیزیکی را ممکن میسازد. این ماژول برای پروژههای تعاملی، سیستمهای امنیتی، اسباببازیهای هوشمند و رابطهای کاربری فیزیکی ایدهآل است.
اصول کار و تکنولوژی
۱. سنسور پیزوالکتریک (رایجتر):
-
اثر پیزوالکتریک: تولید ولتاژ در اثر تنش مکانیکی.
-
ساختار: کریستال پیزو که در پاسخ به فشار یا ضربه ولتاژ تولید میکند.
۲. سنسور MEMS شتابسنج:
-
شناسایی شتاب: تشخیص تغییر سرعت ناشی از ضربه.
-
حساسیت بالا: قادر به تشخیص ضربههای بسیار ملایم.
ویژگیهای کلیدی و مزایا
-
حساسیت قابل تنظیم: پتانسیومتر برای تنظیم آستانه حساسیت به ضربه.
-
خروجی دوگانه:
-
DO (دیجیتال): خروجی HIGH/LOW برای تشخیص ساده.
-
AO (آنالوگ): خروجی متناسب با شدت ضربه (در برخی مدلها).
-
-
پاسخ سریع: زمان پاسخ کمتر از ۱ میلیثانیه.
-
مصرف انرژی پایین: در حالت عادی کم مصرف.
-
نصب آسان: چسباندن روی سطوح مختلف.
مشخصات فنی (مدل پیزوالکتریک رایج)
| پارامتر | مشخصات فنی |
|---|---|
| ولتاژ کاری | ۳.۳ تا ۵ ولت DC |
| جریان مصرف | < ۱ میلیآمپر (غیرفعال)، ≈ ۵mA (فعال) |
| سنسور | المنت پیزوالکتریک (قطر معمولی: ۱۵-۲۷mm) |
| ولتاژ خروجی پیزو | تا ۲۰V پیک (نیاز به مدار محدودکننده) |
| خروجی دیجیتال | TTL (HIGH/LOW) – فعال با پتانسیومتر |
| خروجی آنالوگ | ۰-۵V (متناسب با شدت ضربه – در مدلهای پیشرفته) |
| فرکانس پاسخ | ۰.۱Hz تا ۱۰kHz |
| دمای کاری | -۲۰°C تا +۷۰°C |
| حساسیت | قابل تنظیم با پتانسیومتر چنددور |
پینهای ماژول
| پین ماژول | نام | عملکرد |
|---|---|---|
| VCC | تغذیه | ۳.۳V یا ۵V |
| GND | زمین | اتصال زمین |
| DO | خروجی دیجیتال | HIGH=تشخیص ضربه، LOW=عادی |
| AO | خروجی آنالوگ | سیگنال آنالوگ (در مدلهای دارای این قابلیت) |
| سنسور | کانکتور ۲ پین | اتصال به سنسور پیزو (معمولاً سیمهای قرمز/سیاه) |
اتصال و کد نمونه (حالت دیجیتال)
// اتصال ساده - حالت دیجیتال // VCC -> 5V // GND -> GND // DO -> پین دیجیتال (مثلاً D2) const int knockPin = 2; int knockState = 0; int knockCount = 0; unsigned long lastKnockTime = 0; const int debounceDelay = 50; // زمان دبانس (میلیثانیه) void setup() { pinMode(knockPin, INPUT); Serial.begin(9600); Serial.println("سنسور ضربه آماده است..."); } void loop() { knockState = digitalRead(knockPin); if (knockState == HIGH) { // بررسی دبانس برای جلوگیری از شمارش چندباره if (millis() - lastKnockTime > debounceDelay) { knockCount++; Serial.print("ضربه شماره: "); Serial.println(knockCount); // تشخیص الگوهای ضربه (مثلاً ۲ ضربه سریع) lastKnockTime = millis(); // فعال کردن یک عمل (مثلاً روشن کردن LED) digitalWrite(LED_BUILTIN, HIGH); delay(100); digitalWrite(LED_BUILTIN, LOW); } } // ریست شمارنده هر ۵ ثانیه if (millis() - lastKnockTime > 5000 && knockCount > 0) { Serial.println("ریست شمارنده..."); knockCount = 0; } }
کد پیشرفته: تشخیص الگوی ضربه (مثل کد مخفی)
const int knockPin = 2; const int maxKnocks = 10; int knockPattern[maxKnocks]; int knockIndex = 0; unsigned long lastKnock = 0; const int knockTimeout = 2000; // زمان انتظار برای الگو (میلیثانیه) // الگوی مخفی: کوتاه-کوتاه-بلند (مثل: تاپ-تاپ-تاپ___) int secretPattern[] = {1, 1, 3}; // 1=کوتاه, 3=بلند int secretLength = 3; void setup() { pinMode(knockPin, INPUT); Serial.begin(9600); Serial.println("سیستم تشخیص الگوی ضربه آماده است..."); } void loop() { if (digitalRead(knockPin) == HIGH) { unsigned long knockTime = millis(); unsigned long interval = knockTime - lastKnock; lastKnock = knockTime; // طبقهبندی ضربه (کوتاه یا بلند) if (interval > 50 && interval < 1000) { int knockType = (interval < 300) ? 1 : 2; // 1=کوتاه, 2=بلند if (knockIndex < maxKnocks) { knockPattern[knockIndex] = knockType; knockIndex++; Serial.print("ضربه نوع: "); Serial.print(knockType == 1 ? "کوتاه" : "بلند"); Serial.print(" | فاصله: "); Serial.println(interval); } } delay(50); // دبانس } // بررسی الگو اگر زمان گذشته باشد if (millis() - lastKnock > knockTimeout && knockIndex > 0) { checkPattern(); resetPattern(); } } void checkPattern() { Serial.print("الگوی وارد شده: "); for (int i = 0; i < knockIndex; i++) { Serial.print(knockPattern[i]); Serial.print(" "); } Serial.println(); // مقایسه با الگوی مخفی if (knockIndex == secretLength) { bool correct = true; for (int i = 0; i < secretLength; i++) { if (knockPattern[i] != secretPattern[i]) { correct = false; break; } } if (correct) { Serial.println("✅ الگو صحیح! در باز شد!"); // فعال کردن رله، سروو یا ... } else { Serial.println("❌ الگو نادرست!"); } } } void resetPattern() { knockIndex = 0; for (int i = 0; i < maxKnocks; i++) { knockPattern[i] = 0; } }
کاربردهای خلاقانه
-
قفلهای مخفی: باز کردن در با الگوی ضربه خاص (مانند فیلمها).
-
کنترل لمسی: کنترل دستگاهها با تپهای مختلف (مثلاً ۲ بار تپ برای روشن کردن).
-
ساخت درام الکترونیکی: تشخیص ضربه به سطوح مختلف.
-
سیستمهای امنیتی: تشخیص ضربه به پنجره، درب یا دیوار.
-
اسباببازیهای تعاملی: عروسکهای پاسخگو به ضربه.
-
دستگاههای ورزشی: شمارش ضربات (مثل درازونشست).
-
رابطهای هنری: ساخت سازهای دیجیتال.
نکات حیاتی برای عملکرد بهینه
⚠️ نصب صحیح: سنسور پیزو را محکم و با چسب روی سطح مورد نظر بچسبانید. نصب شل باعث کاهش حساسیت میشود.
🔧 تنظیم حساسیت: پتانسیومتر را طوری تنظیم کنید که فقط ضربههای مورد نظر را تشخیص دهد.
🔌 مقاومت Pull-down: در برخی مدارات، نیاز به مقاومت Pull-down (۱۰kΩ) روی پایه DO است.
🌡️ دمای محیط: سنسورهای پیزو در دمای بسیار بالا ممکن است دقت کمتری داشته باشند.
📏 محل نصب: برای تشخیص بهتر، روی سطوح صلب و محکم نصب شود. سطوح نرم (مثل فرش) ضربه را جذب میکنند.
پروژه عملی: درام الکترونیکی با ۸ پد
قطعات:
-
۸ عدد ماژول سنسور ضربه
-
آردوینو MEGA (پینهای زیاد)
-
ماژول SD کارت برای ضبط
-
بلندگو یا آمپلیفایر صوتی
-
پدهای فلزی یا چوبی
نحوه کار: هر ضربه به یک پد، نت موسیقی خاصی را از کارت SD پخش میکند. امکان ضبط و ریتمگذاری وجود دارد.
مقایسه با سایر سنسورهای حرکتی/لمسی
| سنسور | سنسور ضربه (پیزو) | سنسور لمس خازنی | سنسور فشار (FSR) | میکروفون |
|---|---|---|---|---|
| نحوه تشخیص | تنش مکانیکی | تغییر ظرفیت خازنی | مقاومت در برابر فشار | امواج صوتی |
| حساسیت | بالا (ضربههای ملایم) | بالا (لمس سطحی) | متوسط (فشار مستقیم) | بسیار بالا |
| نصب | پشت سطوح (مخفی) | روی سطح (لمس مستقیم) | روی سطح | نزدیک منبع صدا |
| مقاومت | بسیار بادوام | حساس به رطوبت | فرسایش با زمان | حساس به نویز |
| هزینه | ⭐⭐⭐ (متوسط) | ⭐⭐⭐⭐ (کم) | ⭐⭐ (گران) | ⭐⭐⭐ (متوسط) |
سوالات متداول (FAQ)
✅ آیا میتواند ضربههای بسیار ملایم را تشخیص دهد؟
بله، با تنظیم حساسیت روی ماکزیمم، حتی تپهای بسیار آرام با ناخن را نیز تشخیص میدهد.
✅ تفاوت این سنسور با ویبریشن سنسور چیست؟
سنسور ضربه برای ضربههای لحظهای بهینه شده. ویبریشن سنسور برای لرزشهای ممتد (مثل موتور) مناسبتر است.
✅ آیا به ضربه مستقیم نیاز دارد؟
خیر. سنسور پشت سطح نصب میشود و ارتعاش منتقل شده از ضربه به سطح را تشخیص میدهد.
✅ چگونه برای پنجره ضد سرقت استفاده کنم؟
سنسور را به قاب پنجره بچسبانید. هر ضربه به شیشه، ارتعاش را به قاب و سپس سنسور منتقل میکند.
✅ آیا میتوان چند سنسور را به یک پین متصل کرد؟
خیر. هر سنسور نیاز به پین مجزا دارد. برای تعداد زیاد از مولتیپلکسر آنالوگ/دیجیتال استفاده کنید.
✅ طول عمر سنسور چقدر است؟
سنسورهای پیزو طول عمر بسیار بالایی دارند (میلیونها ضربه). اما سیمهای اتصال ممکن است با زمان شل شوند.
✅ آیا برای تشخیص صدا هم کار میکند؟
به طور محدود. سنسورهای پیزو میتوانند صداهای بم و قوی را تشخیص دهند اما برای صداهای معمولی میکروفون مناسبتر است.
چرا این ماژول را از ما بخرید؟
✅ سنسور با کیفیت: استفاده از دیسک پیزوالکتریک با کیفیت بالا و پایداری طولانیمدت.
✅ مدار محافظ: مدارهای محدودکننده ولتاژ و فیلتر نویز برای عملکرد مطمئن.
✅ تست کامل: تست حساسیت، دامنه تشخیص و استقامت مکانیکی.
✅ پشتیبانی فنی: ارائه کدهای الگوی پیشرفته، نقشه نصب و راهنمای تنظیم.
پکیج پیشنهادی برای پروژههای تعاملی
-
ماژول سنسور ضربه (۵ عدد)
-
آردوینو نانو/UNO با کابل USB
-
سوکت سیم سنسور (برای اتصال راحتتر)
-
چسب دوطرفه صنعتی (برای نصب محکم)
-
بازر پیزو (برای بازخورد صوتی)
-
الایدیهای رنگی (برای بازخورد بصری)
نحوه انتخاب و نصب
-
برای تشخیص ضربه محکم: حساسیت را روی مقدار متوسط تنظیم کنید.
-
برای تشخیص تپ آرام: حساسیت را روی ماکزیمم تنظیم کنید.
-
نصب: سنسور را با چسب اپوکسی یا دوطرفه قوی در مرکز سطح بچسبانید.
-
سیمکشی: از سیمهای نازک و انعطافپذیر استفاده کنید تا انتقال ارتعاش کم شود.









ترانزیستورها
خازنها
دیودها
رگولاتورها
مقاومتها
کریستال و اسیلاتور
مدارات مجتمع
ابزارها
تجهیزات
تجهیزات لحیمکاری
مولتیمتر و ابزار اندازهگیری
منبع تغذیه و باتری
تستر