Obsah:

Ponuka Arduino na telefóne Nokia 5110 LCD pomocou rotačného kodéra: 6 krokov (s obrázkami)
Ponuka Arduino na telefóne Nokia 5110 LCD pomocou rotačného kodéra: 6 krokov (s obrázkami)

Video: Ponuka Arduino na telefóne Nokia 5110 LCD pomocou rotačného kodéra: 6 krokov (s obrázkami)

Video: Ponuka Arduino na telefóne Nokia 5110 LCD pomocou rotačného kodéra: 6 krokov (s obrázkami)
Video: Сделайте осциллограф своими руками 10 долларов против обычного осциллографа 450 долларов с 2024, November
Anonim
Image
Image
Menu Arduino na telefóne Nokia 5110 LCD pomocou rotačného kodéra
Menu Arduino na telefóne Nokia 5110 LCD pomocou rotačného kodéra

Milí priatelia, vitajte pri ďalšom návode! V tomto videu sa naučíme zostaviť vlastnú ponuku pre obľúbený LCD displej Nokia 5110, aby boli naše projekty užívateľsky prívetivejšie a schopnejšie. Začnime!

Toto je projekt, ktorý sa chystáme vybudovať. Na displeji sa zobrazí jednoduché menu a pomocou rotačného enkodéra sa môžem pohybovať hore alebo dole a vybrať položku ponuky stlačením tlačidla na rotačnom enkodéri. Po stlačení stredného tlačidla rotačného enkodéra sa zobrazí ďalšia obrazovka a môžeme zmeniť hodnotu premennej. Ak stlačíme tlačidlo rotačného enkodéra ešte raz, vrátime sa na obrazovku hlavnej ponuky. Ponuka má 6 položiek a v ponuke sa môžeme posúvať nadol alebo nahor a položky na displeji sa podľa toho zmenia. Pozrite sa na priložené video, aby ste videli, ako presne toto menu funguje. Ak si to prajete, môžete ho samozrejme upraviť a vytvoriť si tak vlastné komplexnejšie ponuky.

Teraz sa pozrime, ako vytvoriť tento projekt.

Krok 1: Získajte všetky diely

Získajte všetky diely
Získajte všetky diely

Časti potrebné na výstavbu tohto projektu sú tieto:

  • Arduino Uno ▶
  • LCD displej Nokia 5110 ▶
  • Rotačný kodér ▶
  • Malý breadboard ▶
  • Niektoré káble ▶
  • Power Bank ▶

Náklady na projekt sú veľmi nízke, sú nižšie ako 10 dolárov. Odkazy na všetky diely, ktoré používam, nájdete v popise videa nižšie.

Krok 2: LCD displej Nokia 5110

Image
Image
Budovanie projektu
Budovanie projektu

Nokia 5110 je môj obľúbený displej pre moje projekty Arduino.

Nokia 5110 je základný grafický LCD displej, ktorý bol pôvodne určený ako displej mobilného telefónu. Používa ovládač PCD8544, ktorý je nízkoenergetickým ovládačom/ovládačom CMOS LCD. Vďaka tomu má tento displej pôsobivú spotrebu energie. Keď je zapnutý, používa iba 0,4 mA, ale podsvietenie je vypnuté. V režime spánku spotrebuje menej ako 0,06 mA! To je jeden z dôvodov, prečo je tento displej mojim obľúbeným. PCD8544 je prepojený s mikrokontrolérmi prostredníctvom rozhrania sériovej zbernice. Vďaka tomu je použitie displeja s Arduino veľmi jednoduché. Stačí pripojiť 8 vodičov.

Pripravil som podrobný návod, ako používať LCD displej Nokia 5110 s Arduino. Pripojil som to video v tomto návode, bude poskytovať užitočné informácie o displeji, preto vám odporúčam, aby ste si ho pozorne pozreli. Cena displeja sa pohybuje okolo 4 dolárov.

Môžete ho získať tu: ▶

Krok 3: Rotačný kodér

Image
Image

Rotačný snímač, tiež nazývaný snímač polohy hriadeľa, je elektromechanické zariadenie, ktoré prevádza uhlovú polohu alebo pohyb hriadeľa alebo nápravy na analógový alebo digitálny kód. Rotačné kodéry sa používajú v mnohých aplikáciách, ktoré vyžadujú presné neobmedzené otáčanie hriadeľa-vrátane priemyselných ovládačov, robotiky, fotografických šošoviek na špeciálne účely, počítačových vstupných zariadení (ako sú optomechanické myši a trackball), riadených stresových reometrov a rotujúcich radarových platforiem.

Rotačný kodér, ktorý použijeme v tomto projekte, je veľmi lacný kodér. Má tiež zabudované tlačidlo a aby fungoval, stačí pripojiť 5 vodičov. Pripravil som podrobný návod, ako používať rotačný kodér. Toto video nájdete v prílohe tu.

Náklady na tento rotačný snímač sú veľmi nízke. Stojí to okolo 1,5 dolára.

Môžete ho získať tu ▶

Krok 4: Budovanie projektu

Image
Image
Budovanie projektu
Budovanie projektu
Budovanie projektu
Budovanie projektu

Teraz spojme všetky časti dohromady. Ak ste pred stavbou tohto projektu ešte nepoužili rotačný kodér, odporúčam vám pozrieť si návod, ktorý som o rotačných snímačoch pripravil. Pomôže vám to pochopiť, ako rotačné snímače fungujú, a získate s nimi skúsenosti. Toto video je priložené tu.

Takto som umiestnil displej na malú dosku. Najprv pripojíme displej. Prvý kolík displeja, ktorý je Reset, smeruje na digitálny pin 3 Arduino Uno, druhý pin smeruje na digitálny pin 4, tretí pin na digitálny pin 5, štvrtý pin na digitálny pin 11 a piaty pin na digitálny kolík 13. Ďalší kolík je Vcc. Vcc pripájame k kladnej lište nepájivého poľa a kladnej lište k nepájivému vedeniu k výstupu 3,3 V Arduina. Ďalším pinom je Podsvietenie displeja. Pretože ho chceme ovládať pomocou softvéru, pripojíme ho k digitálnemu pinu 7. Posledný pin je GND. Pripojíme GND k zápornej lište nepájivej dosky a zápornej lište nepájivej dosky k Arduino GND.

Teraz už len musíme pripojiť rotačný snímač. Prvý pin je GND a pripojíme ho k zápornej lište nepájivého poľa. Ďalším pinom je Vcc a pripojíme ho k kladnej lište nepájivého poľa. Ďalší pin je SW a prepojíme ho s analógovým pinom 2. Ďalší pin má názov DT a prepojíme ho s analógovým pinom 1. Nakoniec je pin CLK spojený s analógovým pinom 0. Schematický diagram tohto projektu nájdete v popis videa nižšie.

Teraz sme pripravení projekt zapnúť. Ako vidíte, projekt funguje dobre a ponuka funguje podľa očakávania! Skvelé, pozrime sa teraz na softvér projektu.

Krok 5: Kód projektu

Kódex projektu
Kódex projektu

V tomto projekte používame 4 knižnice. Na zobrazenie používame dve knižnice a na rotačný kodér dve.

  1. Adafruit GFX:
  2. Nokia 5110:
  3. Knižnica kódovačov:
  4. Knižnica TimerOne:

Najprv sa pozrieme na funkciu drawMenu. Táto funkcia je zodpovedná za vykreslenie ponuky na displeji. Táto funkcia sa nazýva každých niekoľko milisekúnd, takže ak dôjde k zmene v ponuke, táto funkcia je zodpovedná za aktualizáciu ponuky na obrazovke.

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

K dispozícii sú tiež 3 veľmi dôležité globálne premenné, stránka premenných, položka ponuky premenných a rámec premenných. Stránka s premennými si pamätá, ktorá obrazovka používateľského rozhrania sa zobrazuje na obrazovke. Ak je teda premenná stránky 1, nachádzame sa na hlavnej obrazovke používateľského rozhrania a ak je premenná 2, nachádzame sa na sekundárnej obrazovke používateľského rozhrania, kde nastavujeme hodnotu premennej. Položka ponuky si pamätá vybratú položku ponuky. Ak je teda jeho hodnota 1, je vybraná prvá položka ponuky, takže funkcia drawMenu musí túto položku ponuky nakresliť ako čiernu s bielymi písmenami. Ak je položka ponuky 2, vyberie sa druhá položka ponuky a podobne. Premenná rámca si pamätá, ktorá časť ponuky sa zobrazuje na obrazovke. Pretože ponuka, ktorú sme vytvorili, obsahuje 6 položiek a naraz ich dokážeme zobraziť iba 3, musíme vedieť, ktoré položky sa zobrazujú na obrazovke. Premenná rámca nám to presne hovorí. Ak má premenná rámca hodnotu 1, zobrazíme prvé tri položky ponuky, ak sú 2, zobrazíme položky 2, 3, 4 a podobne.

Pokúsil som sa kód čo najľahšie upraviť, takže som vytvoril niekoľko globálnych premenných, ktoré obsahujú názvy položiek ponuky. Týmto spôsobom si môžete ľahko vytvárať vlastné ponuky bez hľadania v kóde.

Reťazec menuItem1 = "Kontrast"; Reťazec menuItem2 = "Hlasitosť"; Reťazec menuItem3 = "Jazyk"; Reťazec menuItem4 = "Obtiažnosť"; Reťazec menuItem5 = "Svetlo: ZAPNUTÉ"; Reťazec menuItem6 = "Reset";

booleovské podsvietenie = true;

int kontrast = 60; int objem = 50;

Reťazcový jazyk [3] = {"EN", "ES", "EL"};

int selectedJazyk = 0;

Obtiažnosť reťazca [2] = {"EASY", "HARD"};

int vybrané Obtiažnosť = 0;

Najprv inicializujeme všetky globálne premenné, ktoré sú v kóde potrebné. Ďalej inicializujeme zobrazenie. Vo funkcii slučky najskôr voláme funkciu drawMenu na nakreslenie ponuky na obrazovku. Potom odčítame hodnotu z rotačného snímača a skontrolujeme, či je tlačidlo stlačené. Ak sme napríklad na hlavnej obrazovke používateľského rozhrania a je vybraná prvá položka ponuky, ak sa zvýšila hodnota z rotačného snímača, premenná položky ponuky sa zvýši a v ďalšej slučke funkcia drawMenu nakreslí druhú položku ponuky podľa výberu. Ak teraz stlačíme tlačidlo rotačného enkodéra, prejdeme na druhú stránku, kde nastavíme hodnotu premennej. Opäť pomocou rotačného enkodéra môžeme hodnotu premennej zvýšiť alebo znížiť. Ak stlačíme tlačidlo, prejdeme späť na stránku hlavnej ponuky a premenná stránky sa zníži.

To je základná myšlienka tohto menu. Pri všetkých položkách ponuky a stránkach postupujeme rovnako. Kód je zložitý a má viac ako 400 riadkov. Zdá sa to komplikované, ale ak to vyskúšate sami, pochopíte to jednoduchšie a budete to môcť zmeniť, rozšíriť a použiť vo svojich vlastných projektoch. Ako vždy, tu nájdete priložený kód.

Krok 6: Testovanie projektu

Testovanie projektu
Testovanie projektu

Ak načítame kód, vidíme, že projekt funguje podľa očakávania. Ponukou sa môžeme pohybovať hore a dole pomocou hriadeľa a stlačením otočného tlačidla snímača môžeme vybrať ľubovoľnú položku ponuky. Aké je to cool!

Teraz, keď vieme, ako zostaviť ponuky pre displeje LCD Nokia 5110, môžeme do našich projektov pridať ďalšie funkcie a urobiť ich užívateľsky príjemnejšími. Túto jednoduchú ponuku, ktorú sme dnes vytvorili, je však možné vylepšiť. Mohli by sme použiť prerušenia namiesto toho, aby sme neustále kontrolovali stavy tlačidiel. Týmto spôsobom môžeme znížiť spotrebu energie projektu a urobiť kód čistejším. Čoskoro pripravím video o prerušení, takže zostaňte naladení. Rád by som počul váš názor na tento projekt menu. Považujete to za užitočné a plánujete použiť menu v ktoromkoľvek zo svojich projektov. Napíšte svoje nápady a nápady nižšie, ďakujem!

Odporúča: