Lekce 10 - Arduino a I2C - LCD
11.03.2013 14:20V 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:
- Vcc
- GND
- V0 - nastavení kontrastu displeje
- RS
- RW
- E
- D0
- D1
- D2
- D3
- D4
- D5
- D6
- D7
- podsvětlení Vcc
- 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 :
Zdrojový kód a potřebné soubory najdete všechny zde.
———
ZpětDiskusní téma: Lekce 10 - Arduino a I2C - LCD
Datum | 18.11.2017 |
---|---|
Vložil | janm |
Titulek | Re: Zobrazuje se pouze 1. znak |
Me pomohlo aktualizace knihoven lcd pouzil jsem ze sranek robodoupe
———
Datum | 10.10.2015 |
---|---|
Vložil | David |
Titulek | Display nefunguje |
Ahoj mám I2C sběrnici, ale po zapojení vidím na displayi jen velmi tmavé čtverce, které skoro nejsou rozeznat od pozadí. Všude na internetu píšou, že se musí pohrát s potenciometrem, ale já ho na tom displayi prostě nemám. Můžete někdo poradit?
———
Datum | 17.01.2016 |
---|---|
Vložil | Vlaster |
Titulek | Re: Display nefunguje |
ten by měl být na tom modulu I2C
———
Datum | 23.07.2015 |
---|---|
Vložil | Standa |
Titulek | Lekce 10 |
Krásně napsáno - akorád to nefunguje.
———
Datum | 13.06.2015 |
---|---|
Vložil | umpala |
Titulek | L2C nekomunikuje |
Nevíte proč mi vůbec nesvítí displej? Rozsvítí se jenom po připojení napájení i na levé straně L2C místo bridge propojení k pinu LED.
———
Datum | 01.03.2015 |
---|---|
Vložil | J |
Titulek | otáčení trimru |
Ahoj, mám stejný modul jako autor. Po zapojení se mi jen rozsvítil displej a text nebyl vidět. Zkoušel jsem otáčet trimr o 2-3 otáčky a stále nic. Po zapojení druhého identického modulu bylo vidět jen hodně tmavé kontury písma. Aby bylo písmo čitelné, musel jsem trimrem otočit min. 10x. U prvního modulu bylo potřeba cca. 20 otáček. Třeba tato zkušennost někomu ušetří pár hodin času.
———
Datum | 15.08.2015 |
---|---|
Vložil | marian |
Titulek | Re: otáčení trimru |
diki pomohlo už som si myslel že mi to vobec nepojde po 8 hodinach testovania a nefunkčnosti som bol už zufaly, a to sa hram so 4 roznymi displejmi.
diki
———
Datum | 21.07.2014 |
---|---|
Vložil | Brand |
Titulek | modul spínačů |
dobrý den,
prosím nezníte někdo nějaký modul na který napojím třeba 8 spínačů a on mi do arduina bude přes I2C informace o stavech přepínačů (zapnuto/vypnuto) ?
děkuji
———
Datum | 21.07.2014 |
---|---|
Vložil | Brand |
Titulek | arduino nano |
dobrý den,
na jakých výstupech má arduino nano výstupy pro I2C sběrnici ?
Děkuji za odpověď.
———
Datum | 29.11.2014 |
---|---|
Vložil | tomajstr |
Titulek | Re: arduino nano |
jsou popsaný zezadu SDA a SCL (mám rev3, nevím jestli je to tak u všeh)