Interface I2C pro LCD Displej

IMG_9589Na 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.

I2C LCD PCF8574

PCF8574

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.

I2C LCD rozhrani

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()   
{
}

 

IMG_9590 IMG_9589

Download:

HelloWorld_i2c.zip

Příspěvek byl publikován v rubrice Arduino, Elektronika se štítky , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

8 komentářů u Interface I2C pro LCD Displej

  1. Martas napsal:

    Díky za návod, vyzkoušel jsem toho dost a tento první s mým displayem funguje 🙂 sqjelé 🙂

  2. Tom napsal:

    Doplněna informace o adrese obvodu PCF8574AT.

  3. Pingback: Fotovoltaický MPPT měnič pro bojler | TN Web

  4. zozan napsal:

    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

    • Tom napsal:

      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š.

  5. zozan napsal:

    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).

    • Tom napsal:

      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.

  6. Pingback: Fotovoltaický MPPT měnič pro ohřev vody SITON 210 | TN Web

Napsat komentář: zozan Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *