آردوینو آردوینو Arduino Uno پروژه های آردوینو پکیج سنسور آردوینو

سنسور ضربه knocking sensor از پکیج ۳۷ سنسور آردوینو Arduino

نوشته شده توسط علیرضا قربانی

این ماژول یک سنسور حساس به شوک یا لرزش است که وقتی شوک یا لرزشی را دریافت می کند سیگنالی به میکروکنترلر یا آردوینو ارسال می‌کند ، این ماژول را می توان در سیستم های امنیتی و یا مانیوتورینگ استفاده گرد و  به راحتی می توانید آن را در کنار برد آردوینو یا هر میکروکنترل دیگری استفاده نمایید. همچنین در صنعت از سنسور‌های ضربه یا knocking sensor به منظور شناسایی ضربات مضر وارد بر موتور ماشین استفاده می‌شود. در ادامه با مرجع تخصصی آردوینو به زبان فارسی دیجی اسپارک همراه باشید.

 


سنسور ضربه KY-031


ماژول حسگر ضربه/ضربان KY-031 یک ماژول الکترونیکی است که برای تشخیص ضربات یا تپش‌ها بر روی سطح آن طراحی شده است. این ماژول به طور گسترده‌ای در پروژه‌های الکترونیکی هواخواهانه، نصب و راه‌اندازی‌های تعاملی و سیستم‌های خانه‌هوشمند استفاده می‌شود.این ماژول به طور معمول شامل یک عنصر حسگر کوچک است که می‌تواند ارتعاشات یا ضربات را تشخیص دهد. هنگامی که ضربه‌ای بر روی سطح ماژول وارد می‌شود، حسگر تغییر شتاب یا حرکت را تشخیص می‌دهد و یک سیگنال دیجیتال ارائه می‌دهد که نشان‌دهنده وقوع رویداد است.برخی از ویژگی‌ها و مشخصات کلیدی ماژول حسگر ضربه/ضربان KY-031 ممکن است شامل موارد زیر باشد:

  •  ولتاژ عملیاتی: ۳.۳ ولت تا ۵ ولت DC
  •  خروجی دیجیتال: به طور معمول با مقدار بالا (۱) یا پایین (۰) نشان داده می‌شود
  • تنظیم حساسیت: برخی نسخه‌ها ممکن است دارای یک پتانسیومتر برای تنظیم حساسیت حسگر باشند.
  •  نشانگر LED: برخی ماژول‌ها دارای یک LED داخلی هستند که در هنگام تشخیص ضربه یا ضربان روشن می‌شود.

کاربردهای ماژول حسگر ضربه/ضربان KY-031 شامل:

  •  رابط‌های کاربری مبتنی بر ضربه: می‌توان از آن برای ایجاد کنترل‌های بدون تماس برای دستگاه‌های الکترونیکی یا نصب و راه‌اندازی‌های تعاملی استفاده کرد.
  • سیستم‌های امنیتی: می‌توان از ماژول برای تشخیص ضربه‌ها بر روی درها، پنجره‌ها یا سطوح دیگر استفاده کرده و اعلان یا هشداری را فعال کرد.
  •  خانه هوشمند: می‌توان آن را در سیستم‌های خانه‌هوشمند به منظور فعال کردن اقدامات خاص بر اساس ضربه‌ها یا ضربان‌ها، مانند روشن کردن چراغ‌ها یا فعال‌سازی وسایل برقی، ادغام کرد.
  •  رباتیک: می‌توان آن را در پروژه‌های رباتیک برای تشخیص تعاملات یا ضربه‌ها با سطح ربات استفاده کرد.

 


مشخصات سنسور ضربه و ارتعاش KY-031


  • ولتاژ کاری: ۳٫۳ ولت تا ۵ ولت DC
  • سیگنال خروجی: دیجیتال (سازگار با TTL)
  • خروجی سیگنال: وقتی ضربه‌ای یا لمسی تشخیص داده می‌شود، سیگنال بالا (۱) خروجی داده می‌شود؛ وقتی هیچ ضربه‌ای یا لمسی تشخیص داده نمی‌شود، سیگنال پایین (۰) خروجی داده می‌شود.
  • تنظیم حساسیت: ممکن است ماژول دارای یک پتانسیومتر برای تنظیم حساسیت حسگر باشد. این امکان به کاربران می‌دهد تا حساسیت حسگر را برای واکنش به سطوح مختلف ضربه‌ها یا لمس‌ها بهینه کنند.
  • روش تشخیص: حسگر از یک شتاب‌سنج یا المان پیزوالکتریک برای تشخیص تغییرات شتاب یا حرکت به علت ضربه‌ها یا لمس‌ها بر روی سطح خود استفاده می‌کند.
  • LED نشانگر: برخی نسخه‌های ماژول ممکن است دارای یک LED داخلی باشند که زمانی که یک ضربه یا لمس تشخیص داده می‌شود، روشن می‌شود. این LED نشانگری برای نمایش تصویری عملکرد حسگر است.
  • ابعاد: ماژول به اندازه‌ی کوچک می‌آید و ابعاد آن ممکن است بسته به تولید کننده متغیر باشد. ابعاد معمولی تقریباً (طول x عرض x ارتفاع) ۳۲ میلی‌متر x 14 میلی‌متر x 18 میلی‌متر می‌باشد.

 

 

 

 


بررسی پایه های ماژول ضربه و ارتعاش KY-031


ماژول حسگر ضربه/لمس KY-031 دارای رابط ۳ پین است.

VCC: این پین برای اتصال به منبع تغذیه مثبت ماژول استفاده می‌شود. معمولاً نیاز به ولتاژ در بازه ۳٫۳ ولت تا ۵ ولت DC دارد.

GND: این پین به زمین (۰ ولت) منبع تغذیه متصل می‌شود.

OUT: این پین خروجی دیجیتال ماژول است. زمانی که ضربه‌ای یا لمسی تشخیص داده می‌شود، سیگنال بالا (۱) خروجی داده می‌شود. در غیر اینصورت، سیگنال پایین (۰) خروجی داده می‌شود. این پین می‌تواند به میکروکنترلر یا هر دستگاه ورودی دیجیتال دیگری متصل شود تا خروجی حسگر را بخواند.

 

 


مکانیزم عمل کرد ماژول تشخیص ضربه و ارتعاش


 

 

 

شماتیک داخلی این سنسور در تصویر بالا نمایش داده شده است. این دستگاه به صورت یک سوییچ پیکربندی شده است که در حالت عادی باز است. زمانی که یک ضربه یا شوک به سنسور وارد شود ، تیغه‌هایی که به صورت کلید می‌باشند به هم دیگر برخورد می‌کنند و باعث می‌شود سیگنالی بر روی پین  Output اعمال شود.

همانطور که در تصویر فوق مشاهده می‌کنید در حالت عادی  وضعیت کلید باز است ،پس بر روی پین output سیگنال ۵ ولت وجود دارد. حال هنگامی که به سنسور ضربه وارد شود باعث می‌شود کلیدی که به صورت تیغه‌است بسته شود و بر روی پین output سیگنال ۰ ولت به وجود آید. در واقع می‌توان بیان کرد که  وقتی این سنسور شوک و یا لرزشی دریافت کند پین سیگنال آن LOW  می‌شود.

 


اتصال سنسور تشخیص ضربه به آردوینو


طریقه‌ی اتصال این سنسور به آردوینو در تصویر زیر نمایش داده شده است. حتما توجه داشته باشید که سیم آبی و قرمز از روی همدیگر عبور کرده‌اند.

KY-031-Arduino-Knock-Sensor- سنسور ضربه و شوک آردوینو

KY-031-Arduino-Knock-Sensor- سنسور ضربه و شوک آردوینو

 

 


کد آردوینو 


