Kontakty

LCD 1602 I2C nefunguje. Pripojte LCM1602 LCD obrazovku pomocou I2C do Arduino. Pripojte zariadenie I2C do Arduino

Dostal som sa sem dobrý obchod Čip odpor iné zariadenie na štúdium a použitie v užitočných zariadeniach. Toto zariadenie sa ukázalo, že je nabrúsené na správu LCD displeja so regulátorom HD44780, v 4-bitovom režime. Na tento účel je na doske inštalovaný mikroobvod, ktorý je konvertor zbernice I2C na paralelný 8 bitový port.

Poplatok je rozvedený takým spôsobom, že môže byť okamžite rozdrvený na LCD displeji. Vstup slúži Power a I2C riadky. Predstavenstvo okamžite nainštaluje výsuvné rezistory na linkách SCL a SDA, potenciometer pre nastavenie kontrastu a sily samotného displeja.

Jumper na pravej strane zapne / odpojí podsvietenie. Ďalej, vyzbrojený testerom bol vypracovaný nasledovnú dosku. Po štúdiu modulu bola odhalená. P3 Spravuje podsvietenie. Ak je jumper nastavený, potom 1 zapne podsvietenie a 0 sa vypne. Keď je jumper odstránený, podsvietenie sa vždy vypne. Ďalej sa rozhodlo doplniť knižnicu AXLIB Pracovať s I2C zbernicou (implementácia softvéru) a funkciami na správu mikroobvody PCF8574. Ako modul funguje v skratke. Aby ste mohli zobraziť paralelný bajt, na to musíte odoslať adresu mikroobvodu na zbernicu I2C (je rovná 0x4e. Môžete tiež zmeniť adresu prepínaním prepínačov na palube a zmeňte hodnotu troch mladších riešení), Potom po prijatí ACK sa odosiela dátový bajt. Po respirácii čipu ACK sa bajt zobrazí na paralelnom porte čipu. Ak chcete ovládať LCD displej, zaznamenal som funkcie z knižnice AXLIB a znova ich presadili na prácu s autobusom I2C. #Include. #Include. #Include. #Include. #Define Pridať 0x4e // Adresa mikroobvody / * LCD mikroobvod Rs P0 RW P1 SK P2 D4 P4 D5 P5 D6 P6 D7 P7 na úpätí p3 Pripojte podsvietenie. 1 incl, 0 off. * / // Výstup údajov com | \u003d 0x04; // e jednotka PCF8574_BYTE_OUT (COM, ADD); // Výstup údajov Com & \u003d 0xfb; // e v nule PCF8574_BYTE_OUT (COM, ADD); // Výstup údajov ) Void init (prázdnota) (_delay_ms (30); Com (0x30); _delay_us (40); Com (0x30); // Prechod na 4 bitový režim _delay_us (40); // oneskorenie vykonať príkaz Com (0x30); // Prechod na 4 bitový režim _delay_us (40); // oneskorenie vykonať príkaz Com (0x20); // Prechod na 4 bitový režim _delay_us (40); // oneskorenie vykonať príkaz Com (0x20); // Nastavte parametre Com (0x80); // Nastavte parametre Com (0x00); // Vypnutie displeja Com (0x80); // Vypnutie displeja Com (0x00); // Vyčistite displej Com (0x10); // Vyčistite displej Com (0x00); Com (0x60); // Nainštalujte režim zadávania údajov Com (0x00); Com (0xc0); // Zapnite displej s vybraným kurzorom ) Void Char_out (Byte Data) (Byte Data_H \u003d ((DATA & 0XF0) + 0X09); Byte data_l \u003d ((DATA // Prenos starších 4 bitov Data_h | \u003d 0x04; PCF8574_BYTE_OUT (data_h, add); // Prenos senior 4 bity // Prenos senior 4 bity // Prenos junior 4 bit // Prenos junior 4 bit // Prenos junior 4 bit ) Void Str_out ((* Str)! \u003d "0") (Char_out (* Str); Str ++;)) Int Hlavné (Void) (init (init (); str_Ot ("epґbet MґP!"); Zatiaľ čo (1 ) ()) V skutočnosti to, čo sa tu stane. Najprv pripojte knižnice I2C a pre PCF8574. Už som napísal o I2C, takže to bude opäť rezané, ale poviem vám v PCF8574.h. Knižnica obsahuje iba tri funkcie.
Byte PCF8574_TEST (Byte ADD) (Byte Ask \u003d ACK; pridať & \u003d 0xfe; i2c_start (); Ask \u003d i2c_send_byte (add); i2c_stop (); návrat sa pýtať;) Prvá funkcia bola napísaná na kontrolu dostupnosti zariadenia na autobuse. V zásade môže byť použitý na vyhľadávanie akéhokoľvek zariadenia umiestneného na pneumatike. Funkcia má adresu požadovaného zariadenia a ak reaguje, vráti sa nula. Ak na autobuse nie je možné žiadne zariadenie, potom sa jednotka vráti.
Byte PCF8574_BYTE_OUT (BYTE ANTH \u003d ACK; pridať & \u003d 0xfe; I2C_START (); ASK \u003d I2C_SEND_BYTE (ADD); ak (! Opýtajte sa) Požiadajte \u003d I2C_SEND_BYTE (DATA); I2C_STOP (); návrat sa pýtať;) Táto funkcia je už nabrúsená čistá pod týmto čipom. Ako argument, bajty sa prenášajú na prenos do pneumatiky a adresu mikroobvodu. Funkcia sa najprv požiada o čip na adrese a potom posielať bajty. Ak čip dostal bajt a odpovedal ACK, funkcia dokončí pracuje s mikroobvodom a vráti nula ako úspešný balík bajtov. Kip v tomto čase zobrazí tento bajt v paralelnom porte. V opačnom prípade dostaneme jednotky NACK a refundácie, prenos zlyhal.
Byte PCF8574_STR_OUT (Bajt * Údaje, Byte Col, Byte ADD) (Byte Ask \u003d ACK; pridať & \u003d 0xfe; i2c_start (); Ask \u003d i2c_send_byte (add); pre (bajt I \u003d 0; ja Táto funkcia je vytvorená pre experiment. Prijíma ukazovateľ na pole jednostónových dát, počet týchto bajtov a adresu mikroobvodov. Vlastne pokus o prevod všetkých údajov jedným zasadnutím a nie jeden bajt pre reláciu. Funkcia funguje, ale pre LCD displej a nehodil. A teraz sa vráťme k hlavnému programu. Po pripojení knižníc predpíšeme adresu čipu. Ďalej vytvorte tri funkcie analógiou s LCD.H. Rozdiel je len v zásade prenosu dát.
Void com (bajt com) (com | \u003d 0x08; // P3 za jednotku, aby ste nespálili osvetlenie PCF8574_BYTE_OUT (COM, ADD); // Výstup údajov com | \u003d 0x04; // e jednotka PCF8574_BYTE_OUT (COM, ADD); // Výstup údajov Com & \u003d 0xfb; // e v nule PCF8574_BYTE_OUT (COM, ADD); // Výstup údajov } Táto funkcia prenáša iba príkazy na displeji. Odtiaľ bol prvý riadok s logickým záhybom príkazu od 0x08. Táto bjaka je potrebná z dôvodu skutočnosti, že prejdeme bajty nie priamo do portu LCD displeja, ale prostredníctvom nášho opakovača. To znamená, že ak by sme bežali bajtom, a potom musíme stiahnuť len jeden bit, potom budete dávať do predchádzajúceho bajtu a znova ho poslať do prístavu. Tu je taký zmätok. Prídavok od 0x08 je potrebný na trvalé zadržanie jednotky na treťom vypúšťaní. Pamätajte na podsvietenie? To je tento pridanie a zapnutie podsvietenia. Po zavolaní funkcie prenosu autobusu v autobuse. Je to napísané vyššie. Potom prejdeme bajtom autobusom v mikroobvode. Ďalej by sa malo umiestniť do jednotky E, než je vlastne logické pridanie bajtov s 0x04. Po nulovaní E. Týmto spôsobom môžete odosielať ľubovoľný príkaz na displej len tým, že prejdite samotným príkazom ako argument. Nepoužitý init (prázdny) (_delay_ms (30); // Pauza Po napájaní Com (0x30); // Prechod na 4 bitový režim _delay_us (40); // oneskorenie vykonať príkaz Com (0x30); // Prechod na 4 bitový režim _delay_us (40); // oneskorenie vykonať príkaz Com (0x30); // Prechod na 4 bitový režim _delay_us (40); // oneskorenie vykonať príkaz Com (0x20); // Prechod na 4 bitový režim _delay_us (40); // oneskorenie vykonať príkaz Com (0x20); // Nastavte parametre Com (0x80); // Nastavte parametre Com (0x00); // Vypnutie displeja Com (0x80); // Vypnutie displeja Com (0x00); // Vyčistite displej Com (0x10); // Vyčistite displej Com (0x00); // Nainštalujte režim zadávania údajov Com (0x60); // Nainštalujte režim zadávania údajov Com (0x00); // Zapnite displej s vybraným kurzorom Com (0xc0); // Zapnite displej s vybraným kurzorom } Táto funkcia sa zaoberá iba inicializáciou displeja. Sekvencia príkazov sa odoberajú z dátového listu na LCD displeji. Vid Char_out (Byte Data) (Byte Data_H \u003d ((DATA & 0XF0) + 0X09); Byte Data_L \u003d ((DATA // Prenos senior 4 BITS_H \u200b\u200b| \u003d 0x04; PCF8574_BYTETE_OUT (data_h, add); // Prenos senior 4 bity Data_h & \u003d 0xf9; PCF8574_BYTE_OUT (data_h, add); // Prenos senior 4 bity PCF8574_BYTE_OUT (data_l, add); // Prenos junior 4 bit data_l | \u003d 0x04; PCF8574_BYTE_OUT (data_l, add); // Prenos junior 4 bit Data_l & \u003d 0xf9; PCF8574_BYTE_OUT (data_l, add); // Prenos junior 4 bit } Táto funkcia prenáša dátové údaje LCD. Vykonáva sa rovnakým spôsobom ako príkazy okrem toho, že prenos bajtu najprv prvá prichádza najprv senior semi-jadro, a potom mladší. A zvyšok je rovnaký. Vid Str_out (Byte * Str) (zatiaľ čo ((* Str)! \u003d "0") (Char_out (* Str); Str ++;) Táto funkcia je čistá na prenos reťazca displeja. V skutočnosti nemá nič spoločné s našou témou.

Projekt pre Atmelstudio 6.2

Gramotný 01.08.15 17:11

Čiarka sa preskočí. Právo: "Ahoj, pokoj!" A toto zariadenie je ostré nielen pre HD44780. Uťahovacie odpory sú umiestnené na časť sprievodcu. Podľa špecifikácie sa dátový záznam na LCD regulátor prejde na úpadok E. Odtiaľ je prvá funkcia zjednodušená: Void Com (Byte COM) (COM | \u003d 0x08; // Illumination PCF8574_BYTE_OUT (COM | 0x04, ADD) // Dátový výstup PCF8574_BYTE_OUT (COM, ADD); // E v nule) a zvyšok sú tiež výrazne menej ako menej. Napríklad VOID Char_out (Byte Data) budú iba dve hovory, a ešte viac bez ďalších premenných. Inicializácia LCD sa vykonáva s porušením špecifikácie načasovania.

Alexey 02.08.15 19:11

Vzhľadom na nedostatok čiarky, displej nebude trpieť. Toto zariadenie je práve nabrúsené presne v rámci displejov s takýmto alebo podobným regulátorom. Ale je to mikroobvod, ktorý je jednoduchý prístavný expandér. Súhlasím. Potrebné sú ďalšie premenné. Ak prenášate argument funkcie s nejakým druhom akcií s logikou, môžu sa vyskytnúť závady. Už narazil. Inicializácia sa vykonáva bez porušovania orezávania. Dokumentácia hovorí, že medzi tímami je umiestnená pauza 40 μs. Vzhľadom k tomu, že prenos prechádza pozdĺž autobusu I2C, a že zase softvér a pomalý, potom sa obdobia vykonávajú so záujmom. Ak ešte nie je príliš leniví, napíšte svoju vlastnú možnosť a pošlite mi. Budem ho zverejniť. Nakoniec, táto stránka je určená pre amatérske publikum a každého, kto chce vyjadriť svoj názor a víziu života MK.

Alexey 06.08.15 09:14.

Tyameenga bola pridaná pri inicializácii displeja tým, že poznamenal rešpektovaný "kompetentný"

Dmitrij 06/14/16 21:57

Ahoj Alexey. K knižnici môžete pridať do práce s PCF8574 do generátora kódu.

Alexey 14.06.16 22:32

Budem o tom premýšľať.))

rUSLAN 12/21/16 19:54
Alexey 21.12.16 21:53

Ó áno. Najmä kód na Asma. Arduries ocenia plné)))

Pi.sy.
Aj keď nie ste Lízať na AFM, potom tam je prog napísaný pod regulátorom PIC. Pre AVRS to je "veľmi" užitočné informácie? Najmä začiatočník)) Nemám nič proti pic, ale aj AFM v PIC a AVR je odlišné. A o podrobnostiach práce na LCD displeji, potom môžete vyzerať))) pravdivé, stále som ho napísal pod Cvavr, ale všetky tímy sú demontované a rozložené na policiach. Ale v každom prípade rozhodnúť, kde je jasnejšie, hovorí))) autor píše, čitateľ si vyberie.

GEK 04.01.17 12:52

"I2C MicroCircuit Address (štandardne je 0x4e"

Senior 4 bitové adresy sú pevné,
PCF8574 Prefix je 0100 a PCF8574A - 0111
Mladšie 3 bity závisia od stavu vstupov čipu A2-A0. V predvolenom nastavení sú všetky 3 prepojky otvorené, resp. Microcircit adresa má hodnotu 0111111.
// A2 A1 A0 PCF8574 PCF8574A
// 1 1 1 0x20 0x38
// 1 1 0 0x21 0x39
// 1 0 1 0x22 0x3a
// 1 0 0 0x23 0x3b
// 0 1 1 0x24 0x3c
// 0 1 0 0x25 0x3d
// 0 0 1 0x26 0x3e
// 0 0 0 0x27 0x3f

Alexey 04.01.17 14:27

Niečo, čo ste zmätení.
Extraktujte z dokumentácie pre mikroobvod

0B01001110 Toto je 0x4e
Takže všetko je tu. A ak potrebujete zmeniť adresu, stačí ho zmeniť v definovaní.

Yuri 14.12.17 21:26

Dobrý deň! A funkcia LCDGOTOOPY A LCDCLEAR môžete kódovať, aby ste mohli pracovať s adaptérom na PCF8574.

Alexander 20.05.18 18:14

Dobrý deň! Ako vyberiete ruský text.

Alexey 20.05.18 23:04

Toto je domáci zobrazenie z taveniny. Je v pamäti Cyrilika.

Alexander 21.05.18 04:55

Dobrý deň! Píšem, ako máte v projekte Atmelstudio 6.2 "YPґbet MґP!" Ktoré sa zobrazia normálne
A ak napíšete "Dobrý deň!" Zobrazí nezmysel. mám dva
Možnosti zobrazení z jednej Cyrilické šité. Druhá čínština.

Alexey 21.05.18 09:22

Na spustenie testovacieho programu by som napísal testovací program. Prepnite všetku pamäť s zobrazovaním znakov a ich adresy. A potom opustíte problém. S najväčšou pravdepodobnosťou tabuľka znakov sa nezhoduje s tabuľkou ASCII.

Andrey 03.09.18 08:32

Dobrý deň!

A nemôžete hodiť schému pre Proteus?

Andrey 03.09.18 10:22

Alebo nikto nekontroloval v Protease?

Andrei 03.09.18 10:56.

Použité main_init

Paul 30.05.19 23:35

Zvedatívna vec, zobrazovaná adresa 0x4e, a ak je rovnaký displej pripojený k ARDUUX, potom adresa 0x27

Paul 31.05.19 11:04.

ĎAKUJEME TAKÉ PRE VAŠU PRÁCUMU! Prebojoval som celý internet, žiadny z vyššie uvedených príkladov, s výnimkou zarobených. Jediný v archíve projektu v funkcii inicializácie displeja nie je napísaný oneskorenie _delay_ a podľa toho nefunguje

Alexey 01.06.19 09:52

To je viac demonštračný projekt. Podľa dobra je knižnica AXLIB prepísať, ale berúc do úvahy skutočnosť, že STM32 a STM8 pohybujú sedem míľ, žiadny zmysel v AVR už nie je vôbec.

Paul 05.06.19 12:57

STM nemá žiadne kryty ponor, je ťažšie, aby dosky s plošnými spojmi. Pre moje projekty, AVR je dostatočne s maržou, na jednom atmeega 8, môžete veľmi zapadnúť

Alexey 05.06.19 15:20

Áno, ale koľko je ATMEGA8 a STM8S003)))))

Dmitrij 07.06.19 00:41.

Ahoj, Alexey.
Povedzte mi, ako čítať zo stavu PCF8574?
Chcem urobiť externý blok, 8 GPIO cez autobus I2C - IT SAM.

Dmitrij 07.06.19 17:56.

Odpovedám sám
Funkcia vráti Bytes - stav portov mikroobvodov
UINT8_T PCF8574_BYTETE_RCV (UINT8_T EDDR)
{
UINT8_T ASK \u003d ACK;
Addr | \u003d 0B01; // Čítať.
UINT8_T DATA \u003d 0;
i2c_start ();
Ask \u003d i2c_send_byte (addr);
Ak (! ASK) DATA \u003d I2C_READ_BYTE (NACK);
i2c_stop ();

Vrátenie údajov;
}

Paul 07.06.19 20:37

Koľko stojí náklad 150 rubľov, za cenu Relayushka všeobecne), a ako sa vám venujete poplatky pod STM? LUT nespoľahlivé, CNC Fresher si nie je istí, že to bude trvať (nie súčetné)

  • Modul FC-113 je vyrobený na základe čipu PCF8574T, ktorý je 8-bitový posun registra - "Expandér" výstupov pre sériovú pneumatiku I2C. Na obrázku mikroobvodu je označený DD1.
  • R1 je rýchly odpor na nastavenie kontrastu LCD displeja.
  • J1 JUMPER sa používa na zapnutie podsvietenia displeja.
  • Závery 1 ... 16 sa používajú na pripojenie modulu k výstupom LCD displeja.
  • Kontaktné platformy A1 ... A3 sú potrebné na zmenu I2C adresy zariadenia. Sedenie zodpovedajúce prepojky, môžete zmeniť adresu zariadenia. Tabuľka ukazuje zhodu adresy a prepojky: "0" zodpovedá roztrhnutiu reťazca, "1" - nastaviteľný jumper. V predvolenom nastavení všetky 3 jumpery otvorené a adresa zariadenia 0x27.

2 ARDUINO LCD displej pripojovacia schémapodľa I2C.

Pripojenie modulu do Arduino sa uskutočňuje štandard pre I2C zbernicu: Výstup SDA modulu je pripojený k analógovému portu A4, výstup SCL na analógový port A5 ARDUINO. Modul je napájaný napätím +5 V z Arduino. Samotný modul je spojený závermi 1 ... 16 s príslušnými závermi 1 ... 16 na LCD displeji.


3 Knižnica pre prácupodľa I2C.

Teraz potrebujete knižnicu na prácu s LCD displejom cez rozhranie I2C. Môžete použiť napríklad (odkaz v "Stiahnuť vzorový kód a knižnica" riadku).

Stiahnutý archív LIKTHINGCRYSTAL_I2CV1-1.RAR. UNZIP v priečinku Knižnice \\ tktorý sa nachádza v adresári ARDUINO IDE.

Knižnica podporuje súbor štandardných funkcií pre LCD obrazovky:

FunkciaÚčel
Likvidný () vytvorí premennú typu kvapaliny a prijíma nastavenia displeja (čísla pin);
začať () inicializácia LCD displeja, nastavenie parametrov (počet riadkov a symbolov);
jasný () Čistenie obrazovky a vráťte kurzor do pôvodnej polohy;
domov () vráťte kurzor do pôvodnej polohy;
setcursor () inštalácia kurzora do zadanej polohy;
písať () zobrazí symbol na obrazovke LCD;
tlač () zobrazí text na obrazovke LCD;
kurzor () ukazuje kurzor, t.j. Podpísanie na nasledujúcej symbolové sedadlo;
nocursor () skrýva kurzor;
blikať () blikajúci kurzor;
nobLink () zrušiť bliká;
nodisplay () pri ukladaní všetkých zobrazených informácií vypnite displej;
displej () zapnite displej a zároveň uložte všetky zobrazené informácie;
scrolldisplayleft () rolovanie obsahu displeja na prvej polohe doľava;
scrolldisplayright () rolovanie obsahu displeja na 1 pozíciu doprava;
automatické posúvanie () zahrnutie automatického zmlúv;
noautooscroll () vypnutie autoho lober;
zľava doprava () určuje smer textu zľava doprava;
zprava doľava () smer textu vpravo doľava;
createChar () vytvorí vlastný symbol pre obrazovku LCD.

4 Náčrt pre textový výstupna obrazovke LCD cez I2C zbernicu

Otvorme vzorku: Súborové vzorky FIRMESTRYSTAL_I2C Customhars A trochu ho zmení. Na konci blikajúceho symbolu vyberieme správu. V pripomienkach kódexu sú všetky náčrtné nuansy komentované.

#Include. // Pripojte knižnicu #include // Spojíme knižnicu LCD #DEFINE PRINTBYTE (ARGS) WINE (ARG); // uint8_t srdce \u003d (0x0,0xA, 0x1f, 0x1f, 0xE, 0x4.0x0); // bitová maska \u200b\u200bsymbol "srdce" likvidlcrystal_i2c LCD (0x27, 16, 2); // Nastavte adresu 0x27 pre LCD displej 16x2 void Setup () () lcd.init (); // inicializácia LCD displeja LCD.backvierka (); // Zapnite podsvietenie displeja LCD.createachar (3, srdce); // Vytvorte symbol srdca v pamäťovej bunke 3 LCD.Home (); // vložte kurzor do ľavého rohu, do polohy (0,0) LCD displeji. "); // vytlačiť LCD.SETCURSOR Textový reťazec (0, 1); // Preneste kurzor na reťazec 2, symbol 1 LCD.Print ("I"); // Vytlačiť správu na riadku 2 LCD.PrintByte (3); // Vytlačiť symbol "Srdce", ktorý sa nachádza v 3. bunkovej LCD.Print ("ARDUINO"); } vOID LOOP () ( // blikajú posledný LCD.SetCursursor (13, 1); // Prenos kurzora na reťazec 2, symbol 1 lcd.print ("t"); Oneskorenie (500); LCD.SESTCURSOR (13, 1); // Prenos kurzora na reťazec 2, symbol 1 lcd.print (""); Oneskorenie (500); }

Mimochodom, znaky zaznamenané tímom lCD.createAchar ();, Zostaňte na displeji displeja aj po vypnutí, pretože Zaznamenané v 1602 mfu.

5 Vytvorenie vlastných znakovpre LCD displej

Malé viac podrobností, zvážte problém vytvárania vlastných znakov pre LCD obrazovky. Každý symbol na obrazovke sa skladá z 35 bodov: 5 na šírku a 7 na výšku (+1 záložný reťazec pre podhodnotenie). V riadku 6 daného náčrtu sme nastavili pole 7 čísel: (0x0, 0xa, 0x1f, 0x1f, 0xE, 0x4, 0x0). Transformujeme 16-riche čísla v binárne: {00000, 01010, 11111, 11111, 01110, 00100, 00000} . Tieto čísla nie sú ničím iným ako trochu maskou pre každú zo 7 riadkov symbolu, kde "0" označuje svetelný bod a "1" - tma. Napríklad symbol srdca zadaný vo forme bitovej masky sa pozrie na obrazovku, ako je znázornené na obrázku.

6 Office LCD obrazovkana autobuse I2C

Drive Sketch v Arduino. Na obrazovke sa zobrazí nápis s blikajúcim kurzorom na konci.


7 Čo je "pre"pneumatiky i2c.

Ako bonus, zvážte dočasnú schému výstupu latinských znakov "A", "B" a "C" na LCD displeji. Tieto znaky sú k dispozícii na displeji ROM a sú zobrazené jednoducho pri prenose ich adresy. Diagram sa odstráni zo záverov Rs, RW, E, D4, D5, D6 a D7 displeja, t.j. Už po Converter FC-113 "I2C Paralelná zbernica". Môžeme povedať, že v "železnom" ponoríme trochu "hlbšie".


Dočasný diagram výstupu latinských znakov "A", "B" a "C" na LCD displeji 1602

Diagram ukazuje, že znaky, ktoré sú v DVDD ROM (pozri stranu 9.11 Datasheet, odkaz nižšie) sa prenášajú dvomi ghími, z ktorých prvá definuje tabuľku stĺpca tabuľky a druhá je číslo riadku. Súčasne, údaje "Snatch" na prednej strane E. (Povoliť) a riadok Rs. (Register SELECT, Register Výber) je v stave logickej jednotky, čo znamená prenos dát. Stav nízkeho stavu riadku RS znamená prenos pokynov, ktorý vidíme pred prenosom každého symbolu. V tomto prípade sa kód výučby vrátenia vozíka prenáša do pozície (0, 0) LCD displej, pretože môžete tiež zistiť štúdium technického popisu displeja.

A ešte jeden príklad. V tomto čase sa schéma zobrazuje výstup symbolu "srdca" na LCD displeji.


Opäť, prvé dva impulzy Povoliť Pokyny vyhovujúce Domov () (0000 0010 2) - Návrat vozíka do polohy (0, 0) a druhý dva - výstup na LCD displeji uloženej v pamäťovej bunke 3 10 (0000 0011 2) symbol "srdca" (inštrukcia " lCD.CreateAchar (3, srdce); Skica).

V tomto článku vám poviem, ako používať modul rozhrania I2C na ovládanie LCD displeja (2 × 16 / 20x4) pomocou ARDUINO. Tento modul vám umožní znížiť množstvo použitých výstupov regulátora namiesto 8 alebo 4-bitových pripojení, vyžaduje sa len 2 výstupy (SDA a SCL).

Technické špecifikácie

Podpora Podpora: LCD 16 × 02/20 × 04
VOLITEĽNÉ: Nastavenie kontrastu
Napájacie napätie. 5V.
Rozhranie: I2C.
Rozmery: 54mm x 19mm x 15 mm

Prehľad Modul rozhrania I2C

Vzhľadom k tomu, počet kontaktov na regulátoroch Arduino je obmedzený a často pri používaní rôznych snímačov a modulov, končia, je potrebné ich uložiť, tento modul bol vyvinutý pre tento prípad, môže byť implementovaný s použitím dvoch kontaktov (SDA a SCL) .

Teraz trochu o samotnom module je postavený na čipe PCF8574T. Rezistory R8 (4.7KOM) a R9 (4.7KOM) sú potrebné na pozastavenie čiar SDA a SCL, v ideálnom prípade pri pripájaní dvoch alebo viacerých zariadení cez I2C zbernicu, musíte použiť podväzok na jednom zariadení, neskôr budem písať prečo. Doska poskytuje tri prepojky (podľa schémy, je vidieť, že čiary A0, A1, A2 sú utiahnuté na výkon cez odpory R4, R5, R6), ktoré sú potrebné na zmenu adresovania zariadenia všetkých 8 možností. Zmena adresovania nám dáva možnosť pripojenia až ôsmich zariadení cez zbernicu IC2 s mikroobvodom PCF8574T, adresy sú uvedené na obrázku (predvolené adresa zariadenia 0x27). Modul je tiež vybavený potenciometrom R11 s jeho pomocou, môžete zmeniť kontrast displeja LCD.

Na pripojenie sa na module nachádza tri skupiny kontaktov:

Prvá skupina:
SCL: TACTLINE (sériové hodiny)
SDA: Dátový riadok (Serial DFTA)
VCC: "+" jedlo
GND: "-" Výživa

Druhá skupina:
VSS: "-" jedlo
VDD: "+" jedlo
VO: Výstup kontrastu
Rs: Register Výber
RW: Read / Write (Režim nahrávania pri pripojení k Zemi)
E: Povolenie (brána nadol)
DB0-DB3: JUNIOR BIT
DB4-DB7: Senior Rozhranie Bity
A: "+" Power Podsvietenie
K: "-" Podsvietenie napájania

Tretia skupina: (nainštalovaný predvolený jumper)
VCC:
A z LCD:

Pripojte sa k Arduino.

Požadované podrobnosti:
ARDUINO UNO R3 X 1 ks.
LCD displej 1602A (2 × 16, 5V, modrý) x 1 kus
Modul rozhrania I2C, IIC, TWI pre LCD X 1 PC.
Drôt DUPONT, 2,54 mm, 20 cm, F-M (žena - muž) x 1 ks.
USB 2.0 kábel A-B x 1 kus

Pripojenie:
Po prvé, spájame I2C modul na LCD displej, potom musíte pripojiť displej na ARDUINO UNO. Ak to chcete urobiť, použite program DUPONT, pripojte tabuľku nižšie.

Pre jasnosť budem dať inú schému.

Pre tento experiment musíte prevziať a nainštalovať knižnicu "LiquidCrystal_i2C". Potom skopírujte a vložte tento kód príklad do okna programu IDE ARDUINO a prevziať do regulátora.

/ * Testované na Arduino IDE 1.6.11 Skúšobný dátum 09/15/2016. * / #Include. #Include. LIKTHINGCRYSTAL_I2C LCD (0x27,16,2); // Nastavte adresu a veľkosť nastavenia prázdného (LCD.Init (); // LCD LCD.backLight () Inicializácia; // Otočte podsvietenie LCD.SetCursor (0,0); // Nastavte kurzor na začiatok 1 riadok LCD .print ("Ahoj, svet"); // Zobrazenie textu LCD.SETCURSOR (0,1); // Nastavte kurzor na začiatok 2 LCD.Print čiary ("www.set"); // Povedzte Text) Void Loop () ()

Testované na Arduino IDE 1.6.11

Dátum skúšky 09/15/2016

#Include.

#Include.

LIKVIDLOKRYSTAL_I2C LCD (0x27, 16, 2); // Nastavte adresu a veľkosť displeja

void Setup ()

lCD. init (); // Inicializácia LCD.

lCD. podsvietenie (); // Zapnite podsvietenie

lCD. Tlač ("ahoj, svet"); // Povedzte text

lCD. Tlač (www.sYT "); // Povedzte text

vOID LOOP ()

Ak ste urobili všetko správne, ale na displeji nie sú žiadne znaky, pokúste sa zvýšiť kontrast potenciometrom.


Spojenie
Stiahnuť knižnicu
Dokumentácia na mikroobvode

V tomto článku vám poviem, ako používať modul rozhrania I2C na ovládanie LCD displeja (2 × 16 / 20x4) pomocou ARDUINO. Tento modul vám umožní znížiť množstvo použitých výstupov regulátora namiesto 8 alebo 4-bitových pripojení, vyžaduje sa len 2 výstupy (SDA a SCL).

Technické špecifikácie

Podpora Podpora: LCD 16 × 02/20 × 04
VOLITEĽNÉ: Nastavenie kontrastu
Napájacie napätie. 5V.
Rozhranie: I2C.
Rozmery: 54mm x 19mm x 15 mm

Prehľad Modul rozhrania I2C

Vzhľadom k tomu, počet kontaktov na regulátoroch Arduino je obmedzený a často pri používaní rôznych snímačov a modulov, končia, je potrebné ich uložiť, tento modul bol vyvinutý pre tento prípad, môže byť implementovaný s použitím dvoch kontaktov (SDA a SCL) .

Teraz trochu o samotnom module je postavený na čipe PCF8574T. Rezistory R8 (4.7KOM) a R9 (4.7KOM) sú potrebné na pozastavenie čiar SDA a SCL, v ideálnom prípade pri pripájaní dvoch alebo viacerých zariadení cez I2C zbernicu, musíte použiť podväzok na jednom zariadení, neskôr budem písať prečo. Doska poskytuje tri prepojky (podľa schémy, je vidieť, že čiary A0, A1, A2 sú utiahnuté na výkon cez odpory R4, R5, R6), ktoré sú potrebné na zmenu adresovania zariadenia všetkých 8 možností. Zmena adresovania nám dáva možnosť pripojenia až ôsmich zariadení cez zbernicu IC2 s mikroobvodom PCF8574T, adresy sú uvedené na obrázku (predvolené adresa zariadenia 0x27). Modul je tiež vybavený potenciometrom R11 s jeho pomocou, môžete zmeniť kontrast displeja LCD.

Na pripojenie sa na module nachádza tri skupiny kontaktov:

Prvá skupina:
SCL: TACTLINE (sériové hodiny)
SDA: Dátový riadok (Serial DFTA)
VCC: "+" jedlo
GND: "-" Výživa

Druhá skupina:
VSS: "-" jedlo
VDD: "+" jedlo
VO: Výstup kontrastu
Rs: Register Výber
RW: Read / Write (Režim nahrávania pri pripojení k Zemi)
E: Povolenie (brána nadol)
DB0-DB3: JUNIOR BIT
DB4-DB7: Senior Rozhranie Bity
A: "+" Power Podsvietenie
K: "-" Podsvietenie napájania

Tretia skupina: (nainštalovaný predvolený jumper)
VCC:
A z LCD:

Pripojte sa k Arduino.

Požadované podrobnosti:
ARDUINO UNO R3 X 1 ks.
LCD displej 1602A (2 × 16, 5V, modrý) x 1 kus
Modul rozhrania I2C, IIC, TWI pre LCD X 1 PC.
Drôt DUPONT, 2,54 mm, 20 cm, F-M (žena - muž) x 1 ks.
USB 2.0 kábel A-B x 1 kus

Pripojenie:
Po prvé, spájame I2C modul na LCD displej, potom musíte pripojiť displej na ARDUINO UNO. Ak to chcete urobiť, použite program DUPONT, pripojte tabuľku nižšie.

Pre jasnosť budem dať inú schému.

Pre tento experiment musíte prevziať a nainštalovať knižnicu "LiquidCrystal_i2C". Potom skopírujte a vložte tento kód príklad do okna programu IDE ARDUINO a prevziať do regulátora.

/ * Testované na Arduino IDE 1.6.11 Skúšobný dátum 09/15/2016. * / #Include. #Include. LIKTHINGCRYSTAL_I2C LCD (0x27,16,2); // Nastavte adresu a veľkosť nastavenia prázdného (LCD.Init (); // LCD LCD.backLight () Inicializácia; // Otočte podsvietenie LCD.SetCursor (0,0); // Nastavte kurzor na začiatok 1 Linka LCD .Print ("Ahoj, svet"); // Zobrazenie textu LCD.SetCursor (0,1); // Nastavte kurzor na Top 2 LCD.Print Lines ("www.robotchip.ru"); // Povedzte text) VOID LOOP () ()

Testované na Arduino IDE 1.6.11

Dátum skúšky 09/15/2016

#Include.

#Include.

LIKVIDLOKRYSTAL_I2C LCD (0x27, 16, 2); // Nastavte adresu a veľkosť displeja

void Setup ()

lCD. init (); // Inicializácia LCD.

lCD. podsvietenie (); // Zapnite podsvietenie

lCD. Tlač ("ahoj, svet"); // Povedzte text

lCD. Tlač ("www.robotchip.ru"); // Povedzte text

vOID LOOP ()

Stiahnite si program

Ak ste urobili všetko správne, ale na displeji nie sú žiadne znaky, pokúste sa zvýšiť kontrast potenciometrom.


Spojenie
Download Library LiquidCrystal_i2c.
Dokumentácia na mikroobvode

Modul LCD I2C vám umožňuje pripojiť zobrazenie znakov na dosku Arduino z celého dva signálne vodiče.

Použité komponenty (kúpiť v Číne):

. Riadiaci poplatok

. Spojovacie vodiče

Základné špecifikácie:

Displej: Symbol 16x02 alebo 20x04
. Osvetlenie: modrá s bielymi symbolmi
. Kontrast: Konfigurovaný potenciometer
. Napájacie napätie: 5V
. Rozhranie: I2C.
. I2C Adresa: 0x27
. Veľkosti: 82mm x 35mm x 18mm

Pripojte sa k Arduino.

Modul je vybavený štandardným štandardným konektorom 2,54 mm

SCL.: Sériové hodiny sériové hodiny

SDA: Sekvenčná dátová linka (sériové údaje)

Vcc.: "+"

GND.: "-" Moc

Závery sú zodpovedné za rozhranie I2C na arduino doskách na základe rôznych regulátorov sa líšia.

Ak chcete pracovať s týmto modulom, musíte nainštalovať knižnicu LiquidCrystal_i2C1602v1

Stiahnite si, rozbaľte a hodí do priečinka Arduino v priečinku ARDUINO. V prípade, že v čase pridávania knižnice bol otvorený ARDUINO IDE, reštartoval životné prostredie.

Choďte priamo na náčrt. V tomto príklade stiahnite štandard "ahoj, svet!" A pre adresu našej komunity.

kódový kód vzorového programu:

#Include. #Include. LIKTHINGCRYSTAL_I2C LCD (0x27,16,2); / * Nastavte adresu a rozmer displeja. Pri použití modulu LCD I2C s displejom 20x04 nie je možné zmeniť nič v kóde, mal by nastaviť len správny rozmer * / Neplatný. nastaviť. () (LCD.Init (); // Inicializácia LCD. LCD.BAPPORT (); // Zapnite podsvietenie // kurzor je na začiatku 1. linky LCD.Print ("Ahoj, Svet!"); // Zobrazenie textu LCD.SETCURSOR (0, 1); // Nainštalujte kurzor na začiatku 2 riadkov LCD.Print ("miesto"); // Povedzte text) Void slučky. () { }

Vytvorenie vlastných znakov

So uzatvorením prideleného textu, písmená anglickej abecedy sú šité do pamäte regulátora na displeji a nie sú žiadne problémy s nimi. Ale čo ak nie je požadovaný symbol v regulátore pamäte?

Nie je to potrebné, požadovaný symbol možno vykonať manuálne. Táto metóda je čiastočná, obmedzenie 7 znakov vám pomôže vyriešiť výstupný problém.

Bunka, na základe posudzovaných displejov, má rozlíšenie 5x8 bodov. Všetko, čo úloha vytvárania symbolu je znížená na napísanie bitovej masky a usporiadať jeden z nich na miestach, kde by mal existovať bod a noliki, kde nie je č.

Vo vyššie uvedenom príklade si nakreslite smajlík.

kódový kód vzorového programu:

// testované na Arduino IDE 1.0.5 // Pridajte potrebné knižnice #Include. #Include. // bitová maska \u200b\u200bsymbol úsmev Byte Smile \u003d (B00010, B00001, B11001, B00001, B11001, B00001, B00010,); LIKVIDLOCIÁLNYTA LKUTNÝCH LCD (0x27,20,4); // Nastavte adresu a rozmer displeja. Neplatný. nastaviť. () (LCD.Init (); // Inicializácia LCD. LCD.BAPPORT (); // Zapnite podsvietenie // Vytvorte znak na číslo 0 LCD.CreateAchar (1, úsmev); LCD.SETCURSOR (0, 0); // Nastavte kurzor na Top 1 riadok LCD.Print ("1"); // Zobraziť emotikony (symbol na číslo 1) - "1" ) slučky. () { }

Program pre jednoduché vytváranie znakov

V pripomienok, účastník Spoločenstva hodil odkaz na generátor symbolov



Páči sa vám článok? Zdieľaj to