Bevezetés a mikrovezérlők programozásába: LCD kijelzők



Hasonló dokumentumok
MSP430 programozás Energia környezetben. Alfanumerikus LCD kijelzok

MSP430 programozás Energia környezetben. Analóg jelek mérése

Bevezetés az elektronikába

MSP430 programozás Energia környezetben. LED kijelzok második rész

MSP430 programozás Energia környezetben. Nokia 5110 grafikus kijelzo vezérlése

Vegyes témakörök. A KAT120B kijelző vezérlése Arduinoval

MSP430 programozás Energia környezetben. LED mátrix vezérlése MAX7219 IC-vel

MSP430 programozás Energia környezetben. LED kijelzok második rész

MSP430 programozás Energia környezetben. Szervó motorok vezérlése

Bevezetés a mikrovezérlők programozásába: Programciklusok szervezése, analóg I/O

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

MSP430 programozás Energia környezetben. Hétszegmenses LED kijelzok

Vegyes témakörök. 1. Soros vezérlésű LCD számkijelző. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

MSP430 programozás Energia környezetben. Az első lépések

Bevezetés a mikrovezérlők programozásába: Fényérzékelés, fénymérés

Bevezetés a mikrovezérlők programozásába: Ismerkedés az Arduino fejlesztői környezettel

Vegyes témakörök. 5. Gagyiszkóp házilag hangfrekvenciás jelek vizsgálata. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

A Hobbielektronika csoport. bemutatója

Bevezetés a mikrovezérlők programozásába: MAX6958: Hétszegmenses LED kijelző vezérlő

Programozási segédlet DS89C450 Fejlesztőpanelhez

Bevezetés az elektronikába

MSP430 programozás Energia környezetben. Az I/O portok kezelése

Bevezetés az elektronikába

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

Bevezetés az elektronikába

Hobbi Elektronika. 1. Témakörök, célkitűzés, hozzávalók

MSP430 programozás Energia környezetben. Digitális szenzorok I2C kommunikációval

M2037IAQ-CO - Adatlap

MSP430 programozás Energia környezetben. Digitális szenzorok

SIOUX-RELÉ. Sioux relé modul telepítési leírás Szerkesztés MACIE0191

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

Bevezetés a mikrovezérlők programozásába: WS2812 RGB LED-ek vezérlése

Ismerkedés az MSP430 mikrovezérlőkkel

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

Bevezetés az elektronikába

Bevezetés a mikrovezérlők programozásába: A PM6025 (7 és 16 szegmenses) LCD kijelző vezérlése

Hobbi Elektronika. Bevezetés az elektronikába: Fényemittáló dióda (LED)

The modular mitmót system. DPY kijelző kártya C API

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

2008. október 9. Verzió

Bevezetés a mikrovezérlők programozásába: DC motorok vezérlése

Nyomtatóport szintillesztő

A/D és D/A konverterek vezérlése számítógéppel

Megjegyzés: A leírás abszolút kezdők számára készült elnézést azoktól, akik ezen a szinten már túlvannak!

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ november 8. Verzió

MSP430 programozás Energia környezetben

OP-300 MŰSZAKI ADATOK

Bevezetés a mikrovezérlők programozásába: Digitális szenzorok

Nyomtatóport szintillesztő 3V3

MSP430 programozás Energia környezetben. Nem élhetek muzsikaszó nélkül

Képernyő. monitor

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

DIGITÁLIS TECHNIKA feladatgyűjtemény

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel

loop() Referencia:

2 VEZETÉKES KAPUTELEFON RENDSZER Kültéri egység

3. Hőmérők elkészítése

ARM Cortex magú mikrovezérlők

Mintavételes szabályozás mikrovezérlő segítségével

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

SYS700-PLM Power Line Monitor modul DDC rendszerelemek, DIALOG-III család

Arduino, programozás, elektronika egy út az ismeretek integrált felhasználásához

OMRON FOTOELEKTROMOS KAPCSOLÓK E3NT

Fizikai mérések Arduino-val

Újrakonfigurálható eszközök

Jelfeldolgozás a közlekedésben. 2017/2018 II. félév. Analóg-digitális átalakítás ADC, DAC

Mechatronika és mikroszámítógépek. 2016/2017 I. félév. Analóg-digitális átalakítás ADC, DAC

Perifériáknak nevezzük a számítógép központi egységéhez kívülről csatlakozó eszközöket, melyek az adatok ki- vagy bevitelét, illetve megjelenítését

Dinnyeválogató v2.0. Típus: Dinnyeválogató v2.0 Program: Dinnye2 Gyártási év: 2011 Sorozatszám:

Led - mátrix vezérlés

AVR-Duino / Ext1. Felhasználói dokumentáció. AVR-Duino alappanel-kiegészítő az alapfunkciók megismeréséhez. (c) TavIR-AVR

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Elektronika laboratóriumi mérőpanel elab panel NEM VÉGLEGES VÁLTOZAT! Óbudai Egyetem

Alapvető információk a vezetékezéssel kapcsolatban

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

GOKI GQ-8505A 4 CSATORNÁS KÉPOSZTÓ. Felhasználói kézikönyv

DMG termékcsalád. Digitális multiméterek és hálózati analizátorok háttérvilágítással rendelkező grafikus LCD kijelzővel

Kaméleon K860. IAS Automatika Kft

Bevezetés a mikrovezérlők programozásába: I/O portok kezelése, számrendszerek, bitműveletek

2000 Szentendre, Bükköspart 74 MeviMR 3XC magnetorezisztív járműérzékelő szenzor

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 3. rész

Idő és nap beállítás

Digitális hőmérő Modell DM-300

NFA Teljesítményszabályozó mérőlánc

Készítette: Ruzsinszki Gábor webmaster442

Bevezetés a mikrovezérlők programozásába: Az Arduino, mint logikai analizátor

Bevezetés a mikrovezérlők programozásába: Kommunikáció

ems2.cp04d [18010] Keriterv Mérnök Kft Programozható Automatikai állomás 14 multifunkcionális bemenet, 6 relé kimenet, 4 analóg kimenet DIGICONTROL

WiLARM-MICRO GSM Modul Telepítői Útmutató Verzió: 2.0

Serial 2: 1200/2400 bps sebességû rádiós modem vagy

1. Témakörök, célkitűzés, hozzávalók. Hobbielektronika csoport 2015/2016

MONITOROK ÉS A SZÁMÍTÓGÉP KAPCSOLATA A A MONITOROKON MEGJELENÍTETT KÉP MINŐSÉGE FÜGG:

Mikrokontrollerek és alkalmazásaik Beadandó feladat

MaxiCont. MOM690 Mikroohm mérő

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Karakteres LCD kijelző használata MiniRISC processzoron

Átírás:

Bevezetés a mikrovezérlők programozásába: LCD kijelzők 1

Megjegyzés: A mai előadásban ismertetett kijelzők MSP430 Launchpad kártyával történő vezérléséhez a 2013/14-es évad 11. és 15. foglalkozásához tartozó tananyagban (talk11 és talk15 előadásvázlatok, valamint a Lab11.zip és Lab15.zip mintaprogramok) található útmutatás! Lab 16 projektek HelloWorld egyszerű kiíratások alfanumerikuslcd 16x2 kijelzőn LCD_16x2_thermometer Analóg hőmérő alfanumerikus LCD kijelzővel pcdtest egyszerű mintaprogram a Nokia 5110 grafikus kijelző kipróbálásához LCD_5110_thermometer Analóg hőmérő Nokai 5110 kijelzővel 2

LCD = Liquid Crystal Display (folyadékkristály kijelző) Folyadékkristály: olyan (szerves) anyag, mely sűrű folyadéknak tekinthető, ugyanakkor molekulái a kristályokhoz hasonlóan képesek struktúrákba rendeződni. Az alapesetben csavart struktúra segít átjuttatni a polarizált fényt az elforgatott polárszűrőkön. Az elektromos tér átrendezi a molekulákat, már nem segítik a fény átjutását. Forrás: http://en.wikipedia.org/wiki/twisted_nematic_field_effect Hobbielektronika csoport 2013/2014 3

LCD kijelző típusok Szegmens kijelző Grafikus pontmátrix kijelző Alfanumerikus pontmátrix kijelző (4x20 karakter) Hobbielektronika csoport 2013/2014 4

Alfanumerikus LCD HD44780 vezérlő ( ipari szabvány ) Háttérvilágítással, vagy reflexiós típus Alfanumerikus: Csak rögzített karakterképet (betű, szám, írásjel) jeleníthetünk meg. 8x2, 16x2, 20x2, 20x4 az elterjedt forma További információ: Alfanumerikus kijelzők programozása Az intelligens LCD modulok használata - I. rész Az intelligens LCD modulok használata - II. rész A kivezetések szerepe Hobbielektronika csoport 2013/2014 5

1. GND GND 2. VCC +5V 3. VEE GND 4. RS D12 5. RW GND 6. EN D11 Bekötési vázlat 11. data4 D5 12. data5 D4 13. data6 D3 14. data7 D2 15. LED+ +5V 16. LED- GND Az LCD kijelzőt az Arduino beépített függvényei 4-bites módban használják (minden bájtot két részletben küldünk ki), ezért a data7-data10 vonalakat nem kell bekötni! 6

Optimális kontrasztbeállítás VCC VCC VCC GND 10k VEE GND 10k VEE 680R VEE 470R 2k2 VEE 1. Az általánosan javasolt megoldás 2. Fixen beállított kontraszt 3. Egyszerűsített kontraszt beállítás (némelyik 5 V-os kijelzőnél bevált Ez, vagy a direkt földre kötés is ) 4. Egyszerűsített kontraszt beállítás 3,3V-os kijelzőhöz Adatlap szerint 25 ⁰C-on VEE számára VCC 4.5 V körüli érték az optimális. Hobbielektronika csoport 2013/2014 7

HelloWorld.ino (Helló világ) Az Arduino IDE beépített mintaprogramja egy szöveget ír ki, majd az indítástól eltelt időt. #include "LiquidCrystal.h" // LCD gyári programkönyvtár becsatolása LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Példányosítás, lábkiosztás R/S E D4 D5 D6 D7 void setup() { lcd.begin(16, 2); lcd.print("hello, world!"); } //Oszlopok és sorok száma //Üzenet kiírása void loop() { lcd.setcursor(0, 1); lcd.print(millis()/1000); } //Kurzor a második sor elejére //Kiíratjuk a Reset óta eltelt időt LiquidCrystal alkalmazói függvények: lcd.begin(oszlop,sor) képernyő inicializálása lcd.setcursor(oszlop, sor) kurzor beállítása a megadott helyre lcd.write(karakterkód) egy karakter kiíratása lcd.print( szöveg ) szöveg kiíratása lcd.print(kifejezés) számérték kiíratása Hobbielektronika csoport 2013/2014 8

HelloWorld.ino (Helló világ) Az 5V-os kijelző és az Arduino nano v3.0 kártya közvetlenül összeköthető, nincs inkompatibilitás. Az MSP430 Launchpad kártya esete más, lásd a 2013/14-es Talk11 és Lab11 tananyagban! 9

Analóg hőmérő Csináljunk valami hasznosat! Mérjük meg egy MCP9700 analóg hőmérő jelét a beépített ADC felhasználásával! A fokokra átszámított hőmérsékletet kijelezhetjük az LCD modul segítségével! A hőmérés elve ugyanaz, mint a Lab13 AnalogThermometer2 mintapéldában. A kiíráshoz viszont most nem kell számítógép, csak egy LCD kijelző. Kapcsolás Az LCD bekötése ugyanaz, mint az előző példában. A hőmérő kimenetét az A4 bemenetre kössük! Hobbielektronika csoport 2013/2014 10

