Мазмуну:

16x2 ЖКны I2C менен колдонуу: 4 кадам
16x2 ЖКны I2C менен колдонуу: 4 кадам

Video: 16x2 ЖКны I2C менен колдонуу: 4 кадам

Video: 16x2 ЖКны I2C менен колдонуу: 4 кадам
Video: Display WiFi Access Points on LCD with ESP8266 signal strength as percentage 2024, Июль
Anonim
IxC менен 16x2 ЖК колдонуңуз
IxC менен 16x2 ЖК колдонуңуз
I2C менен 16x2 ЖК колдонуңуз
I2C менен 16x2 ЖК колдонуңуз
I2C менен 16x2 ЖК колдонуңуз
I2C менен 16x2 ЖК колдонуңуз

Мурунку көрсөтмөлөрүмдүн биринде мен сизге LCDди Arduino Uno менен кантип туташтырып, интерфейс кылууну жана андагы баалуулуктарды көрсөтүүнү көрсөткөм. Бирок байкалгандай, көптөгөн байланыштар болгон жана эгерде долбоор өтө көп зымдардын айынан башаламан боло баштаган болсо.

Бул Нускамада мен сизге LCDди I2Cге кантип туташтырууну көрсөтөм, анда ЖКны башкаруу жана колдонуу үчүн болгону 4 төөнөгүч болот. Ошентип, баштайлы.

1 -кадам: компоненттери талап кылынат

Керектүү компоненттер
Керектүү компоненттер
Керектүү компоненттер
Керектүү компоненттер
Керектүү компоненттер
Керектүү компоненттер

Бул долбоор үчүн сизге керек болот:

  • Arduino Uno
  • 16x2 LCD
  • 16x2 ЖК үчүн I2C
  • Зымдарды туташтыруу

Мунун баары менен, байланыштар бөлүгүнө кирели.

2 -кадам: Байланыштар

Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар

Сүрөттөрдү карап, байланыштарды түзүңүз. Бул абдан жөнөкөй, сиз жөн гана ЖК портторуна I2Cди туташтырып, аны ордуна коюңуз. Андан кийин SCL пинин Arduinoдогу A4 пинге жана SDA пинин Arduinoдогу A5 пинке туташтырыңыз.

Мен I2C менен ширетип жаткан жокмун, анткени мен буга чейин ЖКда баш казыктарды ширеткем. Бирок мен I2Cди ЖКда ширетүүнү сунуштайт элем

3 -кадам: Код

Arduino IDEге кирген LCD I2C мастер -китепканасы бар. Бирок андагы коддо кичине көйгөй бар. Бул китепкананын бардык мисалдары I2Cдин демейки дарегин 0x27 деп эсептейт. Ошентип, адегенде биздин I2C дарегибиз эмне экенин билишибиз керек. Биз муну I2C сканеринин кодун колдонуу менен жасай алабыз. Бизде I2C дареги болгондон кийин, бул маанини мисал кодуна алмаштырып, аны колдоно баштайбыз.

I2C сканеринин коду:

#кошуу

void setup () {Wire.begin (); Serial.begin (9600); while (! Сериялык); // сериялык мониторду күтө туруңуз Serial.println ("\ nI2C Сканери"); } void loop () {байт катасы, дареги; int nDevices; Serial.println ("Изделүүдө…"); nDevices = 0; үчүн (дарек = 1; дарек <127; дарек ++) {// i2c_scanner // түзмөк даректи тааныган -албаганын билүү үчүн // Write.endTransmisstionдун // кайтаруу маанисин колдонот. Wire.beginTrmission (дарек); ката = Wire.endTransmission (); if (error == 0) {Serial.print ("0x дарегинде I2C түзмөгү табылган"); if (address <16) Serial.print ("0"); Serial.print (дарек, HEX); Serial.println ("!"); nDevices ++; } else if (ката == 4) {Serial.print ("0x дареги боюнча белгисиз ката"); if (address <16) Serial.print ("0"); Serial.println (дарек, HEX); }} if (nDevices == 0) Serial.println ("I2C түзмөктөрү табылган жок / n"); else Serial.println ("аткарылды / n"); кечигүү (5000); // кийинки текшерүү үчүн 5 секунд күтө туруңуз}

Мисал коду (Serial Monitorго киргизилген символдорду көрсөтүү үчүн):

#кошуу #кошуу

LiquidCrystal_I2C lcd (0x3F, 20, 4); // 16 дарек жана 2 саптуу дисплей үчүн ЖК дарегин 0x27 деп коюңуз

жараксыз орнотуу ()

{lcd.init (); // lcd lcd.backlight инициализациялоо (); Serial.begin (9600); }

боштук цикл ()

{// символдор сериялык порттун үстүнө келгенде … if (Serial.available ()) {// бүт билдирүүнүн келүүсүн бир аз күтө туруңуз кечигүү (100); // экранды тазалоо lcd.clear (); // (Serial.available ()> 0) {// ар бир белгини LCD lcd.write (Serial.read ()) дисплейинде көрсөтүү менен бардык жеткиликтүү белгилерди окуңуз; }}}

4 -кадам: Чыгуу

The Output
The Output
The Output
The Output

Сиз кодду жүктөгөндөн кийин, барууга даярсыз. Бул Нускамалык үчүн мен Сериялык Басуу Кодунун мисалын алгам. Ошентип, азыр кодду жүктөгөндөн кийин, Сериялык Мониторду ачып, бир сөздү терип, "жөнөтүү" баскычын басыңыз. Эми сиз бул маанини ЖКда көрсөтүүнү көрүшүңүз керек.

Сунушталууда: