در این پست از سایت اِمیک, پروژه کنترل سرعت نوشتن متن روی LCD کاراکتری با استفاده از برد اردوینو قرار داده شده است. در این پروژه ما توسط یک ولوم می توانیم سرعت نمایش یک متن روی LCD کاراکتری را کنترل کنیم. در ادامه شماتیک این پروژه را مشاهده می کنید. در این پروژه از برد اردوینو UNO استفاده شده است.
همانطور که مشاهده می کنید, LCD کاراکتری به پین های 7 تا 13 از برد اردوینو UNO متصل شده است. پتانسیومتر RV2 نیز برای تنظیم کنتراست یا میزان روشنایی LCD کاراکتری استفاده شده است.
به وسیله ولوم RV1 می توانید سرعت نمایش متن روی LCD کاراکتری را کنترل کنید. این ولوم به پین A0 از برد اردوینو UNO که در واقع یکی از ورودی های انالوگ ان می باشد, متصل شده است. با تغییر ولوم RV1 ولتاژ روی پین A0 از برد اردوینو بین 0 تا 5 ولت تغییر می کند. ما این ولتاژ را توسط ADC برد اردوینو اندازه گیری می کنیم و با توجه به مقدار این ولتاژ, سرعت نمایش متن روی LCD کاراکتری تنظیم می شود.
تغذیه پروژه بالا را می توانید از خود برد اردوینو بگیرید, به این صورت که برد اردوینو را با استفاده از اداپتور راه اندازی کنید و از پایه های 5V و GND اردوینو برای تغذیه استفاده کنید.
برنامه اردوینو :
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 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> //معرفی کتابخانه ال سی دی کاراکتری// //تابع زیر مشخص می کند که کدام پین های اردوینو به ال سی دی متصل شود// LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); void setup() { analogReference(DEFAULT); //تعیین ولتاژ رفرنس برای کار با واحد انالوگ اردوینو// pinMode(A0, INPUT); //اردوینو A0 ورودی کردن پین// lcd.begin(16, 2); //(LCD بررسي اتصال) LCD پيکره بندي// } void loop() { int i, a; char text[] = {'W', 'W', 'W', '.', 'E', 'M', 'I', 'C', '.', 'I', 'R'}; //درون یک ارایه برای نمایش روی ال سی دی WWW.EMIC.IR قرار دادن حروف عبارت// lcd.clear(); //پاک کردن ال سی دی// for (i = 0; i < 11; i++) { //روبرو 11 بار تکرار مي شود for حلقه// a = analogRead(A0); //می ریزد a اردوینو عددي بين 0 تا 1023 خوانده و درون متغير A0 دستور روبرو با توجه به مقدار ولتاژ انالوگ روي پين// lcd.setCursor(i, 0); //مشخص می کند for دستور روبرو موقعيت نمايش حروف روي ال سي دي را باتوجه به شمارش حلقه// lcd.print(text[i]); //را يکي يکي روي ال سي دي کاراکتري نمايش مي دهد WWW.EMIC.IR حروف عبارت for دستور روبرو با شمارش حلقه// delay(a); //تغییر می کند a يک تاخير زماني ايجاد مي کند. با تغيير پتانسيومتر مقدار متغير a دستور روبرو با توجه به مقدار متغير// } delay(1000 + a); //يک تاخير زماني ايجاد مي کند a دستور روبرو با توجه به مقدار متغير// for (i = 10; i >= 0; i--) { //را که قبلا روي ال سي دي نوشته بوديم يکي يکي پاک مي کند WWW.EMIC.IR روبرو و دستورات درون ان حروف عبارت for حلقه// a = analogRead(A0); lcd.setCursor(i, 0); lcd.print(" "); delay(a); } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل های اردوینو و شبیه سازی پروتئوس برای این پروژه را دانلود کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…