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

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

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

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

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

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

Bevezetés az elektronikába

Bevezetés az elektronikába

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

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

Bevezetés az elektronikába

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

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

ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 8. Az SPI kommunikációs csatorna

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

loop() Referencia:

2008. október 9. Verzió

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

Programozási segédlet DS89C450 Fejlesztőpanelhez

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

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

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

11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

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

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

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

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

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

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

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

LOGSYS LOGSYS SZTEREÓ CODEC MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió

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

The modular mitmót system. A DPY-LED perifériakártya

Újrakonfigurálható eszközök

MSP430 programozás Energia környezetben

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Autóipari beágyazott rendszerek CAN hardver

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

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

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

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

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

DIGITÁLIS TECHNIKA I

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

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.

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

Billentyűzet. Csatlakozók: A billentyűzetet kétféle csatlakozóval szerelhetik. 5 pólusú DIN (AT vagy XT billentyűzet csatlakozó),

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

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 4

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

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

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

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap

Az MSP430 mikrovezérlők digitális I/O programozása

Perifériák hozzáadása a rendszerhez

Digitális technika (VIMIAA02) Laboratórium 4

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Bevezetés az elektronikába

AF 088II DIO 16/8 AF 088II DIO 16. Digitális ki-, bemeneti modul. Digitális bemeneti modul

7.hét: A sorrendi hálózatok elemei II.

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

Digitális technika (VIMIAA02) Laboratórium 4

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

SR mini PLC Modbus illesztő modul. Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében

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

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

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Silabs STK3700, Simplicity Studio laborgyakorlat

Arduino bevezető Szenzorhálózatok és alkalmazásaik

RUBICON Serial IO kártya

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

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

Roger UT-2. Kommunikációs interfész V3.0

10. Digitális tároló áramkörök

Digitális technika (VIMIAA02) Laboratórium 1

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

Digitális technika (VIMIAA02) Laboratórium 1

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

LOGSYS LOGSYS HŐMÉRŐ ÉS EEPROM MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió 1.0.

Előadó: Nagy István (A65)

Bevezetés a Modbus kommunikációba

Digitális technika (VIMIAA01) Laboratórium 4

Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István

Mikrorendszerek tervezése

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

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

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

A mikroszámítógép felépítése.

Újrakonfigurálható eszközök

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

Nagy Gergely április 4.

Többfunkciós hobbirobot építése és vezérlése Arduino UNO mikrovezérlő kártya segítségével

Digitális technika (VIMIAA01) Laboratórium 9

Programozott soros szinkron adatátvitel

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg. Olvasható aláírás:...minta VIZSGA...

Átírás:

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

Lab 17 projektek LED_7segment.ino tesztprogram közös anódú hétszegmenses LED kijelzőhöz LED_1x7seg_595.ino egyszámjegyű kijelző 595 shift regiszterrel LED_2x7seg_595.ino kétszámjegyű kijelző 595 shift regiszterrel LedControl_7seg.ino 8 számjegyű hétszegmenses kijelző kipróbálása LED8x8_MAX7219_SPI.ino 8x8-as LED mátrix kipróbálása 2

A hétszegmenses LED kijelző A hétszegmenses kijelzők 7 db LED-et vagy LED csoportot tartalmaznak, olyan elrendezésben, hogy a 0 9 arab számjegyeket ki lehessen jelezni. A hét szegmenshez nyolcadikként többnyire egy tizedespont is járul. Kivetel: Közös anódú vagy közös katódú 3

Hogyan működik a kijelzés? A 7 db szegmens mindegyike lehet ki- vagy bekapcsolt állapotban. A lehetséges állapotok száma: 2 7 = 128 Ezek közül nem mindegyik értelmes kombináció. 4

Hétszegmenses kijelző kipróbálása A szegmenseket egyenként egy-egy áramkorlátozó ellenálláson keresztül húzzuk földre (LOW állapot). Az árammegosztás így megfelelő lesz a szegmensek között. Az ellenállások értéke 220-470 Ω legyen. HD1131R 7 x 220R 5

