آموزش پروژه محور آردوینو – جلسه هشتم ورودی آنالوگ
به نام خدا
آموزش پروژه محور آردوینو – جلسه هشتم ورودی آنالوگ
در این جلسه ابتدا میخواهیم داده های ورودی مبدل آنالوگ به دیجیتال آردوینو را در سریال مانیتور نرم افزار آردوینو نمایش دهیم سپس توسط 8 ال ای دی مانند جلسه چهارم ، پروژه خود را توسعه دهیم و تعداد ال ای دی هایی که روشن هستند را توسط یک پتانسیومتر ( مقاومت متغیر ) کنترل کنیم .
قطعات مورد نیاز :
– 8 عدد ال ای دی
– 8 عدد مقاومت 270 اهم
– یک عدد آی سی بافر 74HC595
– یک عدد مقاومت متغیر 10 کیلو اهم ، مقاومت متغیر مدل های مختلفی دارد مانند شکل های زیر :
به مقاومت های متغیر زیر پتانسیومتر میگویند ، البته اسم دقیق تر مقاومت متغیر شکل وسط مولتی ترن است .
– یک عدد بردبورد
– یک عدد برد آردوینو
– تعدادی سیم
قسمت اول پروژه :
قبل از این که به سراغ ال ای دی ها برویم ، میخواهیم با استفاده از یک مقاومت متغیر مقدار ولتاژ آنالوگ ورودی به مبدل آنالوگ به دیجیتال برد آردوینو را تغییر دهیم و آن را در سریال مانیتور نرم افزار آردوینو نمایش دهیم .
مدار این قسمت پروژه به صورت زیر است :
برنامه زیر برنامه این قسمت از پروژه میباشد :
تاکید میکنم که کد ها را از صفحه سایت کپی نکنید ، از لینک دانلودی که داده شده دانلود کنید .
[maxbutton id=”25″ url=”http://avatrobo.ir/wp-content/uploads/2015/11/1-lesson-8.txt” text=”دانلود فایل” ]
int potPin = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int reading = analogRead(potPin);
Serial.println(reading);
delay(500);
}
حالا سریال مانیتور نرم افزار آردوینو را باز کنید ، تعدادی از عدد ها را میبینید که با چرخاندن مقاومت متغیر ، بین 0 تا 1023 تغییر میکنند که در واقع مقدار دیجیتال ولتاژ آنالوگ خوانده شده توسط آردوینو می باشد . ولتاژ 0 نشان دهنده عدد 0 و ولتاژ 5 نشان دهنده عدد 1023 است .
توسط خط زیر ولتاژ آنالوگ از پین A0 مبدل آنالوگ به دیجیتال برد آردوینو خوانده میشود و در متغیر reading ریخته می شود . این ولتاژ به عددی بین 0 تا 1023 تبدیل می شود .
int reading = analogRead(potPin);
مقاومت های متغیر :
دیدیم که برد آردوینو ، ولتاژ آنالوگ بین 0 تا 5 ولت ما را به عددی بین 0 تا 1023 تبدیل میکند و در سریال مانیتور نمایش می دهد .
پتانسیومتر ها سه پایه دارند . پایه وسط ما به عنوان خروجی استفاده میشود که ولتاژ آن با چرخش پتانسیومتر تغییر میکند ، دو پایه کناری یکی به زمین و دیگری به 5 ولت وصل میشود . پتانسیومتر ما 10 کیلو اهم میباشد . وقتی ما پتانسیومتر را میچرخانیم مقاومت بین پایه وسط و پایه های کناری تغییر میکند اما باید بدانید که همواره مجموع مقاومت بین پایه وسط و پایه سمت راسط به اضافه پایه وسط و پایه سمت راست هموراه ثابت بوده و برای این پتانسیومتر ، 10 کیلو اهم خواهد بود .
قسمت دوم پروژه این جلسه :
حالا 8 عدد ال ای دی را به مدار خود اضافه میکنیم و توسط پتانسیومتر تعداد ال ای دی های روشن را تعیین میکنیم . این ال ای دی ها همان طور که در مدار شکل زیر میبینید توسط مقاومت و یک آی سی 74HC595 درایو میشوند .
کد های برنامه آردوینو این قسمت از پروژه :
برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .
[maxbutton id=”26″ url=”http://avatrobo.ir/wp-content/uploads/2015/11/2-lesson-8.txt” text=”دانلود فایل” ]
بیشتر توضیحات مربوط به کد برنامه این پروزه در جلسه های گذشته گفته شده است .
توسط خط برنامه زیر شماره پین مبدل آنالوگ به دیجیتال آردوینو را مشخص کرده ایم . یعنی به پین شماره 0 مبدل وصل کرده ایم ( A0 ) .
int potPin = 0;
در حلقه اصلی برنامه ، ولتاژ انالوگ را توسط دستور زیر میخوانیم .
int reading = analogRead(potPin);
مقدار ولتاژ خوانده شده به عددی بین 0 تا 1023 تبدیل میشود که ما برای روشن کردن ال ای دی ها میخواهیم آن را به 0 تا 8 تبدیل کنیم . پس مقدار خوانده شده از پین A0 را به عدد 144 تقسیم میکنیم و در متغیر numLEDSLit میریزیم .
int numLEDSLit = reading / 114;
توسط حلقه زیر ، ال ای دی ها را از 0 تا عدد numLEDSLit روشن میکنیم یعنی اگر متغیر numLEDSLit برابر 5 شده بود ، ال ای دی ها از شماره 0 تا 5 روشن خواهند شد .
leds = 0;
for (int i = 0; i < numLEDSLit; i++)
{
bitSet(leds, i);
}
در آخر برنامه ، شیفت رجیستر را به روز رسانی میکنیم .
updateShiftRegister();
تا جلسه بعد خدانگهدار
پست های مرتبط
اردیبهشت 9, 1398
اسفند 5, 1397
بهمن 2, 1397