رباتیک و هوافضا

آموزش پروژه محور آردوینو – جلسه هشتم ورودی آنالوگ

جلسه های آموزش پروژه محور آردوینو

به نام خدا

آموزش پروژه محور آردوینو – جلسه هشتم ورودی آنالوگ

در این جلسه ابتدا میخواهیم داده های ورودی مبدل آنالوگ به دیجیتال آردوینو را در سریال مانیتور نرم افزار آردوینو نمایش دهیم سپس توسط ۸ ال ای دی مانند جلسه چهارم ، پروژه خود را توسعه دهیم و تعداد ال ای دی هایی که روشن هستند را توسط یک پتانسیومتر ( مقاومت متغیر ) کنترل کنیم .

circuit

 

قطعات مورد نیاز :

– ۸ عدد ال ای دی

red_led_5mm

 

– ۸ عدد مقاومت ۲۷۰ اهم

R-270-level

 

– یک عدد آی سی بافر ۷۴HC595

74HC595

 

– یک عدد مقاومت متغیر ۱۰ کیلو اهم ، مقاومت متغیر مدل های مختلفی دارد مانند شکل های زیر :

به مقاومت های متغیر زیر پتانسیومتر میگویند ، البته اسم دقیق تر مقاومت متغیر شکل وسط مولتی ترن است .

pot-2

multiturn

pot-20k

 

– یک عدد بردبورد

breadboard_half_web

 

– یک عدد برد آردوینو

uno_r3_web

 

– تعدادی سیم

wire_web

 

قسمت اول پروژه :

قبل از این که به سراغ ال ای دی ها برویم ، میخواهیم با استفاده از یک مقاومت متغیر مقدار ولتاژ آنالوگ ورودی به مبدل آنالوگ به دیجیتال برد آردوینو را تغییر دهیم و آن را در سریال مانیتور نرم افزار آردوینو نمایش دهیم .

مدار این قسمت پروژه به صورت زیر است :

breadboard_1

 

برنامه زیر برنامه این قسمت از پروژه میباشد :

تاکید میکنم که کد ها را از صفحه سایت کپی نکنید ، از لینک دانلودی که داده شده دانلود کنید .

 

دانلود فایل

 

int potPin = 0;
 
void setup() 
{
  Serial.begin(9600);
}
 
void loop() 
{
  int reading  = analogRead(potPin);
  Serial.println(reading);
  delay(500);
}

حالا سریال مانیتور نرم افزار آردوینو را باز کنید ، تعدادی از عدد ها را میبینید که با چرخاندن مقاومت متغیر ، بین ۰ تا ۱۰۲۳ تغییر میکنند که در واقع مقدار دیجیتال ولتاژ آنالوگ خوانده شده توسط آردوینو می باشد . ولتاژ ۰ نشان دهنده عدد ۰ و ولتاژ ۵ نشان دهنده عدد ۱۰۲۳ است .

بیشتر بخوانید...  پروژه ی ساخت قفل امنیتی RFID با استفاده از آردوینو

توسط خط زیر ولتاژ آنالوگ از پین A0 مبدل آنالوگ به دیجیتال برد آردوینو خوانده میشود و در متغیر reading ریخته می شود . این ولتاژ به عددی بین ۰ تا ۱۰۲۳ تبدیل می شود .

     int reading  = analogRead(potPin);

مقاومت های متغیر :

دیدیم که برد آردوینو ، ولتاژ آنالوگ بین ۰ تا ۵ ولت ما را به عددی بین ۰ تا ۱۰۲۳ تبدیل میکند و در سریال مانیتور نمایش می دهد .

پتانسیومتر ها سه پایه دارند . پایه وسط ما به عنوان خروجی استفاده میشود که ولتاژ آن با چرخش پتانسیومتر تغییر میکند ، دو پایه کناری یکی به زمین و دیگری به ۵ ولت وصل میشود . پتانسیومتر ما ۱۰ کیلو اهم میباشد . وقتی ما پتانسیومتر را میچرخانیم مقاومت بین پایه وسط و پایه های کناری تغییر میکند اما باید بدانید که همواره مجموع مقاومت بین پایه وسط و پایه سمت راسط به اضافه پایه وسط و پایه سمت راست هموراه ثابت بوده و برای این پتانسیومتر ، ۱۰ کیلو اهم خواهد بود .

pot

 

قسمت دوم پروژه این جلسه :

حالا ۸ عدد ال ای دی را به مدار خود اضافه میکنیم و توسط پتانسیومتر تعداد ال ای دی های روشن را تعیین میکنیم . این ال ای دی ها همان طور که در مدار شکل زیر میبینید توسط مقاومت و یک آی سی ۷۴HC595 درایو میشوند .

بیشتر بخوانید...  راه اندازی ماژول جی پی اس با رزبری پای

breadboard_2

 

کد های برنامه آردوینو این قسمت از پروژه :

برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .

دانلود فایل

بیشتر توضیحات مربوط به کد برنامه این پروزه در جلسه های گذشته گفته شده است .

توسط خط برنامه زیر شماره پین مبدل آنالوگ به دیجیتال آردوینو را مشخص کرده ایم . یعنی به پین شماره ۰ مبدل وصل کرده ایم ( 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();

تا جلسه بعد خدانگهدار