LED_7segment.ino (részletek) #define sega 2 #define segb 3 #define segc 4 #define segd 5 #define sege 6 #define segf 7 #define segg 8 void setup(){ pinmode(sega, OUTPUT); pinmode(segb, OUTPUT); pinmode(segc, OUTPUT); pinmode(segd, OUTPUT); pinmode(sege, OUTPUT); pinmode(segf, OUTPUT); pinmode(segg, OUTPUT); clr(); delay(1000); void loop(){ zero(); delay(1000); one(); delay(1000); two(); delay(1000); three(); delay(1000); four(); delay(1000); five(); delay(1000); six(); delay(1000); seven(); delay(1000); eight(); delay(1000); nine(); delay(1000); folyt. Köv. Minden kimenetet állítsunk magas szintre! 6

LED_7segment.ino (folytatás) void one(){ //Displays 1 digitalwrite(segd, HIGH); digitalwrite(sege, LOW); digitalwrite(segf, LOW); digitalwrite(segg, HIGH); digitalwrite(sega, HIGH); digitalwrite(segb, HIGH); digitalwrite(segc, HIGH); void two(){ //Displays 2 digitalwrite(segd, LOW); digitalwrite(sege, LOW); digitalwrite(segf, HIGH); digitalwrite(segg, LOW); digitalwrite(sega, LOW); digitalwrite(segb, LOW); digitalwrite(segc, HIGH); void three(){ //Displays 3 digitalwrite(segd, LOW); digitalwrite(sege, HIGH); digitalwrite(segf, HIGH); digitalwrite(segg, LOW); digitalwrite(sega, LOW); digitalwrite(segb, LOW); digitalwrite(segc, LOW); void four(){ //Displays 4 digitalwrite(segd, HIGH); digitalwrite(sege, HIGH); digitalwrite(segf, LOW); digitalwrite(segg, LOW); digitalwrite(sega, HIGH); digitalwrite(segb, LOW); digitalwrite(segc, LOW); és így tovább 7

Többszámjegyű kijelzés A felhasznált kivezetések minimalizálására a szegmenseket párhuzamosan kötjük, egyidejűleg azonban csak egy digit lehet aktív (multiplex kijelzés). A digitek vezérléshez közös anódú kijelzőknél PNP tranzisztor kell. A multiplex kijelzés hátrányai: - azonos kimeneti áramnál kisebb lesz a fényerő (megoszlik a számjegyek között) - A mikrovezérlőnek periodikusan frissítenie kell a kijelzést (erőforrás-igényes). 8

LED-ek vezérlése soros/párhuzamos átalakítóval A kijelző szegmenseinek vezérlése sok kivezetést/erőforrást lefoglal. Megoldási lehetőségek: Soros vezérlésű perifériabővítő IC-k használata Multiplex kijelzés Speciális, LED kijelző vezérlő IC-k használata (ezek is soros vezérlésűek: SPI vagy I2C) SPI Serial Peripheral Interface (soros periféria illesztő) Jellemzői: kétirányú szinkron soros kommunikáció. Az órajel és az adatjel mellett több slave esetén kiválasztójel is kell. Ábra forrása: http://www.eetimes.com/document.asp?doc_id=1272534 9

SPI jelalak Az órajel lehet pozitív (CPOL = 0), vagy negatív (CPOL = 1), az adatvonalak bekapuzása történhet az órajel homlokélénél (CPHA = 0), vagy a lefutó élénél (CPHA = 1). MOSI Master out/slave in, vagyis a master slave irányú kommunikáció adatvonala MISO Master in/slave out, vagyis a slave masetr irányú adatáramlás vezetéke Eszközök: Shift regiszterek (pl. 75HC165, 74HC164, 74HC595) Periféria bővítők (pl. MCP23S17, MCP23S08) LED vezérlők (pl. TLC5940, MAX7219) 10

A 74HC595 IC-k sorbaköthetőek (QH SER ) Az adatok áttöltése az RCLK jel felfutó élénél történik. SRCLR = shift regiszter törlés, OE = kimenet engedélyezés. 11

Hétszegmenses LED kijelző vezérlése 74HC595 shift regiszterrel A soros vezérléshez az Arduino SPI portját használjuk: D13 SCLK szinkron órajel 595 SRCLK órajel bemenet D12 MISO soros adatbemenet (most nem használjuk) D11 MOSI soros adatkimenet 595 SER adatbemenet Az 595 shift regiszter további bemenetei: RCLK < Arduino D10, magas szintre váltáskor történik a beírás (bármelyik szabad digitális kimenetet használhattuk volna) #SRCLR állandóan magas szintre kötjük (nincs törlés) #OE állandóan alacsony szintre kötve (állandó engedélyezés) 12

A beépített SPI könyvtár Hardveres támogatású Soros Periféria Illesztő A számunkra legfontosabb metódusok: SPI.begin() az SPI csatorna inicializálása SPI.setBitOrder(param) melyik bit menjen ki elsőként. A paraméter értéke MSBFIRST vagy LSBFIRST lehet (előre definiált konstansok). MSB jelentése = Most Significant Bit (legnagyobb helyiértékű bit). SPI.transfer(data) egy adatbájt kiküldése és egy bájt beolvasása A lábkiosztás kötött: D13 SCLK szinkron órajel D12 MISO soros adatbemenet (most nem használjuk) D11 MOSI soros adatkimenet 13

LED_1x7seg_595.ino #include <SPI.h> #define SS_pin 10 // Slave select pin const byte digit [10] = { // Definitions of digits 0b11111100, 0b01100000, 0b11011010, 0b11110010, 0b01100110, 0b10110110, 0b10111110, 0b11100000, 0b11111110, 0b11110110 ; void displaynumber(byte data) { digitalwrite(ss_pin,low); SPI.transfer(~digit[data]); digitalwrite(ss_pin,high); void setup() { pinmode(ss_pin,output); SPI.begin(); SPI.setBitOrder(LSBFIRST); void loop() { for(byte i=0; i<10; i++) { displaynumber(i); delay(1000); // Common anode means: 0-ON, 1-OFF // Load data into output registers //Initialize SS_pin //Initialize SPI hardware //Send least significant bit first //Display this value 14

Kétszámjegyű kijelző A shift regisztereket sorba köthetjük, így többszámjegyű kijelzőt is építhetünk. MOSI SCLK SS GND VCC 15

Hevenyészett kivitel 3x7 cm-es próbapanelon VCC GND SS SCLK MOSI IC1 DIS1 DIS2 IC2 Előny: Nem kell multiplex vezérlés Hátrány: Sok ellenállást kell beépíteni (nagyobb helyigény) 16

LED_2x7seg_595.ino #include <SPI.h> #define SS_pin 10 // Slave select pin const byte digit [10] = { // Definitions of digits 0b11111100, 0b01100000, 0b11011010, 0b11110010, 0b01100110, 0b10110110, 0b10111110, 0b11100000, 0b11111110, 0b11110110 ; void displaynumber(byte data) { byte data1 = ~digit[data /10]; // First digit byte data0 = ~digit[data % 10];// Second digit digitalwrite(ss_pin,low); SPI.transfer(~data1); // Send first digit SPI.transfer(~data0); // Send second digit digitalwrite(ss_pin,high); // Load data into output registers void setup() { pinmode(ss_pin,output); //Initialize SS_pin SPI.begin(); //Initialize SPI hardware SPI.setBitOrder(LSBFIRST); //Send least significant bit first void loop() { for(byte i=0; i<100; i++) { displaynumber(i); delay(300); //Display this value 17

LED vezérlő IC-k További lehetőségek Beépített áramkorlátozás, fényerőszabályozás, hardveres multiplexelés, teszt mód MAX7219 8-jegy 7-szegmens, vagy 8x8 LED mátrix MAX6958 4-jegy 7-szegmens, vagy 4x8 LED mátrix TLC2940 16 LED 12 bites fényerőszabályozás (LED videopanel) HT1632C 32*8 vagy 24*16 LED mátrix vezérlése 18

MAX7219 LED meghajtó IC, beépített áramkorlátozással. 7 szegmens kijelző esetén 1-8 db számjegy meghajtása (opcionálisan beépített dekódolással), vagy 8x8 LED mártix meghajtása. Az IC vezérlése SPI buszon történhet. 19

8 digites kijelző vezérlése 7 szegmens + DP vezérlése 8 db közös vezetéken, számjegykiválasztás másik 8 db vezetéken. MAX7219 SPI interfésszel rendelkezik. Beépített LED áramkorlátozás és fényerőszabályozás. 20

Készen kapható kijelző modul D12 D11 D10 GND +5V Bekötési vázlat a LedControl_7seg.ino példaprogramhoz (szoftveres SPI kezelés!!!) 21

LedControl programkönyvtár MAX7219 programkönyvtár Arduinohoz/Energiához Alkalmas max 8 db. Felfűzött MAX7219 IC-vel meghajtott 8x8- as LED mátrix vagy 8 digites, közös katódú 7 szegmens kijelző vezérlésére 2007 Eberhard Fahle - eredeti változat (Arduinohoz) (http://playground.arduino.cc/main/ledcontrol) 2013 Alessandro Pasotti - MSP430/Energia adaptáció (http://www.itopen.it/2013/08/28/new-energia-ledcontrol-library/) 2014 Cserny István kisebb módosítások, bővítés (pl. getrow() ) (http://megtestesules.info/hobbielektronika/2013.html) Az Arduino és az MSP430 verzió nem 100 %-ig kompatibilis! A jelenlegi változat szoftveres SPI-vel (Shiftout() függvény) működik! 22

LedControl programkönyvtár (A szokásos módon a Dokumentumok\Arduino\libraries mappába kell bemásolni!) LedControl(int datapin, int clkpin, int cspin, int numdevices=1); - Konstruktor függvény init() Inicializálás, amelyet a setup()-ban kell meghívni (csak az Energiánál!) shutdown(int addr, bool status); - Kijelzés leállítása/engedélyezése (true/false) setscanlimit(int addr, int limit); - Pontsorok vagy digitek számának beállítása (0-7) setintensity(int addr, int intensity); - Fényerő beállítása (0 15) cleardisplay(int addr); - Kijelző törlése 8x8 LED mátrix: setled(int addr, int row, int col, boolean state); - egy LED ki-/bekapcsolása getrow(int addr, int row); - Egy LEDsor állapotának kiolvasása (csak az Energiánál!) setrow(int addr, int row, byte value); - egy LED sor állapotának beállítása setcolumn(int addr, int col, byte value); - egy LED oszlop állapotának beállítása 7-szegmens kijelző: setdigit(int addr, int digit, byte value, boolean dp); - egy számjegy kiírása (0..9) setchar(int addr, int digit, char value, boolean dp); - egy karakter kiírása (A,b,c,d,E,F,H,L,P) 23

LedControl_7seg.ino #include <LedControl.h> LedControl lc=ledcontrol(12,11,10,1); unsigned long delaytime=250; byte buffer[8]; //DIN,CLK,CS és a modulok száma //Karakterek tárolója void setup() { lc.shutdown(0,false); lc.setintensity(0,8); lc.cleardisplay(0); //Modul felébresztése //Közepes fényerő //Kijelző törlése void loop() { writearduinoon7segment(); //Arduino szöveg kiírása scrolldigits(); //Számjegyek tologatása displaydate(2014, 6, 9); //Adott dátum kijelzése for(int k=0; k<16; k++) { //Futó idő kijelzése long time = millis()/1000; int s = time%60; int h = time/3600; int m = (time/60)%60; displaytime(h,m,s); delay(500); lc.cleardisplay(0); //Kijelző törlése delay(delaytime); Folytatás a következő lapon... 24

LedControl_7seg.ino (folytatás) void writearduinoon7segment() { //Az Arduino szöveg kiírása lc.setchar(0,6,'a',false); delay(delaytime); //a lc.setrow(0,5,0x05); delay(delaytime); //r lc.setchar(0,4,'d',false); delay(delaytime); //d lc.setrow(0,3,0x1c); delay(delaytime); //u lc.setrow(0,2,b00010000); delay(delaytime); //i lc.setrow(0,1,0x15); delay(delaytime); //n lc.setrow(0,0,0x1d); delay(2000); //o lc.cleardisplay(0); delay(delaytime); //Kijelző törlése void scrolldigits() { int i,j; for(i=0; i<8; i++) buffer[i]=32; for(j=0;j<16;j++) { for(i=0; i<7; i++) { buffer[i] = buffer[i+1]; lc.setdigit(0,7-i,buffer[i],false); buffer[7] = j; lc.setdigit(0,0,j,false); delay(delaytime); lc.cleardisplay(0); delay(delaytime); 25 //Buffer törlése (Space)

LedControl_7seg.ino (folytatás) void displaydate(int year, int month, int day) { boolean dp; buffer[4]= year%10; year /=10; buffer[5]= year%10; year /=10; buffer[6]= year%10; buffer[7]= year/10; buffer[2]= month%10; buffer[3]= month/10; buffer[0]= day%10; buffer[1]= day/10; for(int i=0; i<8; i++) { dp = (i==2 i==4); lc.setdigit(0,i,buffer[i],dp); delay(2000); lc.cleardisplay(0); delay(delaytime); Adott dátum kiíratása 2014.06.09 formátumban. 26

LedControl_7seg.ino (folytatás) void displaytime(int hour, int mins, int sec) { buffer[7]= hour/10; buffer[6]= hour%10; buffer[5]= '-'; buffer[4]= mins/10; buffer[3]= mins%10; buffer[2]= '-'; buffer[1]= sec/10; buffer[0]= sec%10; for(int i=0; i<8; i++) { lc.setchar(0,i,buffer[i],false); delay(delaytime); Adott idő kiíratása HH MM SS formátumban. 27

LED 8x8 mátrix 3 mm-es piros LED-ek 8x8 mátrixba szervezve 1088AS vagy M1388AR típusnál a sorkiválasztó vonal a közös katód Multiplex kijelzés, egyidejűleg legfeljebb egy sor, vagy egy oszlop lehet aktív. Kényelmes meghajtás: 1 db MAX7219, vagy 2 db 74HC595 (+ meghajtó +áramkorlátozás) 1 db MCP23017 (+ meghajtó +áramkorlátozás) 28

8x8-s LED mátrix vezérlése 29

Komplett kijelző modul (Ebay.com) 8x8 LED mátrix MAX7219 vezérlő Felfűzhető kivitel Tápellátás: 3,5 5 V Bemenetek Kimenetek 1 VCC 1 VCC 2 GND 2 GND 3 DIN 3 DOUT 4 CS 4 CS 5 CLK 5 CLK 30

LED8x8_MAX7219_SPI.ino A program felváltva H és W jelet mutat a kijelzőn. #include "SPI.h" #define SPI_CS 10 //SPI Chip select (LED CS bemenetre) const unsigned char led1[]= {0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0xFF; //H const unsigned char led2[]= {0x1F,0x60,0x80,0x40,0x40,0x80,0x60,0x1F; //W void setup() { pinmode(spi_cs,output); digitalwrite(spi_cs,high); SPI.begin(); SPI.setClockDivider(SPI_CLOCK_DIV4); SPI.setBitOrder(MSBFIRST); SPI.setDataMode(SPI_MODE0); Init_MAX7219(); //SPI_CS kimenet inicializálása //Alaphelyzetben magas szinten legyen //LED vezérlő bekonfigurálása void loop (){ for(int i=1; i<9; i++) //Első karakter (8 sor) kiírása SPI_Write2(i,led1[i-1]); delay(1000); //1 s várakozása for(int i=1; i<9; i++) //Második karakter (8 sor) kiírása SPI_Write2(i,led2[i-1]); delay(1000); //1 s várakozása Folytatás a következő lapon... 31

LED8x8_MAX7219_SPI.ino void SPI_Write2(unsigned char MSB, unsigned char LSB) {// Két bájt kiküldése digitalwrite(spi_cs,low); SPI.transfer(MSB); SPI.transfer(LSB); regisztercím és adatbájt kiküldése digitalwrite(spi_cs,high); void Init_MAX7219(void){ SPI_Write2(0x09, 0x00); SPI_Write2(0x0A, 0x08); SPI_Write2(0x0B, 0x07); SPI_Write2(0x0C, 0x01); SPI_Write2(0x0F, 0x0F); SPI_Write2(0x01, 0x00); SPI_Write2(0x02, 0x00); SPI_Write2(0x03, 0x00); SPI_Write2(0x04, 0x00); SPI_Write2(0x05, 0x00); SPI_Write2(0x06, 0x00); SPI_Write2(0x07, 0x00); SPI_Write2(0x08, 0x00); SPI_Write2(0x0F, 0x00); // A LED vezérlő IC konfigurálása //Dekódolást kikapcsolni //Közepes fényerő beállítása //Pásztázási korlát beállítása //Megjelenítési mód beállítása //Display teszt engedélyezése //0. sor törlése //1. sor törlése //2. sor törlése //3. sor törlése //4. sor törlése //5. sor törlése //6. sor törlése //7. sor törlése //Display teszt tiltás Adatlap szerinti konfigurálás Kijelző törlése 32

Technikai részletek az inicializáláshoz Nem használt DP a b c d e f g 0: no decode 1: decode 0 0xF 0 7 0: shutdown 1: normal mode 1: test mode 0: normal mode 33

Huzalozási vázlat +5V VCC GND GND D11 DIN D10 CS D13 CLK 34

35

Emlékeztető: Arduino nano v3.0 36

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