- Шта је И2Ц комуникацијски протокол?
- Потребни материјали
- И2Ц модул
- Шема кола
- Шифра за проналажење адресе И2Ц контролера
- Шифра за ЕСП32
У претходном упутству, ОЛЕД је повезан са ЕСП32 користећи СПИ комуникацију која користи 5 пинова. У овом упутству, повезујемо ЛЦД 16к2 са ЕСП32, користећи само 2 пина, уз помоћ И2Ц комуникације. Смањује број пинова које користи ЕСП32 тако да већи број ЕСП32 пинова остаје слободан за повезивање различитих сензора.
Шта је И2Ц комуникацијски протокол?
Термин И2Ц означава „ Интер интегрисани кругови“. Обично се на неким местима означава као ИИЦ или И на квадрат Ц или чак као двожични протокол интерфејса (ТВИ), али све то значи исто. И2Ц је синхрони комуникацијски протокол, што значи да оба уређаја који деле информације морају да деле заједнички сигнал сата. Има само две жице, СДА и СЦЛ за размену информација, од којих се СЦЛ користи за сигнал сата, а СДА користи за слање и пријем података.
Можете купити И2Ц ЛЦД модул у који је уграђен И2Ц1602 ЛЦД контролер или можете једноставно купити И2Ц контролер за повезивање 16к2 ЛЦД са ЕСП32.
Потребни материјали
- ЕСП32
- ЛЦД екран од 16 * 2
- И2Ц ЛЦД контролер
- Жице
- Бреадбоард
И2Ц модул
И2Ц контролер има ИЦ ПЦФ8574 који обезбеђује опште намене даљинског проширења У / И преко двожичног двосмерног И2Ц сабирничког серијског сата (СЦЛ) и серијских података (СДА). Веома је користан ИЦ и може се користити на плочама са ЛЕД натписима, дисплејима, јастучићима за кључеве, индустријским управљањем итд. Постоји 8 И / О пинова, 3 пина (А0, А1, А2) за И2Ц адресу сабирнице и СДА, СЦЛ пинове.
Плоча ЛЦД контролера има уграђени потенциометар за контролу контраста ЛЦД-а.
Дијаграми пинова ИЦ и ЛЦД контролера дати су у наставку.
Шема кола
Конекције за повезивање ЛЦД-а са ЕСП32 дате су у наставку
- повежите пин 1-16 И2Ц модула са пин 1-16 ЛЦД екрана.
- СДА пин И2Ц модула -> СДА пин ЕСП32 тј. Д21
- СЦЛ пин И2Ц модула -> СЦЛ пин ЕСП32 тј. Д22
Прикључио сам 3в ЕСП32 на 5в И2Ц само за демонстрацију, али потребно нам је напајање од 5В за И2Ц модул да би се подаци правилно приказивали, јер ЕСП32 може дати само 3,3 волта што је мало за И2Ц модул и подаци неће бити јасно видљиви. Дакле, боље је користити спољно напајање од 5В.
Потребне су нам датотеке на плочи за ЕСП32, па ако сте нови у ЕСП32, прво следите Први кораци са упутством за ЕСП32, а затим вратите се овде. Такође можете повезати ЛЦД са ЕСП32 без И2Ц, али требат ће вам више пинова ЕСП32.
Шифра за проналажење адресе И2Ц контролера
Пре уласка у главни код прво морамо пронаћи адресу И2Ц модула.
И2Ц контролер има уграђени АДДРЕСС бит који се користи за контролу И2Ц магистрале. Подразумевана АДРЕСА је 0к27, али у неким случајевима може бити 0к3ф. Дакле, да бисте проверили адресу И2Ц контролера, повежите коло као што је приказано изнад, отпремите доле дати код и отворите серијски монитор, Видећете адресу у хексадецималном облику.
#инцлуде
Имајте на уму да ову адресу користимо у коду ЛЦД интерфејса.
Као што видите, у И2Ц контролеру постоје три краткоспојника / плочице за лемљење означене као А0, А1 и А2. Они се користе за промену адресе модула. Ево како се адреса мења од подразумеване вредности 0к27 или 0к3Ф, ако међусобно повежете блокове адреса. (1 = Није повезано. 0 = Повезано):
А0 |
А1 |
А2 |
ХЕКС адреса |
1 |
1 |
1 |
0к27 |
0 |
1 |
1 |
0к26 |
1 |
0 |
1 |
0к25 |
0 |
0 |
1 |
0к24 |
1 |
1 |
0 |
0к23 |
0 |
1 |
0 |
0к22 |
1 |
0 |
0 |
0к21 |
0 |
0 |
0 |
0к20 |
Шифра за ЕСП32
Прво нам треба библиотека ЛикуидЦристал_И2Ц за И2Ц ЛЦД модул. Уобичајена библиотека Ликуидцрситал неће радити јер овде користимо И2Ц.
Преузмите библиотеку са ове хттпс://гитхуб.цом/фдебрабандер/Ардуино-ЛикуидЦристал-И2Ц-либрари
Код је написан на такав начин да ће се све што се откуца на серијском монитору приказати на ЛЦД-у. Ардуино ИДЕ је коришћен за писање и отпремање нашег кода.
Прво, морамо укључити жичану библиотеку за И2Ц комуникацију која долази са Ардуино ИДЕ-ом.
#инцлуде
Затим за И2Ц ЛЦД укључите ЛикуидЦристал_И2Ц.х који је раније преузет.
#инцлуде
Затим поставите ЛЦД И2Ц адресу на 0к27 или адресу коју сте добили покретањем горе наведеног кода скенера за 16 карактера дворедни приказ
ЛЦД ЛикуидЦристал_И2Ц (0к27, 16,2);
У функцији подешавања , иницијализујте серијску комуникацију и ЛЦД за 16 знакова од 2 реда и укључите позадинско осветљење. Ако желите да искључите позадинско осветљење, користите лцд .ноБацклигхт () и промените функцију сетЦурсор () према вашим жељама.
воид сетуп () { Сериал.бегин (9600); лцд.инит (); лцд.бацклигхт (); лцд.сетЦурсор (0,0); лцд.принт („Здраво, свете!“); кашњење (1000); лцд.сетЦурсор (0,1); лцд.принт ("цирцуитдигест.цом"); кашњење (3000);
ЛЦД ће прво приказати упутства за употребу серијског монитора и откуцати знакове за приказ.
Подесите опцију Сериал Монитор на "Но Лине Ендинг"
лцд.цлеар (); лцд.сетЦурсор (0,0); лцд.принт ("Користи Сер. Монитор"); лцд.сетЦурсор (0,1); лцд.принт ("Тип за приказ"); }
Функција петље континуирано ће проверавати има ли долазних серијских података са серијског порта помоћу функције Сериал.аваилабле (). Ако постоји порука, да чекају други и одштампати поруку на ЛЦД користећи лцд .врите () и Сериал.реад () функције.
воид лооп () {{// када знакови стигну преко серијског порта… иф (Сериал.аваилабле ()) {делаи (100); // сачекајте мало да цела порука стигне лцд.цлеар (); // очистите екран док (Сериал.аваилабле ()> 0) {// прочитајте све доступне знакове лцд.врите (Сериал.реад ()); // сваки знак прикажемо на ЛЦД-у}}}}
Код за надметање је дат испод, зато отпремите код и отворите серијски монитор. Затим откуцајте поруку и притисните ентер. Ваша порука ће се приказати на ЛЦД-у.
Ако на ЛЦД- у не добијете тачан одговор или нема одговора, проверите адресу свог И2Ц контролера или га поново скенирајте са горе наведеним кодом да бисте добили тачну адресу.