در این سری از پروژه های آموزشی آردوینو، نحوه راه اندازی ماژول Magic Light Cup را مورد بررسی قرار داده ایم. در این بخش از آموزش های آردوینو به دنبال پروژه ای با قابلیت تشخیص لرزش می باشیم. اگر قطعه یا وسیله ای دارید که به محض تکان خوردن آن، می خواهید به شما اطلاع رسانی شود، به شما پیشنهاد می کنیم، پروژه ای که در زیر و سایت الکترونیک98 منتشر گردیده است را مطالعه بفرمائید.
ماژول Magic Light Cup
ماژول Magic Light Cup دارای یک LED قرمز رنگ و یک حباب شیشه ای کوچک که درون آن جیوه قرار دارد. این جیوه همانند یک سوئیچ برای قطع و وصل کردن مدار به کار می رود. یعنی زمانی که ماژول کج می شود چراغ LED دارای شدت نور کمتر یا بیشتر می شود. این ماژول بیشتر برای تشخیص شیب و کجی استفاده می شود از جمله مشخصات و ویژگی های ماژول Magic Light Cup عبارتنداز:
1. محدوده ولتاژ کاری 3.3 ولت تا 5.5 ولت
2. دارای 4 پایه
3. دارای یک LED قرمز رنگ
4. ابعاد 1.5×3.6 سانتی متر
در این پروژه می خواهیم با استفاده از ماژول Magic Light Cup یک مدار هشدار تشخیص بسازیم، به طوری که با انحراف یکی از ماژول ها به سمت چپ یا راست، جیوه همانند یک سوئیچ عمل کرده و با تغییر در شدت نور این تغییرات را به ما اطلاع دهد.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول سوئیچ جیوه ای مدل KY-017 | 2 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال قطعات به یکدیگر و برد آردوینو بسیار راحت و ساده است به طوری که با توجه به شماتیک زیر می توانید به راحتی این اتصالات را انجام دهید.
برنامه نویسی پروژه
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
int ledPinA = 9; int switchPinA = 8; int switchStateA = 0; int ledPinB = 6; int switchPinB = 7; int switchStateB = 0; int brightness = 0; void setup() { pinMode(ledPinA, OUTPUT); pinMode(ledPinB, OUTPUT); pinMode(switchPinA, INPUT); pinMode(switchPinB, INPUT); } void loop() { switchStateA = digitalRead(switchPinA); if (switchStateA == HIGH && brightness != 255) { brightness ++; } switchStateB = digitalRead(switchPinB); if (switchStateB == HIGH && brightness != 0) { brightness --; } analogWrite(ledPinA, brightness); // A slow fade out analogWrite(ledPinB, 255 - brightness); // B slow bright up delay(20); } |