Lekce 10 - Arduino a I2C - LCD

11.03.2013 14:20

V této lekci si ukážeme k čemu nám je dobrá a jak můžeme využít tzv. I2C sběrnici. Tato umožňuje, pomocí 2-vodičového datového propojení, komunikaci mezi jedním nebo více procesory nebo integrovanými obvody s podporou I2C. Nechtěl bych se tady rozepisovat dopodrobna jak celá věc funguje, ale řekneme si o ní pár vět. 

     Ke sběrnici mohou být připojeny všechy integrované obvody, které zvládají speciální protokol komunikace. K těmto obvodům patří různé paměti, převodníkly D/A a A/D, senzory, obvody reálného času atd. Umožnujě připojení až 128 různých zařízení pomocí jak jsme si už řekli dvou obousměrných vodičů, z nihž jeden je SLC (Synchronous Clock) - hodinový signál a druhý vodič datový kanál SDA (Synchronous Data). Více o této problematice na wikipedi Naše arduino samozřejmě má podporu této komunikace a již vytvořenou a připravenou knihovnu. 

Pro naši ukázku jsem si sehnal několik součástek nebo modulů. V prvním případě si k Arduinu připojíme LCD diplej 16x2 znaků ke kterému jsem si pořídil levný I2C modul který je právě určen pro připojení k těmto druhům displejů. Dá se sehnat do 100 Kč takže za babku.

Na obrázku vidíte obě strany modulu. Jedno 4-pinové připojení pro komunikaci  a napájení a dále 16-pinové připojení LCD displeje. Já jsem nechtěl (ač je to již na to připraveno) připájet I2C LCD modul přímo k dipleji, z důvodu možného dalšího připojení k jinému LCD a složitému odpájení. 

Na LCD dipleji již jsem měl přípájen hřebínek s piny tak jsem spojil LCD s modulem pomocí malého nepájivého kontaktního pole. 

Musíte si dát pozor také na zapojení vývodů LCD. Ne všechny mají zapojeny stejně a modul I2C by vám ve spojení s displejem nefungoval. 

Zapojení pinů na modulu:

  1. Vcc
  2. GND
  3. V0 - nastavení kontrastu displeje
  4. RS
  5. RW
  6. E
  7. D0
  8. D1
  9. D2
  10. D3
  11. D4
  12. D5
  13. D6
  14. D7
  15. podsvětlení Vcc
  16. podsvětlení GND

V případě, že by piny na modulu a LCD nebyly shodné, propojte jej pomocí nepájivého kontaktního pole a propojovacích kabílků. Mě se to shodovalo, takže propojení je přímé. Jak můžete vidět na obrázku nahoře. Nyní nám již zbývá spojit modul s Arduinem. Na Arduinu Mega je sběrnice I2C na pinech 20 (SDA) a 21 (SCL). Opět schéma zapojení není potřeba, vše je jasně popsáno a i napájení modulu je jasné. Sami vidíte, že na Arduinu jsou použiti pouze 2 datové piny - paráda, zbyde spousta volných pinů pro další věci. Po zapnutí se vám může zdát, že nic nevidíte (jako mě), ale pouze stačilo nastavit kontrast pomocí modrého trimru na modulu a nápis se objevil.

 

Teď k programu. Nejprve si musíme stáhnout knihovnu LiquidCrystal_I2C buď z odkazu na  https://playground.arduino.cc nebo odtud. Nakopíruj te si jí do adresáře libraries jako v návodech v minulých tutoriálech. Vlastní zdrojový kód programu je velmi jednoduchý:

Další ukázka programu počítá dokola od 0 do 500:

Další podporované funkce knihovnou LiquidCrystal_I2C  :

 

  void clear();
  void home();
  void noDisplay();
  void display();
  void noBlink();
  void blink();
  void noCursor();
  void cursor();
  void scrollDisplayLeft();
  void scrollDisplayRight();
  void printLeft();
  void printRight();
  void leftToRight();
  void rightToLeft();
  void shiftIncrement();
  void shiftDecrement();
  void noBacklight();
  void backlight();
  void autoscroll();
  void noAutoscroll(); 
  void createChar(uint8_t, uint8_t[]);
  void setCursor(uint8_t, uint8_t); 
  virtual size_t write(uint8_t);
  void command(uint8_t);
 
Myslím, že již z angličtiny poznáte k čemu slouží, tak je na váš, které si vyzkoušíte a použijete ve svém vlastním programu. V dalším díle si ještě ke sběrnici I2C připojíme modul reálného času a tím vlasně s diplejem postavíme funkční digitální hodiny :-) .
 

Zdrojový kód a potřebné soubory najdete všechny zde.

 

 

 

Zpět

Diskusní téma: Lekce 10 - Arduino a I2C - LCD

Datum
Vložil
Titulek

funkčnost

teď to dělám při testu a funguje to napíču takže dobrý no

Datum
Vložil
Titulek

Jsi kkt

Nikdy jsem tě neměla ráda

Datum
Vložil
Titulek

Re: Jsi kkt

Omlouvám se :(

Datum
Vložil
Titulek

Re: Re: Jsi kkt

Děkuji, za zpětnou vazbu. Budu se tvojí odpovědí zabývat a přemýšlet pod zbylí rok.

Datum
Vložil
Titulek

tap224550hyerge

mes224550rttyneg sANgElw wAYW sohNsro

Datum
Vložil
Titulek

tup224550uytjthyegt

mys224550uttjr R1FQKus 5093 kAJVURj

Datum
Vložil
Titulek

I2C

Ahoj, půjde na tuto knihovnu použít i display z lekce 5 ...20x4znaků ? děkuji

Datum
Vložil
Titulek

nejde

Dobrý den, při nahrávání se červeně zvírazní lcd.init();
nevíte čím to muže být způseobeno?

Datum
Vložil
Titulek

Display zobrazuje jen 1. znak

Pokud se to tu jeste neresilo tak staci aktualizovat knihovnu.
Projekt - Pridat knihovnu - spravovat knihovnu.
najit knihovnu displaye I2C a tu aktualizovat na nejnovejsi.

Datum
Vložil
Titulek

Zapojení pinů na modulu:

s tímto zapojení jsem se ještě nesetkal.

1 | 2 | 3 | 4 | 5 >>

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.