Nokia 5110: Z 5 V na 3,3 V

Zápisník experimentátora

Hierarchy: Nokia 5110

Návodov na pripojenie displeja Nokia 5110 nájdete na Internete veľa. Väčšina z nich ale nesprávne pripája displej na 5 V. V tomto článku si ukážeme, ako displej správne pripojiť cez level shifter.

Čo budeme potrebovať

Vo videu je použité Arduino Mega 2560. Nie je to zámer, rovnako je možné použiť ľubovoľné Arduino. Pokiaľ použijete Arduino Uno alebo Arduino Mega 2560, máte k dispozícii aj napätie 3,3 V, ktoré sa používa na napájanie displeja. Pokiaľ by ste chceli použiť Arduino Pro Mini, musíte použiť ešte lineárny regulátor, ktorým si upravíte napätie z 5 V na 3,3 V. Príklad takéhoto postupu nájdete v nasledovnom videu tejto série, v ktorom si ukážeme náhodné hodiny na tomto istom displeji.

Pretože potrebujeme okrem napájania pripojiť aj 5 dátových vodičov, ktoré majú na strane Arduina 5 V a na strane displeja 3,3 V, potrebujeme level shifter. Existuje ich viacero typov, niektoré sú vhodné do skúšobného poľa, iné sú len v SMD prevedení. Ja používam 74HC4050, ale rovnako by poslúžil aj CD4050. Môj level shifter mám prispájkovaný na vlastnej doske, aby sa mi s ním pohodlnejšie pracovalo na skúšobnom poli.

Level shifter tohoto typu je jednostranná cesta, ale to pre naše účely plne vyhovuje, nakoľko všetkých 5 vodičov odosiela údaje do displeja a nič nie je potrebné prenášať naspäť. Budeme takto ovládať piny s označením RST, CE, DC, DIN a CLK.

Zvyšné vodiče len pripojíte tak, že VCC sa pripojí na 3,3 V a vodiče LIGHT a GND sa pripoja na GND. To zabezpečí napájenie pre displej a zapnutie podsvietenia.

Programovanie

Na prípravu videa som využil existujúci príklad ku knižnici Adafruit PCD8544. Tú je možno nainštalovať priamo v IDE Arduina. Nezabudnite na to, že vyžaduje ešte jednu knižnicu Adafruit GFX. Rovnako by sa dali využiť aj iné knižnice. Ich použiteľný zoznam nájdete v popise displeja Nokia 5110.

V nasledovnom kóde sa nachádzajú tri riadky, ktorými pripojíte tri rôzne knižnice. Posledný riadok vytvorí objekt display typu Adafruit_PCD8544. V Adafruite zvolili trošku zvláštny spôsob zápisu, ale bude to fungovať. Osobne si myslím, že by to stačilo zapísať len ako definíciu objektu Adafruit_PCD8544 display(7, 6, 5, 4, 3);, ale na pár ušetrených bajtoch v tomto prípade až tak nezáleží.

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// Software SPI (slower updates, more flexible pin options):
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

V nasledovnom kóde vidíte inicializáciu displeja. Nastavenie kontrastu je z toho najdôležitejšia vec. Pokiaľ sa s hodnotou príliš vzialite od intervalu <50, 60>, neuvidíte alebo nič, alebo bude displej príliš tmavý. Optimálnu hodnotu ale treba odskúšať na vašom konkrétnom displeji.

void setup() {
  // put your setup code here, to run once:
  display.begin();
  display.setContrast(60);
  display.clearDisplay();
  display.display(); // show splashscreen

Video

Vo videu je ukážka správne pripojeného displeja.



Download
  • Nokia 5110 - Datasheet Nokia 5110 - PCD8544 48 x 84 pixels matrix LCD controller/driver

02.03.2016


Menu