1. GND GND 2. VCC +5V 3. VEE GND 4. RS D12 5. RW GND 6. EN D11 Bekötési vázlat 11. data4 D5 12. data5 D4 13. data6 D3 14. data7 D2 15. LED+ +5V 16. LED- GND Az LCD kijelzőt az Arduino beépített függvényei 4-bites módban használják (minden bájtot két részletben küldünk ki), ezért a data7-data10 vonalakat nem kell bekötni! A hőmérő bekötése: 1: VCC 5 V, 2: kimenet A4, 3: GND GND 11

LCD_16x2_thermometer.ino #include "LiquidCrystal.h" LiquidCrystal lcd(12,11,5,4,3,2); void setup() { analogreference(internal); lcd.begin(16, 2); lcd.print("thermometer"); } void loop() { long mysum = 0; for(int i=0; i<1100; i++) { mysum += analogread(a4); } float voltage = mysum>>10; float tempc = (voltage-500)/10; lcd.setcursor(0, 1); lcd.print(voltage,0); lcd.print(" mv "); lcd.print(tempc,1); lcd.write(0xdf); lcd.print("c "); delay(1000); } //LCD gyári programkönyvtár becsatolása //Példányosítás, lábkiosztás //Az 1,1 V-os belső referenciát választjuk //Oszlopok és sorok száma //Kiírunk egy szöveget az első sorba //ebben összegezzük az eredményt //Annyi ciklus, ahány mv a referencia //Itt mérjük meg a feszültséget //Osztás 1024-gyel!!! //Átszámítás Celsius fokokra //Kurzor a második sor elejére //Kiíratjuk a mért feszültséget //Kiíratjuk a hőmérsékletet //fok jelének kiíratása //C betű és térköz kiíratása Hobbielektronika csoport 2013/2014 12

Nokia 5110 grafikus kijelző Ezeket a kijelzőket másfél évtizede még a Nokia 5110/3310 mobilokban használták. Felbontása: 84x48 pixel, reflexiós típusú monokróm LCD kijelző. Kisméretű, képátlója 1.5. Minden képpont címezhető, így grafikus, szöveges vagy bittérképes kijelzésre használható. Kis fogyasztású (néhány ma). A háttérvilágítás, ami valójában oldalról ad fényt, 4 db SMD LED-et tartalmaz. A vezérlő PCD8744 típusú, a képfelbontás 84*48 képpont. Megjegyzés: A kijelző 3,3V-os tápfeszültséggel működik, ezért az Arduino kártyához történő illesztése odafigyelést igényel! Jelszint illesztési lehetőségek 3,3 V-os tápfeszültségű mikrovezérlő kártya (MSP430 Launchpad vagy Meduino nano) Szintillesztő áramkör (a képen plédául CD4050) használata. Feszültségsosztó vagy áramkorlátozó ellenállás (5-10 kω) az használata az adatvonalakon. 13

Nokia 5110 (E-bay) Arduino 1. RST RESET D3 2. CE kiválasztó jel D4 3. DC adat/parancs D5 4. DIN MOSI adatvonal D6 5. CLK SPI órajel D7 6. VCC tápfeszültség 3.3V 7. LIGHT háttérvilágítás GND (K) 8. GND közös pont GND Nokia 5110(Sparkfun) Arduino 1. VCC tápfeszültség 3.3V 2. GND közös pont GND 3. SCE kiválasztó jel D4 4. RST RESET D3 5. D/C adat/parancs D5 6. DIN MOSI adatvonal D6 7. SCLK SPI órajel D7 8. LED háttérvilágítás 3.3V (A) Bekötési vázlat E-bay változatú kijelző A Sparkfun által forgalmazott kijelző lábkiosztása ettől különbözik! 14

