آموزش Espآموزش الکترونیک

آموزش اتصال ال سی دی کاراکتری 16*2 به ESP32

در این آموزش ما ال سی دی کاراکتری 16×2 را به ESP32 و فقط با استفاده از 2 پین با کمک پروتکل ارتباطی I2C متصل می کنیم. این پروتکل تعداد پین های مورد استفاده توسط ESP32 را کاهش می دهد به طوری که تعداد بیشتری از پین های ESP32 برای ارتباط با سنسور های مختلف آزاد باقی می مانند.

ما به فایل های بورد برای ESP32 احتیاج داریم ، بنابراین اگر تازه وارد در زمینه ESP32 هستید ، ابتدا آموزش برنامه نویسی ESP32 با آردوینو را بخوانید. شما همچنین می توانید ال سی دی را به ESP32 بدون ماژول I2C وصل کنید ، اما پین های بیشتری از ESP32 استفاده میشود. برای اتصال ال سی دی کاراکتری به ESP32 بدون استفاده از ماژول I2C، آموزش جامع اتصال LCD کاراکتری به برد آردوینو را بخوانید.

فیلم عملکرد در انتهای صفحه قرار داده شده است.

پروتکل ارتباطی I2C چیست؟

I2C یک پروتکل ارتباطی همزمان است ، یعنی دستگاههایی که اطلاعات را به اشتراک می گذارند باید یک سیگنال ساعت مشترک داشته باشند. این نوع پروتکل ارتباطی فقط دو سیم دارد. SDA و SCL برای به اشتراک گذاری اطلاعات هستند که از SCL برای سیگنال ساعت و SDA برای ارسال و دریافت داده استفاده می شود.

شما می توانید ماژول LCD I2C را خریداری کنید که در آن کنترلر LCD I2C1602 تعبیه شده است یا می توانید به سادگی کنترلر I2C را برای ارتباط LCD 16×2 با ESP32 خریداری کنید.

مدار اتصال LCD کاراکتری به ESP32

شماتیک مدار اتصال ال سی دی کاراکتری به ESP32 در تصویر زیر نشان داده شده است.

مدار اتصال LCD کاراکتری به ESP32

پین 1-16 ماژول I2C را به پین ​​1-16 صفحه نمایش LCD وصل کنید.
پین SDA ماژول I2C -> پین SDA ESP32 یعنی D11
پین SCL ماژول I2C -> پین SCL ESP32 یعنی D22

بهتر است برای تغذیه ماژول I2C از منبع تغذیه خارجی 5 ولت استفاده شود.

قطعات مورد نیاز

  1. برد ESP32
  2. ال سی دی کاراکتری 16*2
  3. کنترلر LCD I2C
حتما ببینید :  تست برد آردوینو (آموزش تعمیر خرابی سوختن آردوینو)

کنترلر LCD دارای پتانسیومتر داخلی برای کنترل کنتراست LCD است.

کد یافتن آدرس کنترل کننده I2C

قبل از ورود به کد اصلی ابتدا باید آدرس ماژول I2C را پیدا کنیم.

کنترلر I2C دارای بیت آدرس است که برای کنترل I2C استفاده می شود. آدرس پیش فرض 0x27 است اما در بعضی موارد می تواند 0x3f باشد. بنابراین ، برای بررسی آدرس کنترلر I2C ، مدار را مطابق شکل متصل کنید سپس کد زیر را بارگذاری کنید و مانیتور سریال باز کنید ، آدرس آن را در شش ضلعی مشاهده خواهید کرد.

#include <Wire.h>

void setup() {
Serial.begin (9600);
Serial.println ("Scanning I2C device...

Wire.begin();
for (byte i = 0; i <50; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Address found->");
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
Count++;
}
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device");
} 

void loop() {}

کد یافتن آدرس کنترل کننده I2C

توجه داشته باشید که ما از این آدرس در کد اصلی استفاده می کنیم.

در کنترلر I2C همانطور که می بینید سه جامپر با علامت A0 ، A1 و A2 وجود دارد. اینها برای تغییر آدرس ماژول استفاده می شوند. در اینجا نحوه تغییر آدرس از مقدار پیش فرض 0x27 یا 0x3F آورده شده است. جدول زیر نحوه اتصال جامپر ها برای تنظیم آدرس آورده شده است.

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.
A0A1A2آدرس هگز
1110x27
110x26
110x25
10x24
110x23
10x22
10x21
0x20

کد ESP32 برای راه اندازی LCD کاراکتری

ابتدا به یک کتابخانه LiquidCrystal_I2C برای ماژول LCD I2C نیاز داریم. کتابخانه معمولی Liquidcrsytal در اینجا کار نمی کند زیرا ما در اینجا از I2C استفاده می کنیم. دانلود کتابخانه LiquidCrystal_I2C

کد به گونه ای نوشته شده است که هر آنچه در مانیتور سریال تایپ می شود ، بر روی LCD نمایش داده می شود. Arduino IDE برای نوشتن و بارگذاری کد ما استفاده شده است.

ابتدا ، باید کتابخانه Wire را برای ارتباطات I2C درج کنیم.

#include <Wire.h>

سپس برای I2C LCD ،کتابخانه  LiquidCrystal_I2C.h را که قبلاً بارگیری شده است ، درج کنید.

#include <LiquidCrystal_I2C.h>

سپس با کد زیر، ما آدرس I2C و نوع ال سی دی کاراکتری را تعریف میکنیم.

LiquidCrystal_I2C lcd(0x27, 16,2); 

در عملکرد void setup () ، ارتباط سریال و LCD را تنظیم میکنیم و نور پس زمینه را روشن میکنیم. اگر می خواهید نور پس زمینه را خاموش کنید از lcd.noBacklight () استفاده کنید و طبق علاقه خود عملکرد setCursor () را تغییر دهید.

void setup()   
{
Serial.begin(9600);  // شروع ارتباط سریال
lcd.init();   // شروع کار ال سی دی
lcd.backlight(); // نور پس زمینه
lcd.setCursor(0,0); // تنظیم مکان متن
lcd.print("Hello, world!"); // نمایش متن
delay(1000); // یک ثانیه تاخیر
lcd.setCursor(0,1); // تنظیم مکان متن
lcd.print("IRENX.IR"); // نمایش متن
delay(3000); // سه ثانیه تاخیر

سپس متنی را نمایش میدهیم که کاربر متوجه شود هر چیزی در سریال مانیتور تایپ کند در ال سی دی نمایش داده میشود. سریال مانیتور را روی “No Line Ending” تنظیم کنید

lcd.clear(); // پاکسازی ال سی دی
lcd.setCursor(0,0); // تنظیم مکان متن
lcd.print("Use Ser. Monitor"); // نمایش متن
lcd.setCursor(0,1); // تنظیم مکان متن
lcd.print("Type to display");  // نمایش متن
}

سپس برنامه را طوری تنظیم میکنیم که هر چیزی در سریال مانیتور تایپ شد، در ال سی دی نمایش داده شود.

حتما ببینید :  بررسی تفاوت میکروکنترلر و میکروپروسسور

عملکرد Loop با استفاده از عملکرد Serial.available () پورت سریال را به طور مداوم بررسی می کند. اگر پیامی وجود داشته باشد، برای 100 میلی ثانیه ثانیه صبر می کند و با استفاده از توابع lcd.write () و Serial.read () پیام بر روی LCD نوشته میشود.

void loop()   {
{
// اگر پیامی در دسترس بود
if (Serial.available()) {
delay(100);               // تاخیر 100 میلی ثانیه ای
lcd.clear();                // پاکسازی ال سی دی
while (Serial.available() > 0) {                // خواندن کاراکتر ها
lcd.write(Serial.read());             // نمایش کاراکتر ها در ال سی دی
}
}
}
}

کد کامل

کد کامل آموزش راه اندازی ال سی دی کاراکتری با میکروکنترلر ESP32 در باکس زیر آورده شده است.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16,2); 

void setup() {
Serial.begin(9600); 
lcd.init(); 
lcd.backlight(); 
lcd.setCursor(0,0); 
lcd.print("Hello, world!");
delay(1000);
lcd.setCursor(0,1);
lcd.print("circuitdigest.com");
delay(3000); 
lcd.clear();
lcd.setCursor(0,0); 
lcd.print("Use Ser. Monitor");
lcd.setCursor(0,1);
lcd.print("Type to display"); 
}

void loop() {
{
if (Serial.available()) {
delay(100);
lcd.clear();
while (Serial.available() > 0) {
lcd.write(Serial.read();
}
}
}
}

فیلم عملکرد

فیلم زیر به شما در درک نحوه کار این کد کمک میکند. همانطور که گفته شد هرچیزی در سریال مانیتور نوشته شود، روی ال سی دی کاراکتری قرار میگیرد.

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

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

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

دکمه بازگشت به بالا