v tomto tutoriálu vysvětlím, jak nastavit LCD na Arduino a ukázat vám všechny různé způsoby, jak jej naprogramovat. Ukážu vám, jak tisknout text, posouvat text, vytvářet vlastní znaky, blikat text a umístit text. Jsou skvělé pro každý projekt, který výstupy dat, a mohou váš projekt mnohem zajímavější a interaktivní.
displej je 16×2 LCD displeji, které jsem si koupil za asi $5. Možná se divíte, proč se nazývá 16×2 LCD., Část 16×2 znamená, že LCD má 2 řádky a může zobrazit 16 znaků na řádek. LCD obrazovka 16×2 proto může zobrazit až 32 znaků najednou. Je možné zobrazit více než 32 znaků s posouváním ačkoli.
kód v tomto článku je napsán pro LCD, které používají standardní ovladač Hitachi HD44780. Pokud má váš LCD 16 kolíků, pravděpodobně má ovladač Hitachi HD44780. Tyto displeje mohou být zapojeny buď do 4 bitového režimu nebo 8 bitového režimu. Zapojení LCD v 4 bitovém režimu je obvykle výhodné, protože používá čtyři méně vodičů než 8 bitový režim., V praxi neexistuje znatelný rozdíl ve výkonu mezi oběma režimy. V tomto tutoriálu připojím LCD v 4bitovém režimu.
připojení LCD k Arduino
zde je schéma kolíků na LCD displeji, který používám. Připojení z každého pin k Arduino bude stejné, ale vaše kolíky mohou být uspořádány odlišně na LCD displeji., Ujistěte se, podívejte se na list, nebo se podívejte na etikety na konkrétní LCD:
Také, možná budete muset pájky 16-pin header pro LCD před připojením na kontaktním poli. Postupujte podle schématu níže drát LCD pro Arduino:
rezistoru ve schématu výše nastavuje jas podsvícení. Typická hodnota je 220 ohmů, ale budou fungovat i jiné hodnoty., Menší odpory způsobí, že podsvícení bude jasnější.
potenciometr slouží k nastavení kontrastu obrazovky. Obvykle používám potenciometr 10K Ohm, ale budou fungovat i jiné hodnoty.
Tady je datasheet pro 16×2 LCD s všechny technické informace o displeji:
16×2 LCD Datasheet
Programování Arduino
Všechny níže uvedený kód používá LiquidCrystal knihovny, které přijde pre-nainstalovány s Arduino IDE., Knihovna je sada funkcí, které lze snadno přidat do programu ve zkráceném formátu.
aby bylo možné knihovnu používat, musí být součástí programu. Řádek 1 v níže uvedeném kódu to provede příkazem #include <LiquidCrystal.h>
. Když do programu zahrnete knihovnu, veškerý kód v knihovně se nahraje do Arduina spolu s kódem pro váš program.
nyní jsme připraveni se dostat do programování! Půjdu přes další zajímavé věci, které můžete udělat v okamžiku, ale prozatím umožňuje spustit jednoduchý testovací program. Tento program vytiskne “ Ahoj, svět!,“na obrazovku. Zadáním tohoto kódu do Arduino IDE a nahrát ji na tabuli:
#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { lcd.begin(16, 2); lcd.print("hello, world!");}void loop() {}
Váš LCD obrazovka by měla vypadat takto:
LCD Displej Možnosti
k Dispozici je 19 různých funkcí v LiquidCrystal knihovny k dispozici pro nás k použití. Tyto funkce dělají věci, jako je změna polohy textu, přesun textu po obrazovce nebo zapnutí nebo vypnutí displeje. Následuje krátký popis každé funkce a jak ji používat v programu.,
LiquidCrystal()
LiquidCrystal()
funkce nastaví piny Arduino používá pro připojení k LCD. Můžete použít některý z digitálních pinů Arduino k ovládání LCD. Stačí dát Arduino pin čísla v závorkách v tomto pořadí:
LiquidCrystal(RS, E, D4, D5, D6, D7)
RS, E, D4, D5, D6, D7, LCD piny.
například řekněte, že chcete, aby se LCD pin D7 připojil k Arduino pin 12., Stačí dát „12“ v místě D7 ve funkci, jako je tento:
LiquidCrystal(RS, E, D4, D5, D6, 12)
Tato funkce musí být umístěn před void setup()
část programu.
lcd.begin()
tato funkce nastavuje rozměry LCD. Musí být umístěn před jakoukoli jinou funkcí LiquidCrystal v sekcivoid setup()
programu. Počet řádků a sloupců je zadán jako lcd.begin(columns, rows)
., Pro LCD displej 16×2 byste použili lcd.begin(16, 2)
a pro LCD displej 20×4 byste použili lcd.begin(20, 4)
.
tato funkce vymaže jakýkoli text nebo data již zobrazená na LCD displeji., Pokud použijete lcd.clear()
lcd.print()
delay()
funkce void loop()
oddíl, můžete vytvořit jednoduchý blikající text program:
lcd.home()
Tato funkce umístí kurzor v levém horním rohu obrazovky, a vytiskne všechny následné textu z této pozice. Například tento kód nahrazuje první tři písmena “ hello world!,“s X je:
lcd.setCursor()
Podobně, ale užitečnější než lcd.home()
lcd.setCursor()
. Tato funkce umístí kurzor (a jakýkoli tištěný text) na libovolnou pozici na obrazovce. Může být použit v sekcivoid setup()
nebovoid loop()
vašeho programu.
pozice kurzoru je definována pomocí lcd.setCursor(column, row)
. Souřadnice sloupců a řádků začínají od nuly(0-15 a 0-1)., Například pomocí lcd.setCursor(2, 1)
v sekci void setup()
v části “ Ahoj, svět!“program nad tisky“ Dobrý den, svět!“na dolní řádek a posune doprava o dvě místa:
lcd.write()
pomocí této funkce můžete psát různé typy údajů na LCD, například čtení z čidla teploty, nebo souřadnice z GPS modulu., Můžete jej také použít k tisku vlastních znaků, které si sami vytvoříte (více o tom níže). Použijtelcd.write()
vvoid setup()
nebovoid loop()
část vašeho programu.
lcd.print()
Tato funkce se používá k tisku textu na LCD. Může být použit v sekcivoid setup()
nebo v sekcivoid loop()
programu.
pro tisk čísel nejsou nutné žádné uvozovky. Chcete-li například vytisknout 123456789, použijte lcd.print(123456789)
.,
lcd.print()
umí tisknout čísla v desítkové, binární, hexadecimální a osmičkové bázi. Například:
lcd.cursor()
Tato funkce vytvoří viditelný kurzor. Kurzor je vodorovná čára umístěná pod dalším znakem, který má být vytištěn na LCD displeji.
funkce lcd.noCursor()
vypne kurzor., lcd.cursor()
lcd.noCursor()
mohou být použity společně v void loop()
oddíl, aby se blikající kurzor podobné tomu, co vidíte v mnoha textových vstupních polí:
Tato místa blikající kurzor po vykřičník v „hello, world!“
kurzory lze umístit kdekoli na obrazovce pomocí funkce lcd.setCursor()
. Tento kód umístí blikající kurzor přímo pod vykřičník v “ ahoj, svět!,“:
lcd.blink()
tato funkce vytvoří blokový kurzor, který bliká a zhasne přibližně na 500 milisekund za cyklus. Použijte jej v sekcivoid loop()
. Funkce lcd.noBlink()
zakáže blikající kurzor bloku.
lcd.display()
tato funkce zapne jakýkoli text nebo kurzory, které byly vytištěny na LCD obrazovce. Funkce lcd.noDisplay()
vypne jakýkoli text nebo kurzory vytištěné na LCD displeji, aniž by jej vymazal z paměti LCD.,
tyto dvě funkce lze společně použít v sekcivoid loop()
k vytvoření blikajícího textového efektu. Tento kód bude dělat „Ahoj, svět!“text blikat a vypnutí:
lcd.scrollDisplayLeft()
Tato funkce má něco, vytištěné na LCD a pohybuje se doleva. Měl by být použit v sekcivoid loop()
s příkazem delay po něm. Funkce přesune text 40 mezer doleva, než se vrátí zpět na první znak. Tento kód přesune „Ahoj, svět!,“text vlevo, rychlostí jedné sekundy na znak:
textové řetězce delší než 40 mezer budou vytištěny na řádek 1 po 40. pozici, zatímco začátek řetězce bude pokračovat v tisku na řádek 0.
lcd.scrollDisplayRight()
Tato funkce se chová stejně jako lcd.scrollDisplayLeft()
, ale přesune text na pravé straně.
lcd.autoscroll()
Tato funkce přijímá řetězec textu a posouvá zprava doleva v krocích po počet znaků řetězce., Například, pokud máte řetězec textu, který je 3 znaky dlouhý, bude to posun textu 3 místa vlevo s každým krokem:
lcd.scrollDisplay()
funkce, text může být až 40 znaků před opakováním. Na první pohled se tato funkce zdá být méně užitečná než funkce lcd.scrollDisplay()
, ale může být velmi užitečná pro vytváření animací s vlastními znaky.
lcd.noAutoscroll()
lcd.noAutoscroll()
změní lcd.autoscroll()
funkce off., Tuto funkci použijte před nebo po lcd.autoscroll()
void loop()
oddíl vytvořit sekvence rolování textu nebo animace.
lcd.rightToLeft()
tato funkce nastavuje směr, kterým je text vytištěn na obrazovku. Výchozí režim je zleva doprava pomocí příkazu lcd.leftToRight()
, ale můžete najít některé případy, kdy je to užitečné pro výstup textu v opačném směru:
Tento kód se vypíše „hello, world!“text jako“!dlrow, olleh“., Pokud neuvedete umístění kurzoru pomocí lcd.setCursor()
, text se vytiskne z polohy (0, 1) a bude viditelný pouze první znak řetězce.
lcd.createChar()
Tento příkaz umožňuje vytvořit své vlastní postavy. Každý znak LCD 16×2 má šířku 5 pixelů a výšku 8 pixelů. V jednom programu lze definovat až 8 různých vlastních znaků., Chcete-li navrhnout své vlastní postavy, budete muset vytvořit binární matici své vlastní postavy z generátoru znaků LCD nebo ji mapovat sami. Tento kód vytvoří symbol stupně (°):
Existuje mnoho skvělých věcí, které můžete udělat se stalo s těmito 16×2 Lcd! Zkuste kombinovat některé z těchto funkcí a uvidíte, co se stane.
zde je video verze tohoto tutoriálu, takže můžete vidět, co každá funkce dělá na LCD v reálném čase: