Na eBay jsem koupil interface pro připojení LCD displeje přes rozhraní I2C. Pro připojení k Arduinu potom stačí pouze dva datové vodiče plus napájení. Deska obsahuje osmibitový expander, obvod PCF 8574.
Po stažení příslušné knihovny ze stránek Arduina a zkoušce něco poslat na LCD, se ale na displeji nic nezobrazilo. Prověřil jsem tedy zapojení desky a zjistil, že moje deska mé jiné zapojení než s kterým počítá knihovna, kterou jsem hodlal použít.
Takže jsem chtěl pomocí vodiču projit správné signály k sobě. Bohužel ale jeden z pinů obvodu PCF 8574 který měl být připojen na řídicí signál LCD byl u mojí desky použit pro ovládání podsvětlení. Tak zbylo druhé řešení zkusit najít správnou knihovnu, nebo tu stávající upravit. Našel jsem vhodnou knihovnu, která už počítá s různým zapojením a při inicializaci je možné určit jak je interface zapojeno. Adresa obvodu PCF8574T je 0x27 pokud jsou adresní piny A0,A1 a A2 nepropojeny. Pak už vše fungovalo bezvadně.
Pozor na to, jaký obvod je na rozhraní osazen. Při posledním nákupu na eBay byl na desce PCF8574AT, který má při nepropojených pinech A0, A1, A2 adresu 0x3F.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <Wire.h> #include <LiquidCrystal_I2C.h> // Nastav I2C addresu, piny PCF8574 a podsviceni // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { lcd.begin(20,4); // pocet znaku, pocet radku lcd.backlight(); // zapni podsvetleni lcd.setCursor(0,0); lcd.print("********************"); lcd.setCursor(0,1); lcd.print(" LCD I2C DISPLAY"); lcd.setCursor(0,2); lcd.print(" WWW.TNWEB.TODE.CZ"); lcd.setCursor(0,3); lcd.print("********************"); } void loop() { } |
Download:
Díky za návod, vyzkoušel jsem toho dost a tento první s mým displayem funguje 🙂 sqjelé 🙂
Doplněna informace o adrese obvodu PCF8574AT.
Pingback: Fotovoltaický MPPT měnič pro bojler | TN Web
Chybí vám tam nahoře knihovna, ale stejně to nejde zkompilovat, hlásí to tuto chybu, nevíte , kde by mohl být problém?
Warning: Board breadboard:avr:atmega328bb doesn’t define a ‚build.board‘ preference. Auto-set to: AVR_ATMEGA328BB
sketch_dec13a:3: error: stray ‚\240‘ in program
sketch_dec13a:7: error: stray ‚\240‘ in program
sketch_dec13a:10: error: stray ‚\240‘ in program
sketch_dec13a:13: error: stray ‚\240‘ in program
sketch_dec13a:22: error: stray ‚\240‘ in program
sketch_dec13a:24: error: stray ‚\240‘ in program
exit status 1
stray ‚\240‘ in program
Jo, díky za upozornění, knihovna tam patří „Wire.h“.
Přidal jsem ke stažení program a složku s knihovnami „NewliquidCrystal“,
složku ulož do C:\Users\Uživatel\Documents\Arduino\libraries\
Odzkoušeno na Arduino IDE 1.6.7.
Ta chyba, těžko říct, před kompilaci nastav v menu Nástroje/Vývojová deska, tu správnou Genuino Uno, Nano, Mega 2560 podle toho pro co to kompiluješ.
Díky za odpověď, měl jsem verzi 1.6.13 a v ní nejde zkompilovat , ani ten tvůj program na fotovoltaický měnič. V 1.6.8 to jde. Používám Uno nebo čip od Atmegy 328P na 8MHz(bez krystalu).
Jo to, že nejde program přeložit v nové verzi Arduina se mi už stalo několikrát, proto si teď už do hlavičky programu píšu čím jsem to překládal.
Pingback: Fotovoltaický MPPT měnič pro ohřev vody SITON 210 | TN Web