Az Adafruit_PCD8544 programkönyvtár Lelőhelye: github.com/adafruit/adafruit-pcd8544-nokia-5110-lcd-library Telepíteni kell mellé az Adafruit-GFX-Library is! A kibontott ZIP állományokat a felhasználói Arduino mappa libraries nevű almappájába kell elhelyezni. Az objektumosztály példányosítása és az Arduino kártya kivezetéseinek hozzárendelése): Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); SCLK, DIN, DC, CE, RST display.begin(); Inicializálás display.setcontrast(50); Kontraszt beállítása (általában 50 60) display.cleardisplay(); Képernyő és rajzoló buffer törlése display.display(); Képernyő újrarajzolása (buffer kiírása) display.setcursor(x,y); Kurzor pozíció beállítása (innen rajzolunk) display.settextsize(1); Szövegméret megadása (1: kicsi, 2: nagy) display.settextcolor(black); Tintaszín megadása (BLACK/WHITE) display.write(c); Egy karakter kiírása display.print( szöveg ); Szöveg kiírása display.print(kifejezés); Számérték kiírása display.drawpixel(x,y,black); Egy képpont kirajzolása drawline(x0,y0,x1,y1,black); Egy szakasz kirajzolása És még sokan mások 15

Az Adafruit_GFX programkönyvtár Koordináta-rendszer Vonal rajzolása Színkódolás (esetünkben csak 0 és 1 lehet!) 16

Az Adafruit_GFX programkönyvtár Négyszög rajzolása Vonal rajzolása void drawrect(x0, y0, w, h, color); void fillrect(x0, y0, w, h, color); void drawcircle(x0, y0, r, color); void fillcircle(x0, y0, r, color); 17

pcdtest.ino (programrészlet) #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); void setup() { display.begin(); // init done display.setcontrast(50); display.display(); // show splashscreen delay(2000); display.cleardisplay(); // clears the screen and buffer display.drawpixel(10,10,black); // draw a single pixel display.display(); delay(2000); display.cleardisplay(); testdrawline(); // draw many lines display.display(); delay(2000); display.cleardisplay(); // draw rectangles testdrawrect(); display.display(); delay(2000); display.cleardisplay(); // draw multiple rectangles testfillrect(); display.display(); delay(2000); display.cleardisplay();... } Ez a program bemutatja a GFX grafikus programkönyvtár lehetőségeit. 18

Hőmérő Nokia 5110 kijelzővel Készítsünk hőmérőt a Nokia 5110 kijelző felhasználásával! A hőmérést ugyanúgy egy MCP9700 analóg hőmérővel és a beépített ADC felhasználásával végezzük, mint a korábbi példaprogramnál, csak a kijelzést kell átdolgozni. 19

LCD_5110_thermometer.ino Bekötés a szoftveres SPI támogatás szerint: D7 SPI clock (SCLK) D6 SPI data (DIN) D5 - Data/Command (DC) D4 - LCD chip select (CS) D3 - LCD reset (RST) #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); void setup() { display.begin(); //inicializálás display.setcontrast(50); //kontraszt beállítása (50-60) display.display(); //Adafruit logo megjelenítése delay(2000); analogreference(internal); //A belső 1.1V referencia kell! } Folytatás a következő oldalon... A hőmérő kimenete az A4 analóg bemenetre legyen kötve! 20

LCD_5110_thermometer.ino void loop() { long mysum = 0; for(int i=0; i<1100; i++) { mysum += analogread(a4); //Mérés és átlagolás } delay(2000); // Átszámítjuk millivoltokra float voltage = mysum>>10; //Osztás 1024-gyel float tempc = (voltage-500)/10; //Átszámítás fokokra display.cleardisplay(); //Képernyő törlés display.settextsize(1); //Szövegméret: kicsi display.settextcolor(black); //Fekete tintaszín display.setcursor(4,2); //kiindulási hely display.print("thermometer"); //Szöveg kiírás display.settextsize(2); //Szövegméret: nagy display.setcursor(1,24); //Kiindulási hely display.print(tempc,1); //Hőmérséklet kiírása display.print("c"); //Celsius jelzése display.display(); //Megjelenítés } 21

További felhasználási ötletek Hőmérő, alfanumerikus és grafikus kijelzéssel Óra, ébresztő, öröknaptár, névnap kijelzéssel és hőmérő 22

Emlékeztető: Arduino nano v3.0 23

MSP430 Launchpad : Energia Pinout http://github.com/energia/energia/wiki/hardware Arduino/Energia logical pin # s