ویژگی های ال سی دی کاراکتری 16x2 LCD با رابط I2C
نمایشگر کاراکتری 2×16 داری دو ردیف 16 تایی جهت نمایش اطلاعات میباشد. نمایشگرهای معمولی 2×16، هفت پین دیجیتال را اشغال میکنند در صورتی که این ماژول با رابط I2C این تعداد را به 2 پین کاهش داده است. یک پتانسیومتر نیز جهت تنظیم کنتراست نمایشگر قرار داده شده است. این نمایشگرها کاربردهای فراوانی دارند و در مواردی مانند: دستگاههای کپی و فکس، پرینترهای لیزری، ابزارآلات تست صنعتی و … استفاده می شوند.
دیتاشیت ماژول نمایشگر کاراکتری 2×16 با رابط I2C را می توانید از اینجا دانلود کنید.
معرفی پایه های (Pinout) ماژول نمایشگر کاراکتری 16x2 با رابط I2C
نمایشگر کاراکتری 2×16 با رابط I2C دارای 4 پایه به شرح زیر است:
- VCC: تغذیه ماژول –5 ولت
- GND: زمین
- SDA: پین دیتا
- SCL: پین کلاک
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی نمایشگر کاراکتری 16x2 با رابط I2C با آردوینو
گام اول: سیم بندی
مطابق مدار زیر ماژول را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
به Library manager رفته و کلمه LiquidCrystal_I2C را سرچ کنید و در ادامه، مطابق تصویر زیر کتابخانه آن را نصب کنید.
گام سوم : اسکن آدرس I2C نمایشگر
کد زیر را روی برد آردوینوی خود آپلود کنید.
/*
Character-LCD-I2C-16x2(1602)
made on 31 oct 2020
Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="“Home” — Electropeak" src="https://electropeak.com/learn/embed/#?secret=VnH6Xc4zqb" data-secret="VnH6Xc4zqb" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
based on Arduino Library Examples
*/
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("\nI2C Scanner");
}
void loop() {
int nDevices = 0;
Serial.println("Scanning...");
for (byte address = 1; address < 127; ++address) {
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address < 16) {
Serial.print("0");
}
Serial.print(address, HEX);
Serial.println(" !");
++nDevices;
} else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16) {
Serial.print("0");
}
Serial.println(address, HEX);
}
}
if (nDevices == 0) {
Serial.println("No I2C devices found\n");
} else {
Serial.println("done\n");
}
delay(5000); // Wait 5 seconds for next scan
}
قبل از استفاده از این ماژول ابتدا بایستی آدرس I2C نمایشگر را از طریق برنامه بالا به دست آوریم و در برنامهی اصلی خود این آدرس نمایشگر را وارد کنیم.
تصویر زیر در خروجی Serial Monitor ظاهر شده است. آدرس I2C این نمایشگر 0x3F میباشد.
گام چهارم : کد اصلی
کد زیر را روی برد آردوینوی خود آپلود کنید.
/*
Character-LCD-I2C-16x2(1602)
modified on 31 oct 2020
by Amir Mohammad Shojaee @ Electropeak
Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="“Home” — Electropeak" src="https://electropeak.com/learn/embed/#?secret=VnH6Xc4zqb" data-secret="VnH6Xc4zqb" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
based on LiquidCrystal_I2C Library Arduino Examples
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
Serial.begin(9600);
}
void loop()
{
// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());
}
}
}
ابتدا بایستی کتابخانههای مورد نیاز پیوست شوند. در ادامه، آدرس I2C نمایشگر را که در بخش قبل به دست آورده بودیم، وارد می کنیم. سپس، برنامه منتظر نوشتن یک عبارت توسط کاربر میشود. با وارد نمودن یک عبارت توسط کاربر در قسمت Serial Monitor، همان عبارت بر روی نمایشگر ظاهر میگردد.
دو عکس زیر نتیجه نمایش عبارت “1602 LCD” بر روی نمایشگر میباشد. این عبارت ابتدا در قسمت Serial Monitor نوشته میشود. سپس با ارسال آن، بر روی نمایشگر ظاهر میگردد.
Comments (11)
ببخشید من می خواهم یک ارتباط وایر لس ایجاد کنم که با وای فای از همه جای دنیا بتوانم ان را کنترل کنم
با سلام
اینکه یک دستگاه را به صورت بیسیم از طریق اینترنت کنترل کنید نیاز به IP Static یا ایجاد سرویس های آماده دارید.
برای مثال سرویس های آماده، می توانید به این آموزش مراجعه کنید. این نوع سرویس ها امکان دارد به صورت دوره ای توسط دولت یا شرکت های خارجی فیلتر یا تحریم بشود.
برای مورد IP Static باید دانش شبکه و ایجاد پروتکل های Post , Get رو ایجاد کنید و از میکروکنترلر هایی مانند ESP یا ماژول های سیمکارت برای این موضوع استفاده کنید.
من این lcd رو از شما خریدم طبق آموزش هم نصب کردم روی سریال درست کار میکنه ولی کد hello worde رو که میزنم روش فقط یک کارکتر نمایش میده مشکل چیه???
با سلام
در صورتی که از نمایشگر 1602 دارید استفاده میکنید خط
LiquidCrystal_I2C lcd(0x3F,20,4);
را به
LiquidCrystal_I2C lcd(0x3F,16,2);
تغییر بدهید.
احتمالا مربوط به این بخش می باشد.
ممنون از لطف شما
برای من کار نکرد
با سلام
ابتدا سعی کنید با برنامه I2CSanner که در بخش نمونه مثال های برنامه آردوینو زیر مجموعه Wire می باشد. بررسی کنید که ID دستگاه شما شناسایی می شود یا خیر؟؟
توجه داشته باشید که در صورت استفاده از برد هایی به جز آردوینو UNO بررسی کنید که پایه های I2C کدام پایه ها می باشد و باید نمایشگر را به پایه های مربوطه وصل کنید.
سلام وقت بخیر، من همه چیز را درست متصل کردم جتا مانیتور هم شناسایی میشود ولی هیچ چیزی روی آن نمایش نمیدهد
با سلام
اگر از نسخه I2C دارید استفاده میکنید، پشت برد را توجه کنید یک پیچ وجود دارد.
با استفاده از این پیچ می توانید کنتراست تصویر را تنظیم کنید تا متن ها برای شما داده شود.
سلام می شه تابع دیلی را برداشت وقتی داریم از spi استفاده می کنیم
با سلام
وجود و عدم وجود تابع دیلی ربطی به پروتکل راه اندازی نمایشگر نمیشود.
این دیلی کوتاه برای دریافت تمام متنی می باشد که شما در سریال مانیتور تایپ میکنید می باشد.
این دیلی را میتوانید حذف بکنید اما امکان دارد متن تایپی شما به صورت تیکه شده در صفحه نمایشگر چاپ بشود.