Мазмұны:

I2C: 4 қадаммен 16x2 СКД қолданыңыз
I2C: 4 қадаммен 16x2 СКД қолданыңыз
Anonim
I2C бар 16x2 СКД қолданыңыз
I2C бар 16x2 СКД қолданыңыз
I2C бар 16x2 СКД қолданыңыз
I2C бар 16x2 СКД қолданыңыз
I2C бар 16x2 СКД қолданыңыз
I2C бар 16x2 СКД қолданыңыз

Алдыңғы нұсқаулықтың бірінде мен сізге LCD -ді Arduino Uno -ға қалай қосу және интерфейске қосу керектігін және ондағы мәндерді көрсетуді көрсеттім. Бірақ байқалғандай, көптеген байланыстар болды және егер сымдардың тым көп болуына байланысты жоба нашарлай бастаса.

Бұл нұсқаулықта мен сізге СКД -ны I2C -ге қалай қосу керектігін көрсетемін, онда тек СКД -ды басқаруға және пайдалануға 4 түйреуіш болады. Ендеше, бастайық.

1 -қадам: Қажетті компоненттер

Қажетті компоненттер
Қажетті компоненттер
Қажетті компоненттер
Қажетті компоненттер
Қажетті компоненттер
Қажетті компоненттер

Бұл жоба үшін сізге қажет:

  • Ардуино Уно
  • 16x2 СКД
  • 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.beginTransmission (мекенжай); қате = Wire.endTransmission (); if (error == 0) {Serial.print («0x мекенжайында I2C құрылғысы табылған»); if (адрес <16) Serial.print («0»); Serial.print (мекен -жай, HEX); Serial.println («!»); nDevices ++; } if if (error == 4) {Serial.print («0x мекенжайындағы белгісіз қате»); if (адрес <16) Serial.print («0»); Serial.println (мекен -жай, HEX); }} if (nDevices == 0) Serial.println («I2C құрылғылары табылмады / n»); else Serial.println («жасалды / n»); кешіктіру (5000); // келесі қарап шығуды 5 секунд күтіңіз}

Мысал коды (сериялық мониторға енгізілген таңбаларды көрсету үшін):

#қосу #қосу

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 -қадам: шығыс

Шығу
Шығу
Шығу
Шығу

Сіз кодты жүктегеннен кейін, сіз баруға дайынсыз. Бұл нұсқаулық үшін мен сериялық басып шығару кодының мысалын алдым. Енді кодты жүктегеннен кейін, сериялық мониторды ашып, сөзді теріп, «жіберу» түймесін басыңыз. Енді сіз бұл мәнді СКД -де көрсететінін көруіңіз керек.

Ұсынылған: