Obsah:

Nabídka Arduino na displeji Nokia 5110 pomocí rotačního kodéru: 6 kroků (s obrázky)
Nabídka Arduino na displeji Nokia 5110 pomocí rotačního kodéru: 6 kroků (s obrázky)

Video: Nabídka Arduino na displeji Nokia 5110 pomocí rotačního kodéru: 6 kroků (s obrázky)

Video: Nabídka Arduino na displeji Nokia 5110 pomocí rotačního kodéru: 6 kroků (s obrázky)
Video: Мини-метеостанция на ESP32 (Arduino) и BME280 с выводом данных на дисплей DWIN. 2024, Červenec
Anonim
Image
Image
Nabídka Arduino na LCD telefonu Nokia 5110 pomocí rotačního kodéru
Nabídka Arduino na LCD telefonu Nokia 5110 pomocí rotačního kodéru

Vážení přátelé, vítejte u dalšího tutoriálu! V tomto videu se naučíme, jak vytvořit vlastní nabídku pro populární LCD displej Nokia 5110, aby byly naše projekty uživatelsky přívětivější a schopnější. Začněme!

Toto je projekt, který budeme stavět. Na displeji se zobrazí jednoduché menu a pomocí rotačního kodéru se mohu pohybovat nahoru nebo dolů a vybrat položku nabídky stisknutím tlačítka rotačního kodéru. Po stisknutí prostředního tlačítka rotačního kodéru se objeví další obrazovka a můžeme změnit hodnotu proměnné. Pokud ještě jednou stiskneme tlačítko rotačního kodéru, vrátíme se zpět na obrazovku hlavní nabídky. Nabídka má 6 položek a můžeme ji posouvat dolů nebo nahoru a položky na displeji se podle toho změní. Podívejte se na přiložené video, jak přesně funguje toto menu. Pokud si přejete, můžete jej samozřejmě upravit a vytvořit si vlastní složitější nabídky.

Pojďme se nyní podívat, jak tento projekt postavit.

Krok 1: Získejte všechny díly

Získejte všechny díly
Získejte všechny díly

Díly potřebné k vybudování tohoto projektu jsou následující:

  • Arduino Uno ▶
  • LCD displej Nokia 5110 ▶
  • Rotační kodér ▶
  • Malý prkénko ▶
  • Některé dráty ▶
  • Power Bank ▶

Náklady na projekt jsou velmi nízké, jsou nižší než 10 $. Odkazy na všechny části, které používám, najdete v popisu videa níže.

Krok 2: LCD displej Nokia 5110

Image
Image
Budování projektu
Budování projektu

Nokia 5110 je můj oblíbený displej pro mé projekty Arduino.

Nokia 5110 je základní grafický LCD displej, který byl původně určen jako displej mobilního telefonu. Používá řadič PCD8544, což je nízkoenergetický řadič/ovladač LCD CMOS. Díky tomu má tento displej působivou spotřebu energie. Když je zapnutý, využívá pouze 0,4 mA, ale podsvícení je vypnuté. V režimu spánku využívá méně než 0,06 mA! To je jeden z důvodů, proč je tento displej mým oblíbeným. PCD8544 je propojeno s mikrokontroléry prostřednictvím rozhraní sériové sběrnice. Díky tomu je použití displeje s Arduinem velmi snadné. Stačí připojit 8 vodičů.

Připravil jsem podrobný návod, jak používat LCD displej Nokia 5110 s Arduinem. Připojil jsem to video v tomto Instructable, bude to poskytovat užitečné informace o displeji, takže vám doporučuji sledovat to pečlivě. Cena displeje se pohybuje kolem 4 $.

Můžete ho získat zde: ▶

Krok 3: Rotační kodér

Image
Image

Rotační kodér, nazývaný také kodér hřídele, je elektromechanické zařízení, které převádí úhlovou polohu nebo pohyb hřídele nebo nápravy na analogový nebo digitální kód. Rotační kodéry se používají v mnoha aplikacích, které vyžadují přesné neomezené otáčení hřídele-včetně průmyslových ovládacích prvků, robotiky, speciálních fotografických objektivů, počítačových vstupních zařízení (jako jsou optomechanické myši a trackball), řízených stresových reometrů a rotujících radarových platforem.

Rotační kodér, který použijeme v tomto projektu, je velmi levný kodér. Má také zabudované tlačítko a aby to fungovalo, stačí připojit 5 vodičů. Připravil jsem podrobný návod, jak používat rotační kodér. Toto video najdete v příloze zde.

Náklady na tento rotační kodér jsou velmi nízké. Stojí kolem 1,5 $.

Můžete ho získat zde ▶

Krok 4: Budování projektu

Image
Image
Budování projektu
Budování projektu
Budování projektu
Budování projektu

Pojďme nyní spojit všechny části dohromady. Pokud jste před vytvořením tohoto projektu v minulosti nepoužívali rotační kodér, doporučuji vám podívat se na tutoriál, který jsem o rotačních kodérech připravil. Pomůže vám to pochopit, jak rotační kodéry fungují, a získáte s nimi nějaké zkušenosti. Toto video je připojeno zde.

Takto jsem umístil displej na malé prkénko. Nejprve připojíme displej. První pin displeje, který je Reset, přejde na digitální pin 3 Arduino Uno, druhý pin jde na digitální pin 4, třetí pin jde na digitální pin 5, čtvrtý pin na digitální pin 11 a pátý pin na digitální kolík 13. Další pin je Vcc. Vcc připojíme na kladnou kolejnici prkénka a kladnou lištu prkénka na 3,3V výstup Arduina. Dalším pinem je Podsvícení displeje. Protože jej chceme ovládat pomocí softwaru, připojíme jej k digitálnímu pinu 7. Poslední pin je GND. GND připojíme k záporné liště prkénka a záporné liště prkénka k Arduino GND.

Teď už jen musíme připojit rotační kodér. První pin je GND a připojíme jej k záporné liště prkénka. Další pin je Vcc a připojíme jej k kladné liště prkénka. Další pin je SW a připojíme jej k analogovému pinu 2. Další pin se jmenuje DT a připojíme jej k analogovému pinu 1. Konečně je pin CLK připojen k analogovému pinu 0. Schematický diagram tohoto projektu najdete v popis videa níže.

Nyní jsme připraveni projekt zapnout. Jak vidíte, projekt funguje dobře a nabídka funguje podle očekávání! Skvělé, pojďme se nyní podívat na software projektu.

Krok 5: Kód projektu

Kodex projektu
Kodex projektu

V tomto projektu používáme 4 knihovny. Pro zobrazení používáme dvě knihovny a pro rotační kodér dvě.

  1. Adafruit GFX:
  2. Nokia 5110:
  3. Knihovna kodérů:
  4. Knihovna TimerOne:

Nejprve se podíváme na funkci drawMenu. Tato funkce je zodpovědná za vykreslení Menu na displeji. Tato funkce se nazývá každých několik milisekund, takže pokud dojde v nabídce ke změně, je tato funkce zodpovědná za aktualizaci nabídky na obrazovce.

int menuitem = 1; int frame = 1; int stránka = 1; int lastMenuItem = 1;

K dispozici jsou také 3 velmi důležité globální proměnné, stránka proměnných, položka nabídky proměnných a rámec proměnných. Stránka proměnné si pamatuje, která obrazovka uživatelského rozhraní je na obrazovce zobrazena. Pokud je tedy proměnná stránky 1, jsme na hlavní obrazovce uživatelského rozhraní a pokud je proměnná 2, jsme na sekundární obrazovce uživatelského rozhraní, kde nastavujeme hodnotu proměnné. Položka nabídky si pamatuje vybranou položku nabídky. Pokud je tedy jeho hodnota 1, je vybrána první položka nabídky, takže funkce drawMenu musí tuto položku nabídky nakreslit jako černou s bílými písmeny. Pokud je položka nabídky 2, je vybrána druhá položka nabídky atd. Proměnná rámce si pamatuje, která část nabídky je zobrazena na obrazovce. Protože nabídka, kterou jsme vytvořili, obsahuje 6 položek a najednou můžeme zobrazit pouze 3 z nich, musíme vědět, které položky se zobrazují na obrazovce. Proměnná rámců nám říká přesně toto. Pokud má proměnná rámce hodnotu 1, zobrazíme první tři položky nabídky, pokud je 2, zobrazíme položky 2, 3, 4 a tak dále.

Pokusil jsem se kód co nejjednodušeji upravit, takže jsem vytvořil některé globální proměnné, které obsahují názvy položek nabídky. Tímto způsobem můžete snadno vytvářet vlastní nabídky bez hledání v kódu.

String menuItem1 = "Contrast"; String menuItem2 = "Volume"; String menuItem3 = "Jazyk"; String menuItem4 = "Obtížnost"; String menuItem5 = "Světlo: ZAPNUTO"; String menuItem6 = "Reset";

booleovské podsvícení = true;

int kontrast = 60; int objem = 50;

Řetězcový jazyk [3] = {"EN", "ES", "EL"};

int selectedLanguage = 0;

Obtížnost řetězce [2] = {"EASY", "HARD"};

int vybraný Obtížnost = 0;

Nejprve inicializujeme všechny globální proměnné, které jsou v kódu potřeba. Dále inicializujeme zobrazení. Ve funkci smyčky nejprve voláme funkci drawMenu pro vykreslení nabídky na obrazovce. Poté načteme hodnotu z rotačního kodéru a zkontrolujeme, zda je tlačítko stisknuto. Pokud jsme například na hlavní obrazovce uživatelského rozhraní a je vybrána první položka nabídky, pokud se hodnota z rotačního kodéru zvýšila, proměnná položky položky se zvýší a v další smyčce funkce drawMenu vykreslí druhou položku nabídky podle výběru. Pokud nyní stiskneme tlačítko rotačního kodéru, přejdeme na druhou stránku, kde nastavíme hodnotu proměnné. Opět pomocí rotačního kodéru můžeme hodnotu proměnné zvýšit nebo snížit. Pokud stiskneme tlačítko, přejdeme zpět na stránku hlavní nabídky a proměnná stránky se zmenší.

To je základní myšlenka tohoto menu. Stejným způsobem postupujeme u všech položek nabídky a stránek. Kód je složitý, je dlouhý přes 400 řádků. Vypadá to složitě, ale pokud to sami vyzkoušíte, snáze to pochopíte a budete to moci změnit, rozšířit a použít ve svých vlastních projektech. Zde jako vždy najdete kód.

Krok 6: Testování projektu

Testování projektu
Testování projektu

Pokud načteme kód, uvidíme, že projekt funguje podle očekávání. Pomocí hřídele se můžeme pohybovat v nabídce nahoru a dolů a libovolnou položku nabídky můžeme vybrat stisknutím tlačítka rotačního kodéru. Jak je to cool!

Nyní, když víme, jak vytvářet nabídky pro LCD displeje Nokia 5110, můžeme do našich projektů přidat další funkce a učinit je uživatelsky přívětivějšími. Toto jednoduché menu, které jsme dnes vytvořili, lze však vylepšit. Mohli bychom použít přerušení místo neustálé kontroly stavů tlačítek. Tímto způsobem můžeme snížit spotřebu energie projektu a udělat kód čistší. Brzy připravím video o přerušeních, takže zůstaňte naladěni. Rád bych slyšel váš názor na tento projekt menu. Považujete to za užitečné a plánujete použít nabídku v kterémkoli z vašich projektů. Napište prosím své myšlenky a nápady níže, díky!

Doporučuje: