Aplikace B16 Dvouřádkový Display

Při práci s micro:bitem nás dost často omezuje výpis textu na destičce micro:bitu. V této lekci je ukázána možnost připojení dvouřádkového displeje se 16-ti znaky na řádek.

název: B16 Dvouřádkový display
kategorie: B mírně pokročilí
ref.číslo: B16
projekt: kurz micro:bit
verze: 01, 2017-10-22
autor: Ivo Obr, Lanškroun


Je použit obvod 1602a, který je nabízen jak pro napětí 5V, tak pro napětí 3,3V. Objednal jsem si obvod pro napájení 3,3V, ale po zkouškách to funguje i na napětí 5V. Obvod je připojen přímo k destičce micro:bitu. Protože jeho připojením obsadíme hodně pinů, je použita 4bitová datová sběrnice a ne 8bitová. Tím ušetříme 4 vodiče – piny, displej je ale trochu pomalejší ale pro naši pracovní  rychlost plně vyhovuje.

Obrázek displeje a popis jeho pinů :

Pin 1 LCD spojíme s pinem GND na micro:bitu. 

Pin 2 LCD spojíme s pinem 3V na micro:bitu

Pin 3 LCD je kontrast zobrazení. Pin připojíme na běžec potenciometru s hodnotou 10k (10 000 ohmů).

Pin 15 LCD plus napájení LED diod na podsvícení displeje. Připojíme jako proměnný odpor (na běžec potenciometru 470 ohmů)

Pin 16 LCD GND napájení LED diod na podsvícení displeje

Piny 4, 5 a 6 na LCD jsou určeny pro řízení dat.

Pin  4 LCD se nastaví na 0, když na datové sběrnici bude povel pro nastavení obvodu LCD se nastaví na 1, když na datové sběrnici bude přenášen znak pro zobrazení

Pin  5 LCD  se nastaví na 0, když budeme přenášet data DO LCD z micro:bitu se nastaví na 1, když bychom přenášeli data Z LCD do micro:bitu  ( nastavíme pevně na 0 (GND))

Pin 6 LCD  Je nastaven na 0. Pokud připravíme data v micro:bitu na datovou sběrnici, pak dáme na Pin 6 krátký impuls, že jsou data READY (jsou připravena na sběrnici) a to krátkým impulsem v trvání mikrosekund (hodnota 1 ).

Pin 7 až 14 LCD  je datová sběrnice. Má dva módy, bud 8-drátový nebo 4-drátový. Pro úsporu pinů na micro:bitu a pro větší jednoduchost zapojení použijeme 4-drátový mód. Pak piny 7 až 10 na LCD zůstanou volné, piny 11 až 14 bude naše datová sběrnice. Jeden znak budeme muset posílat nadvakrát.

Tím je ukončen náš popis HW LCD a můžeme přistoupit k programování .

Na začátku si nastavíme piny na micro:bitu a dále definujeme funkce pro práci s LCD displejem.

Propojení pinů:
pin0 Micro:bit je spojen s Pin 4 LCD
pin1 Micro:bit je spojen s Pin 6 LCD
pin 13, 14, 15 a 16 Micro:bit je spojen s Pin 11, 12, 13 a 14 na LCD

Funkce pro práci s LCD:
InitDisplay()        inicializuje LCD displej, je nutno volat na začátku
clear()                  smaže displeje
setCursor(číslo sloupce, číslo řádku)    /sloupec 0 až 15,  řádek 0 nebo 1
showText(“text ..“)
 

Začneme prvním řádkem programu :

from microbit import *

Programový kód pro ovládání LCD displeje vložíme na začátek programu :

# nastavení pinů micro:bit
mod = pin0
enable = pin1
datapins = [pin13, pin14, pin15, pin16]


# definování funkcí
def InitDisplay():
    sleep(50)
    mod.write_digital(0)
    enable.write_digital(0)
    for i in range(0, 4):
        write4bits(0x03)
    write4bits(0x02)
    send(0x28, 0)
    send(0x0C, 0)
    clear()


def clear():
    send(0x01, 0)
    sleep(2)


def setCursor(col, row):
    pom = col
    if row > 0:
        pom = pom + 0x40
    send(0x80 | pom, 0)


def showText(t):
    for c in t:
        send(ord(c), 1)


def send(value, mode):
    mod.write_digital(mode)
    write4bits(value >> 4)
    write4bits(value)


def pulseEnable():
    enable.write_digital(0)
    enable.write_digital(1)
    enable.write_digital(0)


def write4bits(value):
    for i in range(0, 4):
        datapins[i].write_digital((value >> i) & 0x01)
    pulseEnable()

A nyní si můžeme vyzkoušet displej. Tento programový kód napíšeme na konec.

# Test
InitDisplay()
showText(" --microla.cz--")
setCursor(7, 1)
showText("MICRO:BIT")

 

Program by měl fungovat bez problémů po prvním zapnutí. Pokud na displeji nic není, je třeba potenciometrem 10K pro nastavení kontrastu upravit zobrazení, až se ukáže text. Pokud nechcete měnit jas podsvícení, můžete druhý potenciometr vynechat a nechat svítit displej naplno (Pin 15 LCD je připojen přímo na 3V).

 

Scroll to Top