📟 نمایشگر LCD 16×2 (LCD 16x2 (LCD1602))
| اسم انگلیسی | LCD 16x2 (LCD1602) |
|---|---|
| در ووکوی (Wokwi) | wokwi-lcd1602 |
| دسته | 💡 LED و نمایشگر |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
نمایشگر LCD 16×2 (LCD 16x2 یا LCD1602) صفحهی کاراکتری دوخطی است که هر خطش شانزده حرف جا میگیرد. پشتش یک کنترلر سازگار با HD44780 است که شکل حروف را خودش میکشد؛ آردوینو فقط کد هر حرف را میفرستد. این صفحه همان LCD «خام» با شانزده پایه است که با شش سیم داده و کنترل به آردوینو وصل میشود. نمایش دما، منوی تنظیمات، شمارنده و پیام خوشآمد کارهای همیشگیاش است. اگر سیم کمتری میخواهی، نسخهی LCD 16×2 با ماژول I2C را ببین.
LCD 16×2 در ووکوی (Wokwi)
شناسهی این صفحه در ووکوی wokwi-lcd1602 است. بدون ویژگی اضافه، نسخهی موازی با همهی پایهها را میگیری؛ اگر در attrs بنویسی "pins": "i2c"، همان نسخهی چهارسیمهی I2C میشود. diagram.json حداقلی با اتصال چهاربیتی:
{
"version": 1,
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 120, "left": 0 },
{ "type": "wokwi-lcd1602", "id": "lcd1", "top": -120, "left": 20 }
],
"connections": [
[ "uno:GND.1", "lcd1:VSS", "black", [] ],
[ "uno:5V", "lcd1:VDD", "red", [] ],
[ "uno:GND.1", "lcd1:V0", "black", [] ],
[ "uno:12", "lcd1:RS", "blue", [] ],
[ "uno:GND.1", "lcd1:RW", "black", [] ],
[ "uno:11", "lcd1:E", "purple", [] ],
[ "uno:5", "lcd1:D4", "green", [] ],
[ "uno:4", "lcd1:D5", "green", [] ],
[ "uno:3", "lcd1:D6", "green", [] ],
[ "uno:2", "lcd1:D7", "green", [] ],
[ "uno:5V", "lcd1:A", "red", [] ],
[ "uno:GND.1", "lcd1:K", "black", [] ]
]
}
| پایه در ووکوی | وصل به |
|---|---|
| VSS / VDD | GND / 5V |
| V0 (کنتراست) | در ووکوی GND |
| RS / E | uno:12 / uno:11 |
| RW | GND (فقط مینویسیم) |
| D4، D5، D6، D7 | uno:5، uno:4، uno:3، uno:2 |
| A / K (نور پسزمینه) | 5V / GND |
سیمکشی با آردوینو
روی ماژول واقعی پایهها از ۱ تا ۱۶ شماره دارند. تفاوت اصلی با ووکوی پتانسیومتر کنتراست و مقاومت نور پسزمینه است:
| پایهی LCD | وصل به |
|---|---|
| ۱ VSS و ۲ VDD | GND و 5V |
| ۳ V0 | سر وسط پتانسیومتر ۱۰ کیلواهم (دو سر دیگر به 5V و GND) |
| ۴ RS | پین 12 |
| ۵ RW | GND |
| ۶ E | پین 11 |
| ۷ تا ۱۰ (D0 تا D3) | آزاد؛ در حالت چهاربیتی لازم نیستند |
| ۱۱ تا ۱۴ (D4 تا D7) | پینهای 5، 4، 3، 2 |
| ۱۵ A | 5V، از راه مقاومت ۲۲۰ اهم اگر روی ماژول مقاومت نیست |
| ۱۶ K | GND |
کد نمونه
// LCD 16x2 in 4-bit mode: a greeting and a live seconds counter.
#include <LiquidCrystal.h>
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); // 16 columns, 2 rows
lcd.print("Hello, Wokwi!");
}
void loop() {
lcd.setCursor(0, 1); // column 0, second row
lcd.print("Uptime: ");
lcd.print(millis() / 1000);
lcd.print(" s "); // trailing spaces wipe old digits
}
کتابخانهی LiquidCrystal همراه آردوینو IDE نصب است و لازم نیست چیزی دانلود کنی. ترتیب عددهای سازنده مهم است: اول RS، بعد E، بعد چهار پایهی داده. چند دستور دیگر که در پروژهها زیاد لازم میشوند:
lcd.clear()کل صفحه را پاک میکند و مکاننما را به خانهی اول برمیگرداند؛ فقط وقتی صدایش بزن که واقعاً صفحه عوض میشود.lcd.setCursor(ستون, سطر)شمارهگذاری را از صفر شروع میکند؛ سطر دوم یعنی ۱.lcd.scrollDisplayLeft()کل متن را یک خانه به چپ میبرد؛ برای پیامهای بلندتر از شانزده حرف.lcd.createChar(شماره, آرایه)تا هشت شکل کوچک سفارشی مثل قلب، باتری یا علامت درجه میسازد.
اشتباههای رایج
- کنتراست تنظیم نیست: صفحه روشن ولی خالی است یا یک ردیف مربع سیاه دارد. پتانسیومتر V0 را آرام بچرخان.
- ترتیب پینها در سازنده: اگر D4 تا D7 را برعکس بنویسی، حروف درهم و بیمعنی میبینی.
- رقمهای قدیمی میمانند: وقتی عدد از ۱۰۰ به ۹۹ میرسد، «990» دیده میشود. بعد از عدد چند فاصله چاپ کن؛
lcd.clear()در هر دورloopصفحه را چشمکزن میکند. - RW آزاد مانده: باید به GND برود، وگرنه نمایشگر گاهی جواب نمیدهد.
آموزشهای مرتبط
- نمایشگر LCD ۱۶×۲ با ماژول I2C در آردوینو
- پارکینگ هوشمند با نمایش جای خالی روی LCD
- LCD با میکروپایتون روی رزبری پای پیکو
- درس اولین متن روی LCD
- حرفهای سفارشی روی LCD
سؤالهای رایج
LCD 16x2 روشن میشود ولی هیچ نوشتهای ندارد، چرا؟
اول پتانسیومتر کنتراست روی پایهی V0 را بچرخان؛ بیشتر وقتها نوشته هست ولی دیده نمیشود. اگر یک ردیف مربع سیاه میبینی، صفحه برق دارد ولی مقداردهی نشده؛ سیمهای RS، E و D4 تا D7 را با عددهای سازندهی LiquidCrystal مقایسه کن.
روی LCD 16x2 میشود فارسی نوشت؟
حروف فارسی در حافظهی این صفحه نیست. با createChar میتوانی تا هشت شکل سفارشی بسازی که برای یکی دو کلمهی کوتاه کافی است، ولی متن فارسی کامل را نمیشود نشان داد.
نسخهی موازی بهتر است یا I2C؟
نسخهی I2C فقط چهار سیم دارد و برای پروژههای شلوغ راحتتر است. نسخهی موازی ماژول اضافه نمیخواهد و با کتابخانهی داخلی آردوینو کار میکند، ولی شش پین دیجیتال میگیرد.