خانه » دانشنامه‌ها » دانشنامه آردوینو » اسکرول کردن متن LCD با آردوینو
  1. خانه
  2. »
  3. دانشنامه‌ها
  4. »
  5. دانشنامه آردوینو
  6. »
  7. اسکرول کردن متن LCD با آردوینو

اسکرول کردن متن LCD با آردوینو

بازدید: 669

اسکرول کردن متن LCD با آردوینو

بجای نمایش متن در یک مکان ثابت بر روی LCD، می‌توان متن را برروی صفحه نمایش LCD اسکرول کرد. زیررشته‌ها با حداکثر ۱۶ کاراکتر چاپ‌شده و ستون شروع نمایش از سمت راست به چپ منتقل می‌شود. هنگامی‌که اولین زیررشته ۱۶ کاراکتری برروی LCD نمایش داده شد، اولین کاراکتر حذف و کاراکتر جدید بعدی به متن اضافه می‌شود. این فرآیند حذف یک کاراکتر و اضافه کردن کاراکتر دیگر تکرار می‌شود. متن نوشته‌شده در کدهای نوشته‌شده در  IDE آردوینو بر روی LCD نمایش داده می‌شود.

				
					#include <LiquidCrystal.h> // include the LiquidCrystal library
int LCDcol = 16; // number of LCD columns
int LCDrow = 4; // number of LCD rows
LiquidCrystal lcd(2,3,4,5,6,7); // define LCD pins RS, E and D4 to D7
int first; // position of first letter in 16 character substring
int last = 0; // position of last letter in 16 character substring
int row = 1; // row of LCD to display text
int col;
String text = "The quick brown fox jumps over the lazy dog \
contains every letter of the alphabet."; // line continuation with \
// character
void setup()
{
lcd.begin(LCDcol, LCDrow); // define LCD dimensions
text = text + " "; // add space at end of text as a buffer
}
void loop()
{
if(last>text.length()+15) last=1; // set first column of substring
if(last<17) first = 0; // substring<17 characters, start character =0
else first = last-16; // substring>=17 chars, start char = last-16
if(last>16) col = 0; // substring>16 characters, start column = 0
else col = 16-last; // substring<=16 chars, start col = last-16
lcd.setCursor(col,row); // set cursor position
lcd.print(text.substring(first, last)); // print substring
last = last +1; // increment last
delay(250); // delay 250ms
}

				
			

هنگامی‌که بیش‌تر از یک شرط وجود داشته باشد که نتیجه هرکدام متفاوت باشد، دستور if else کارآمدتر از دو دستور ()if است. برای مثال، اگر چهار شرط متفاوت وجود داشته باشد، که هرکدام نتیجه خاص خود را دارد چهار دستور زیر :

				
					if (condition A is true) outcome A
else if (condition B is true) outcome B
else if (condition C is true) outcome C
else outcome D // if conditions A, B and C are not true, then outcome 

				
			

  از این دستورات کارآمدتر هستند:

				
					if (condition A is true) outcome A
if (condition B is true) outcome B
if (condition C is true) outcome C
if (condition D is true) outcome D	

				
			

هنگامی‌که یک شرط else if درست باشد، بجای بررسی همه دستورات else باقی‌مانده، کد به دستور بعدی می‌رود که کارآیی بیش‌تری نسبت به بررسی هر دستور if در یک مجموعه از دستورات if دارد. برای مثال، اگر شرط B درست باشد، نیازی به بررسی شرط C نیست.

تابع ()text.length طول رشته text را مشخص می‌کند. تابع text.substring(first, last) یک زیرمجموعه متشکل از اولین تا آخرین کاراکتر متن را ایجاد می‌کند.

نظرتان را درباره این مقاله بگویید 4 نظر

اسکرول کردن متن LCD با آردوینو

با ثبت نظر و نوشتن کامنت، تیم ما را در راستای بهبود و افزایش کیفیت محتوا یاری خواهید کرد :)

فهرست مطالب

مقالات مرتبط

بروزترین مقالات

این مقاله را با دوستانتان به اشتراک بگذارید!

اسکرول کردن متن LCD با آردوینو

فهرست مطالب

اسکرول کردن متن LCD با آردوینو

بجای نمایش متن در یک مکان ثابت بر روی LCD، می‌توان متن را برروی صفحه نمایش LCD اسکرول کرد. زیررشته‌ها با حداکثر ۱۶ کاراکتر چاپ‌شده و ستون شروع نمایش از سمت راست به چپ منتقل می‌شود. هنگامی‌که اولین زیررشته ۱۶ کاراکتری برروی LCD نمایش داده شد، اولین کاراکتر حذف و کاراکتر جدید بعدی به متن اضافه می‌شود. این فرآیند حذف یک کاراکتر و اضافه کردن کاراکتر دیگر تکرار می‌شود. متن نوشته‌شده در کدهای نوشته‌شده در  IDE آردوینو بر روی LCD نمایش داده می‌شود.

				
					#include <LiquidCrystal.h> // include the LiquidCrystal library
int LCDcol = 16; // number of LCD columns
int LCDrow = 4; // number of LCD rows
LiquidCrystal lcd(2,3,4,5,6,7); // define LCD pins RS, E and D4 to D7
int first; // position of first letter in 16 character substring
int last = 0; // position of last letter in 16 character substring
int row = 1; // row of LCD to display text
int col;
String text = "The quick brown fox jumps over the lazy dog \
contains every letter of the alphabet."; // line continuation with \
// character
void setup()
{
lcd.begin(LCDcol, LCDrow); // define LCD dimensions
text = text + " "; // add space at end of text as a buffer
}
void loop()
{
if(last>text.length()+15) last=1; // set first column of substring
if(last<17) first = 0; // substring<17 characters, start character =0
else first = last-16; // substring>=17 chars, start char = last-16
if(last>16) col = 0; // substring>16 characters, start column = 0
else col = 16-last; // substring<=16 chars, start col = last-16
lcd.setCursor(col,row); // set cursor position
lcd.print(text.substring(first, last)); // print substring
last = last +1; // increment last
delay(250); // delay 250ms
}

				
			

هنگامی‌که بیش‌تر از یک شرط وجود داشته باشد که نتیجه هرکدام متفاوت باشد، دستور if else کارآمدتر از دو دستور ()if است. برای مثال، اگر چهار شرط متفاوت وجود داشته باشد، که هرکدام نتیجه خاص خود را دارد چهار دستور زیر :

				
					if (condition A is true) outcome A
else if (condition B is true) outcome B
else if (condition C is true) outcome C
else outcome D // if conditions A, B and C are not true, then outcome 

				
			

  از این دستورات کارآمدتر هستند:

				
					if (condition A is true) outcome A
if (condition B is true) outcome B
if (condition C is true) outcome C
if (condition D is true) outcome D	

				
			

هنگامی‌که یک شرط else if درست باشد، بجای بررسی همه دستورات else باقی‌مانده، کد به دستور بعدی می‌رود که کارآیی بیش‌تری نسبت به بررسی هر دستور if در یک مجموعه از دستورات if دارد. برای مثال، اگر شرط B درست باشد، نیازی به بررسی شرط C نیست.

تابع ()text.length طول رشته text را مشخص می‌کند. تابع text.substring(first, last) یک زیرمجموعه متشکل از اولین تا آخرین کاراکتر متن را ایجاد می‌کند.

نظرتان را درباره این مقاله بگویید 4 نظر

اسکرول کردن متن LCD با آردوینو

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

1 × سه =

فروشگاه