
بخش ۳-۱ راه اندازی سنسور مادون قرمز (اینفرارد یا IR) با برد آردوینو
۱۲ بهمن ۱۳۹۷
بخش ۳-۳ راه اندازی سنسور دما DS18D20 توسط آردوینو و نمایش آن بروی LCD
۱۲ بهمن ۱۳۹۷نوشتن اعداد بر روی LCD با برد آردوینو و دیپ سویچ
در این مقاله میخواهیم اعداد را بر روی یک LCD نمایش داده و با استفاده از دو میکروسوییچ اعداد را کم و زیاد کنیم. برای این منظور به قطعات زیر نیاز داریم:
۱- برد آردوینو
۲- پتاسیومتر
۳- دو عدد دیپ سوئیچ
۴- LCD
۵- دو عدد مقاومت
۶- برد بورد به همراه سیم برد
نحوه اتصالات در نرم افزار fritzing را در شکل زیر مشاهده میکنید:
![Deepswitch[robotmakers.ir]](https://robotmakers.ir/wp-content/plugins/wp-fastest-cache-premium/pro/images/blank.gif)
نحوه اتصالات برای نوشتن اعداد بر روی LCD با برد آردوینو و دیپ سویچ
نکات مهم
۱- برای اتصال یک LCD به آردوینو به ۶ تا پین دیجیتال نیاز میباشد که باید آنها به صورت خروجی تعریف شوند. در جدول زیر شماره پایههای متصل را میتوانید مشاهده نمایید:
![TableLCD[robotmakers.ir]](https://robotmakers.ir/wp-content/plugins/wp-fastest-cache-premium/pro/images/blank.gif)
۲- برای تنظیم نور صفحه LCD باید یک پتانسیومتر به LCD وصل کنیم. این پتانسیومتر سه پایه دارد. پایه اول یا سوم (از هر طرفی که بخوانید) را به VCC و زمین متصل میکنیم. پایه دوم که مهمترین پایه میباشد را به پایه شماره سه LCD متصل کنید. نقشه نصب شماتیک LCD به صورت شکل زیر است:
![LCD_schematic[robotmakers.ir]](https://robotmakers.ir/wp-content/plugins/wp-fastest-cache-premium/pro/images/blank.gif)
نقشه نصب شماتیک LCD و دیپ سویچ
برنامه آردوینو
در ایتدا بخش کتابخانه مربوط به کنترل LCD را فراخوانی کرده و تابعی که LCD را کنترل میکند فراخوانی میکنیم. پایههای ۲ و ۷ را به LCD اختصاص میدهیم و سایر متغیرها را تعریف میکنیم. بطوریکه متغییر inc را برای دیپ سوئیچ افزاینده و متغییر dec را به دیپ سوئیچ کاهنده مربوط میسازیم. متغییرهای بعدی که با اندیس 1 هستند مربوط به افزاینده و اندیس 2 مربوط به کاهنده است و count هم متغیر اولیه میباشد که مقدارش صفر است.
/* Robot Makers Designed By : Mohammad Taghvaei Objective : To an Up Down Counter on LCD screen microswich*/ #include <LiquidCrystal.h> LiquidCrystal lcd(2,3,4,5,6,7); int inc = 8; int dec = 9; int initialstate1; int finalstate1; int initialstate2; int finalstate2; int count = 0;
در این بخش از کد که تنها یکبار تکرار میشود (void setup) برای LCD شانزده ستون و دو ردیف تعریف میکنیم. سپس محل نمایش اعداد بر روی LCD را مشخص خواهیم کرد lcd.setCursor(0,0)). به علاوه میخواهیم عبارت داخل ” ” هم بروی LCD نمایش داده شود و سپس در سطر ۲ و ستون ۱ متغیر count نمایش داده میشود.
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("counter : ");
lcd.setCursor(0,1);
lcd.print(count);
}
کد دییپ سویچ افزاینده
void loop()
{
// Increment Part
finalstate1 = digitalRead(inc);
if(finalstate1 != initialstate1)
{
delay(10);
finalstate1 = digitalRead(inc);
{
if(finalstate1 == HIGH)
{
count++;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("counter : ");
lcd.setCursor(0,1);
lcd.print(count);
}
}
initialstate1 = finalstate1;
}
کد دیپ سویچ کاهنده
// Decrement part
finalstate2 = digitalRead(dec);
if(finalstate2 != initialstate2)
{
delay(10);
finalstate2 = digitalRead(dec);
{
if(finalstate2 == HIGH)
{
count--;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("counter : ");
lcd.setCursor(0,1);
lcd.print(count);
}
}
initialstate2 = finalstate2;
}
}
تهیه کننده: مهندس تقوایی – مهندس پاینده

4 Comments
با سلام
ببخشید intinalState و finalState کارشون چیه؟
سلام.
توی فیلم پایین مقاله توضیح داده شده. لطفا فیلم رو مشاهده کنید.
بسیار عالی
ببخشید فیلم به مشکل خورده است
پخش نمیکند