همانطور که در بالا نیز اشاره شد هنگامی که شوک و لرزشی به این سنسور اعمال شود خروجی این سنسور از وضعیت HIGH به LOW تغییر می‌کند. پس ما باید در برنامه بررسی کنیم که چه زمانی خروجی سنسور به وضعیت LOW می‌رود و پس از LOW شدن خروجی عبارت KNOCK را بر روی سریال مانیتور نمایش دهیم .سپس باید بررسی کنیم که بعد از اعمال شوک چه زمانی ارتعاش سنسور قطع می‌شود و بعد از آن عبارت no knock را بر روی سریال مانیتور نمایش دهیم.کد زیر را بر روی آردوینو خود آپلود کنید  و سپس وارد سریال مانیتور نرم افزار arduino شوید . حال ضربه‌ای به سنسور وارد کنید و نتیجه را بر روی سریال مانیتور نرم افزار مشاهده کنید.

 

//KY-031 Knock Sensor Tutorial

int knockPin = 10; // Use Pin 10 as our Input
int knockVal = HIGH; // This is where we record our shock measurement
boolean bAlarm = false;

unsigned long lastKnockTime; // Record the time that we measured a shock


int knockAlarmTime = 500; // Number of milli seconds to keep the knock alarm high


void setup()
{
	Serial.begin(9600);
	pinMode(knockPin, INPUT); // input from the KY-031
}
void loop()
{
	knockVal = digitalRead(knockPin); // read KY-031 Value

	if (knockVal == LOW) // If we see a knock
	{

		lastKnockTime = millis(); // record the time of the shock
								  // The following is so you don't scroll on the output screen
		if (!bAlarm) {
			Serial.println("KNOCK, KNOCK");
			bAlarm = true;
		}
	}
	else
	{
		if ((millis() - lastKnockTime) > knockAlarmTime  &&  bAlarm) {
			Serial.println("no knocks");
			bAlarm = false;
		}
	}
}

 


تحلیل کد آردوینو


این کد برنامه‌ای است که برای کنترل ماژول حسگر ضربه/لمس KY-031 در میکروکنترلر (Arduino یا مشابه آن) نوشته شده است. هدف این برنامه‌نویسی این است که وقتی حسگر یک ضربه تشخیص می‌دهد، رویداد را ثبت کند و در خروجی سریال اطلاعاتی نمایش دهد.ابتدا اسمبلی پایه‌های مورد استفاده تعریف می‌شود، که از پین ۱۰ به عنوان ورودی ورودی استفاده می‌شود و مقدار اولیه حسگر در وضعیت بالا (HIGH) قرار داده می‌شود.متغیرهایی برای زمان آخرین ضربه تشخیص‌داده‌شده و مدت زمانی که هشدار ضربه‌ها باید روشن باقی بماند (knockAlarmTime) تعریف می‌شود.در تابع setup، پین ورودی به عنوان ورودی حسگر تعیین می‌شود.در تابع loop، مقدار ورودی حسگر توسط دستور digitalRead از پین خوانده می‌شود.اگر مقدار خوانده‌شده از حسگر (knockVal) مساوی با LOW باشد (یعنی حسگر یک ضربه تشخیص داده است)، زمان فعلی را ثبت کرده و اگر هشدار قبلاً نشان داده نشده باشد، در خروجی سریال عبارت “KNOCK, KNOCK” نمایش داده می‌شود.در صورتی که مقدار حسگر HIGH باشد (یعنی هیچ ضربه‌ای تشخیص داده نشده است) و مدت زمانی که از آخرین ضربه‌ای تشخیص داده‌شده گذشته و همچنین هشدار قبلاً نشان داده شده باشد، عبارت “no knocks” در خروجی سریال نمایش داده می‌شود.این برنامه با استفاده از حسگر ضربه/لمس KY-031، ضربه‌های ورودی را تشخیص می‌دهد و اطلاعات آن را در خروجی سریال نمایش می‌دهد. همچنین با استفاده از تایمر (millis())، مدت زمانی که از آخرین ضربه گذشته و باید هشدار نمایش داده شود را کنترل می‌کند.

 

 


سخت افزار مورد نیاز


آردوینو UNO

سنسور ضربه ، ارتعاش و شوک Arduino 

 

 

درباره نویسنده

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

تبادل نظر و رفع عیب با ثبت دیدگاه

۵ دیدگاه