به نام خدا
آموزش پروژه محور آردوینو – جلسه هشتم ورودی آنالوگ
در این جلسه ابتدا میخواهیم داده های ورودی مبدل آنالوگ به دیجیتال آردوینو را در سریال مانیتور نرم افزار آردوینو نمایش دهیم سپس توسط ۸ ال ای دی مانند جلسه چهارم ، پروژه خود را توسعه دهیم و تعداد ال ای دی هایی که روشن هستند را توسط یک پتانسیومتر ( مقاومت متغیر ) کنترل کنیم .
قطعات مورد نیاز :
– ۸ عدد ال ای دی
– ۸ عدد مقاومت ۲۷۰ اهم
– یک عدد آی سی بافر ۷۴HC595
– یک عدد مقاومت متغیر ۱۰ کیلو اهم ، مقاومت متغیر مدل های مختلفی دارد مانند شکل های زیر :
به مقاومت های متغیر زیر پتانسیومتر میگویند ، البته اسم دقیق تر مقاومت متغیر شکل وسط مولتی ترن است .
– یک عدد بردبورد
– یک عدد برد آردوینو
– تعدادی سیم
قسمت اول پروژه :
قبل از این که به سراغ ال ای دی ها برویم ، میخواهیم با استفاده از یک مقاومت متغیر مقدار ولتاژ آنالوگ ورودی به مبدل آنالوگ به دیجیتال برد آردوینو را تغییر دهیم و آن را در سریال مانیتور نرم افزار آردوینو نمایش دهیم .
مدار این قسمت پروژه به صورت زیر است :
برنامه زیر برنامه این قسمت از پروژه میباشد :
تاکید میکنم که کد ها را از صفحه سایت کپی نکنید ، از لینک دانلودی که داده شده دانلود کنید .
دانلود فایل
int potPin = 0; void setup() { Serial.begin(9600); } void loop() { int reading = analogRead(potPin); Serial.println(reading); delay(500); }
حالا سریال مانیتور نرم افزار آردوینو را باز کنید ، تعدادی از عدد ها را میبینید که با چرخاندن مقاومت متغیر ، بین ۰ تا ۱۰۲۳ تغییر میکنند که در واقع مقدار دیجیتال ولتاژ آنالوگ خوانده شده توسط آردوینو می باشد . ولتاژ ۰ نشان دهنده عدد ۰ و ولتاژ ۵ نشان دهنده عدد ۱۰۲۳ است .
توسط خط زیر ولتاژ آنالوگ از پین A0 مبدل آنالوگ به دیجیتال برد آردوینو خوانده میشود و در متغیر reading ریخته می شود . این ولتاژ به عددی بین ۰ تا ۱۰۲۳ تبدیل می شود .
int reading = analogRead(potPin);
مقاومت های متغیر :
دیدیم که برد آردوینو ، ولتاژ آنالوگ بین ۰ تا ۵ ولت ما را به عددی بین ۰ تا ۱۰۲۳ تبدیل میکند و در سریال مانیتور نمایش می دهد .
پتانسیومتر ها سه پایه دارند . پایه وسط ما به عنوان خروجی استفاده میشود که ولتاژ آن با چرخش پتانسیومتر تغییر میکند ، دو پایه کناری یکی به زمین و دیگری به ۵ ولت وصل میشود . پتانسیومتر ما ۱۰ کیلو اهم میباشد . وقتی ما پتانسیومتر را میچرخانیم مقاومت بین پایه وسط و پایه های کناری تغییر میکند اما باید بدانید که همواره مجموع مقاومت بین پایه وسط و پایه سمت راسط به اضافه پایه وسط و پایه سمت راست هموراه ثابت بوده و برای این پتانسیومتر ، ۱۰ کیلو اهم خواهد بود .
قسمت دوم پروژه این جلسه :
حالا ۸ عدد ال ای دی را به مدار خود اضافه میکنیم و توسط پتانسیومتر تعداد ال ای دی های روشن را تعیین میکنیم . این ال ای دی ها همان طور که در مدار شکل زیر میبینید توسط مقاومت و یک آی سی ۷۴HC595 درایو میشوند .
کد های برنامه آردوینو این قسمت از پروژه :
برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .
دانلود فایلبیشتر توضیحات مربوط به کد برنامه این پروزه در جلسه های گذشته گفته شده است .
توسط خط برنامه زیر شماره پین مبدل آنالوگ به دیجیتال آردوینو را مشخص کرده ایم . یعنی به پین شماره ۰ مبدل وصل کرده ایم ( A0 ) .
int potPin = 0;
در حلقه اصلی برنامه ، ولتاژ انالوگ را توسط دستور زیر میخوانیم .
int reading = analogRead(potPin);
مقدار ولتاژ خوانده شده به عددی بین ۰ تا ۱۰۲۳ تبدیل میشود که ما برای روشن کردن ال ای دی ها میخواهیم آن را به ۰ تا ۸ تبدیل کنیم . پس مقدار خوانده شده از پین A0 را به عدد ۱۴۴ تقسیم میکنیم و در متغیر numLEDSLit میریزیم .
int numLEDSLit = reading / 114;
توسط حلقه زیر ، ال ای دی ها را از ۰ تا عدد numLEDSLit روشن میکنیم یعنی اگر متغیر numLEDSLit برابر ۵ شده بود ، ال ای دی ها از شماره ۰ تا ۵ روشن خواهند شد .
leds = 0; for (int i = 0; i < numLEDSLit; i++) { bitSet(leds, i); }
در آخر برنامه ، شیفت رجیستر را به روز رسانی میکنیم .
updateShiftRegister();