در ادامهسری آموزشهای پکیج سنسور آردوینو به راه اندازی Reed switch یا کلید الکترومغناطیسی از این پکیج میپردازیم. در ادامهی آموزش با مرجع تخصصی آردوینو دیجی اسپارک همراه باشید.
Reed Switch چیست؟
reed switch یک نوع کلید الکترومغناطیسی است که با استفاده از میدان مغناطیسی تحریک میشود و پس از تحریک باز یا بسته میشود.در واقع این قطعه شامل یک جفت تیغهی مغناطیسی انعطاف پذیر است که درون محفظهای از گازهای بی اثر فشرده شده و بدون حرکت قرار گرفته است.رید سوئیچ (Reed Switch) یک نوع سوئیچ الکترومغناطیسی است که از اثر مغناطیس استفاده میکند تا باز و بسته شود. این سوئیچها از دو قطعه فلزی نازک، از آلیاژی از عنصرهای نیکل، آهن و کبالت تشکیل شدهاند، که درون یک لوله شیشهای محکم قرار داده شدهاند.هنگامی که یک میدان مغناطیسی نزدیک به این قطعات فلزی ایجاد میشود، این قطعات فلزی به هم متصل میشوند و سوئیچ بسته میشود. همچنین، هنگامی که میدان مغناطیسی حذف میشود، قطعات فلزی از هم جدا میشوند و سوئیچ باز میشود.رید سوئیچها به دلیل ساختار ساده و عملکرد قابل اعتمادشان در بسیاری از برنامهها استفاده میشوند، از جمله در صنایع الکترونیک، خودروسازی، تجهیزات پزشکی، صنایع خانگی و غیره. آنها به عنوان سنسورهای مغناطیسی، سوئیچهای روشنایی، یا در موارد کنترل حرکت و آشکارسازهای امنیتی استفاده میشوند.
انواع Reed switch
کلیدهای مغناطیسی یا reed switch دارای سه نوع مختلف میباشند:
- Normally Open) NO) : که در حالت عادی در وضعیت باز قرار دارند و تحریک مغناطیسی باعث بسته شدن آن میشود.
- Normally Close) NC) : در حالت عادی در وضعیت بسته قرار دارند و تحریک مغناطیسی باعث باز شدن آن می شود.
- کلید سه حالته
- رید سوئیچهای دوطرفه (SPDT): این نوع رید سوئیچها دارای سه طرف (پین) هستند؛ یک طرف (Common)، یک طرف نرمالباز (Normally Open) و یک طرف نرمال-بسته (Normally Closed). زمانی که میدان مغناطیسی نزدیک شود، وضعیت سوئیچ تغییر میکند و یکی از طرفین بسته میشود و دیگری باز میشود.
- رید سوئیچهای نرمالباز (SPST-NO): این نوع رید سوئیچها فقط دارای دو طرف هستند؛ یک طرف نرمالباز و یک طرف بسته میباشد. زمانی که میدان مغناطیسی نزدیک میشود، طرف نرمالباز بسته میشود.
- رید سوئیچهای نرمال-بسته (SPST-NC): این نوع رید سوئیچها نیز دارای دو طرف هستند؛ یک طرف نرمال-بسته و یک طرف باز میباشد. هنگامی که میدان مغناطیسی نزدیک میشود، طرف نرمالبسته باز میشود.
- رید سوئیچهای فرم A و فرم B: این دو نوع به معنای تحمل جریان مختلف هستند. رید سوئیچهای فرم A جریانهای کمتری را تحمل میکنند، در حالی که رید سوئیچهای فرم B برای جریانهای بیشتری مناسب هستند.
- رید سوئیچهای مخصوص تماس مغناطیسی: این نوع رید سوئیچها برای ایجاد تماس مغناطیسی در برقراری اتصالات الکتریکی استفاده میشوند، مانند استفاده در ریلهها و تجهیزات الکترونیکی.
سخت افزا مورد نیاز
Reed Switch از پکیج سنسور آردوینو
مزایا و معایب سنسور reed switch یا کلید الکترومغناطیسی
از مزایای این محصول میتوان به قیمت پسیار پایین ، مقدار جریان مصرفی بسیار کم و عمر زیاد اشاره کرد. ولی در مقابل سرعت پاسخ پایین قطعه یکی از معایب reed switch محسوب میشود.همانطور که در شکل زیر مشاهده میکنید مکانیز عملکرد به این صورت است که هنگامی یک آهنربا ( یا میدان مغناطیسی) به کلید نزدیک شود ، دو عدد کنتاکت مغناطیسی به همدیگر میچسبند و هنگامی که آهنربا از کلید دور میشود ، دو کنتاکت نیز از همدیگر جدا میشود.
پینهای ماژول reed switch
کلید الکترومغناطیسی که در اخیتار شماست دارای چهار پین به شرح زیر میباشد:
- پین G : این پین مربوط به Ground ماژول میباشد و به GND آردوینو متصل میشود.
- پین + : این پین مربوط به تغذیه ماژول میباشد و به مثبت ۵ ولت DC متصل میشود.
- پین DO : مربوط به خروجی دیجیتال ماژول است . در حالت طبیعی خروجی این پین LOW میباشد و در صورتی که آهنربا به Reed Switch نزدیک شود وضعیت آن به HIGH تغییر میکند.
- پین AO : این پین مروبط خروجی آنالوک ماژول است و در حالت عادی اگر این پین را به وسیله ADC آردوینو بخوانیم دارای مقدار ۱۰۲۳ میباشد و هنگامی که آهنربا به کلید نزدیک شود مقدار آن تقریبا برابر ۱۰ الی ۳۰ میشود.
اتصال ماژول Reed switch به آردوینو
کد آردوینو read switch
برنامهی اول: که تنها از پین دیجیتال ماژول reed switch یعنی پین DO استفاده میکند و در صورتی که آهنربا یا میدان مغناطیسی به کلید نزدیک شود ، LED روی بورد آردوینو روشن میشود .این کد یک برنامهی ساده برای کنترل یک LED با استفاده از یک سنسور Reed Switch (سوئیچ رید) است. Reed Switch یک سنسور مغناطیسی است که وقتی به آن نزدیک میدان مغناطیسی اعمال میشود، وضعیت آن تغییر میکند و برنامه میتواند این تغییر را تشخیص دهد و به متناسب با آن، LED را روشن یا خاموش کند.ابتدا پینهای ورودی و خروجی مورد نیاز برای LED و سنسور Reed Switch تعریف میشوند. در این مثال، پین ۱۳ به عنوان خروجی برای LED و پین ۲ به عنوان ورودی برای سنسور Reed Switch تعیین شدهاند.تابع setup() در ابتدای اجرای برنامه فقط یکبار اجرا میشود و تنظیمات اولیه را انجام میدهد. در این تابع، پین LED به عنوان خروجی (OUTPUT) و پین سنسور Reed Switch به عنوان ورودی (INPUT) تعیین میشوند.تابع loop() بهصورت بینهایت اجرا میشود و محتویات آن به صورت مکرر اجرا میشوند.در این تابع، مقدار وضعیت سنسور Reed Switch به متغیر val اختصاص داده میشود. تابع digitalRead(buttonpin) ارزش لجیکی (HIGH یا LOW) حاکم بر وضعیت سنسور را خوانده و در متغیر val ذخیره میکند.اگر وضعیت سنسور Reed Switch برابر با HIGH باشد (به این معنا که میدان مغناطیسی به سنسور اعمال شده است)، آنگاه LED با استفاده از دستور digitalWrite(Led, HIGH) روشن میشود.در غیر اینصورت (اگر وضعیت سنسور Reed Switch برابر با LOW باشد)، LED با استفاده از دستور digitalWrite(Led, LOW) خاموش میشود.این کد یک نمونه ساده از کاربرد سنسور Reed Switch در کنترل یک LED است. هنگامی که میدان مغناطیسی نزدیک سنسور شود، LED روشن میشود و هنگامی که میدان مغناطیسی حذف شود، LED خاموش میشود.
int Led = 13; // define LED Interface int buttonpin = 2; // define the Reed sensor interfaces int val; // define numeric variables val void setup() { pinMode(Led, OUTPUT); // define LED as output interface pinMode(buttonpin, INPUT); // output interface as defined Reed sensor } void loop() { val = digitalRead(buttonpin); // digital interface will be assigned a value of 2 to read val if (val == HIGH) // When the Reed sensor detects a signal, LED flashes { digitalWrite(Led, HIGH); } else { digitalWrite(Led, LOW); } }
برنامهی دوم: در این برنامه علاوه بر خواندن پین دیجیتال یا همان DO ، پین خروجی آنالوگ ماژول (AO ) نیز خوانده میشود و مقدار آن بر روی سریال مانیتور نرم افزار arduino نمایش داده میشود.
int digital = 2; int analog = 0; void setup() { pinMode(digital, INPUT); Serial.begin(9600); } void loop() { Serial.print(digitalRead(digital)); Serial.print("-"); Serial.println(analogRead(analog)); delay(250); }
این کد یک برنامهی ساده برای خواندن و نمایش مقادیر دیجیتال و آنالوگ از پینهای مشخص شده است. این کد از سنسورها و مدارهای دیجیتال و آنالوگ برای خواندن اطلاعات استفاده میکند و مقادیر خواندهشده را به کمک سریال مانیتور (Serial Monitor) نمایش میدهد.ابتدا دو متغیر به نام digital و analog به ترتیب با مقدار ۲ و ۰ تعریف میشوند. این متغیرها نشاندهندهی شماره پینهایی هستند که از آنها میخواهیم دادهها را بخوانیم.تابع setup() در ابتدای اجرای برنامه فقط یکبار اجرا میشود و تنظیمات اولیه را انجام میدهد. در این تابع، پین دیجیتال به عنوان ورودی (INPUT) تعیین میشود و متناسب با تعیین کردن سرعت ارتباط سریال (Serial)، اتصال با مانیتور سریال برقرار میشود. سرعت ارتباط ۹۶۰۰ بیت بر ثانیه (bps) در اینجا تعیین شده است.تابع loop() بهصورت بینهایت اجرا میشود و محتویات آن به صورت مکرر اجرا میشوند.در این تابع، مقدار وضعیت دیجیتال (۰ یا ۱) به کمک تابع digitalRead(digital) خوانده میشود و با استفاده از تابع Serial.print() نمایش داده میشود. سپس یک خط (-) اضافه میشود.سپس مقدار آنالوگ به کمک تابع analogRead(analog) خوانده میشود و با استفاده از تابع Serial.println() نمایش داده میشود. در این حالت، از Serial.println() استفاده شدهاست تا بعد از هر نمایش مقدار آنالوگ، کرنترل به خط بعدی بروید.با دستور delay(250) یک تاخیر زمانی ۲۵۰ میلیثانیهای تعیین شدهاست تا نمونهبرداری از مقادیر دیجیتال و آنالوگ با تعداد معینی از میلیثانیه انجام شود و اطلاعات به صورت منظم به مانیتور سریال نمایش داده شود.به طور خلاصه، این کد به صورت مکرر و در بازههای ۲۵۰ میلیثانیهای وضعیت دیجیتال (۰ یا ۱) و مقدار آنالوگ خوانده شده از پینهای مشخص شده را نمایش میدهد.
معمولا کلید هارو برای این که اگه در حالت های خاص قرار بگیرند بشه به صورت دستی کنترلشون کرد طراحی میکنن! حالا اگه یه بار مغناطیسی ای روی این سیستم ایجاد بشه سیستم از کار می افته یا وارد یه لوپ میشه؟
اگر یک بار مغناطیسی بیفته علاوه بر این که در برنامه مشکل پیش میاد بر روی میکروکنترلر هم اثر گزاشته و کار اون مختل میکنه
سلام، استاد عزیز بابت زحمتی که کشیدی خیلی ممنون.
با سلام
از ارایه بازخورد شما سپاسگزارم.
سلام جناب قربانی مزاحم شدم یوال داشتم ریدرله ها در اینترنت سرچ میکنم همه دهنه باز دارن و با اهن ربا بسته میشوددر اسانسور رید لچ استفاده میشود ایا بااین رید فرق میکند یا هم که در بازا موجود هست میشود تچ کرد ممنون میشوم راهنمایی کنید
افرین بهت افتخار میکنم دمت گرم
از توجه شما ممنونم.
بسیار عالی و کاربردی
سپاس از همراهی شما