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

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

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

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

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

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

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

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

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

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

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

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

Bevezetés az elektronikába

MSP430 programozás Energia környezetben

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

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

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

Bevezetés az elektronikába

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

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!

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

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

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

Bevezetés az elektronikába

Léptetőmotorok. Előnyök: Hátrányok:

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

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

loop() Referencia:

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

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

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

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

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

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

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

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

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

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

UH-zongora - zenélés mikrokontrollerrel

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.

Programozási segédlet DS89C450 Fejlesztőpanelhez

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

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

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

Bevezetés a Modbus kommunikációba

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

boolean motoros_szelep_vegallas_el = true; boolean serial_adatok_kikuldese = true; // ************ Hőmérséklet érzékelők Dallasos!!!!

Dr. Oniga István DIGITÁLIS TECHNIKA 4

Tarján Péter Nyíregyházi Egyetem. Szenzorok és ötletek Arduinós mérésekhez

Bevezetés az elektronikába

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

Bevezetés az elektronikába

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

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

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

Újrakonfigurálható eszközök

Pénzügyi algoritmusok

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

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

Megszólal a Kütyü. Arduino bevezető hangszóró vezérlése 1 / 5 oldal

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

Nyomtatóport szintillesztő 3V3

Az AVR programozás alapjai. Előadja: Both Tamás

Mérési útmutató a Mobil Kommunikáció és Kvantumtechnológiák Laboratórium méréseihez

Újrakonfigurálható eszközök

16F628A megszakítás kezelése

Fizikai mérések Arduino-val

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

Stack Vezérlés szerkezet Adat 2.

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

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Algoritmus fogalma. Mi az algoritmus? HF: Al Khwarizmi. Egy adott probléma megoldásának leírása elemi lépések sorozatával

Leírás. Készítette: EMKE Kft február 11.

Eötvös Loránd Tudományegyetem - Informatikai Igazgatóság. MEMS érzékelők, szenzorok, méréstechnika. Horváth Gábor. ELTE / Informatikai Igazgatóság

A C programozási nyelv I. Bevezetés

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

A C programozási nyelv I. Bevezetés

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

Nyomtatóport szintillesztő

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

Programozási nyelvek Java

A MINI SZATELLITTŐL A SUMO-ROBOTIG

LIN, BSS, PCM Protokollok (COM Interfész) Szeptember

2008. október 9. Verzió

UC300-5LPT. USB CNC mozgásvezérlő MACH3 programhoz. Használati utasítás. Plugin verzió: V1.024

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

Informatika terméktervezőknek

DIGITÁLIS TECHNIKA feladatgyűjtemény

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

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

Mikrovezérlők Alkalmazástechnikája

Informatika 1 2. el adás: Absztrakt számítógépek

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.

D/A konverter statikus hibáinak mérése

Átírás:

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

Lab13 SPI_595_7seg Egyszerű mintaprogram kétszámjegyű hétszegmenses LED kijelzővel, 74HC595 shift regiszterrel, SPI programkönyvtár használattal SPI_595_thermometer hőmérő alkalmazás a fenti kétszámjegyű LED kijelző felhasználásával SPI_595_7seg_special Az SPI_595_7seg projekt módosított változata az egyszerűsített vezetékezésű kijelzőhöz igazítva. SPI_595_spec_thermometer Az SPI_595_thermometer program módosított változata az egyszerűsített vezetékezésű kijelzőhöz igazítva. 2

Emlékeztető 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

Kétszámjegyű kijelző szabályos meghajtása MOSI SCLK SS GND VCC 4

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) 5

A beépített SPI könyvtár A standard könyvtárakhoz tartozik, de az Energia Referencia szekciójában hiába keressük a leírását. Az Arduino dokumentációjához kell fordulnunk! 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 6

Huzalozási vázlat Hozzávalók: 5 db female-female átkötő vezeték 7

Lab13: SPI_595_7seg.ino #include <SPI.h> #define SS_pin P2_5 //Slave select pin const byte digit [10] = {0b11111100,0b01100000,0b11011010,0b11110010, 0b01100110,0b10110110,0b10111110,0b11100000,0b11111110,0b11110110 }; void displaynumber(byte data) { byte data1 = ~digit[data /10]; //First digit (10^1) byte data0 = ~digit[data % 10]; //Second digit (10^0) digitalwrite(ss_pin,low); SPI.transfer(data0); //Data for DIS2 SPI.transfer(data1); //Data for DIS1 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() { byte n=0; displaynumber(n); //Display this value n++; if(n > 100) n = 0; delay(300); } 8

Hőmérő alkalmazás Az előző kapcsolást kiegészítettük egy MCP9700A analóg hőmérővel Hozzávalók: MCP9700A hőmérő, dugaszolós próbapanel, 5 db F+F és 3 db M+F átkötő vezeték 9

Lab13: SPI_595_thermometer.ino #include <SPI.h> #define SS_pin P2_5 //Slave select pin const byte digit [10] = {0b11111100,0b01100000,0b11011010,0b11110010, 0b01100110,0b10110110,0b10111110,0b11100000,0b11111110,0b11110110 }; void displaynumber(byte data) { byte data1 = ~digit[data /10]; //First digit (10^1) byte data0 = ~digit[data % 10]; //Second digit (10^0) digitalwrite(ss_pin,low); SPI.transfer(data0); //Data for DIS2 SPI.transfer(data1); //Data for DIS1 digitalwrite(ss_pin,high); //Load data into output registers } void setup() { analogreference(internal2v5); pinmode(ss_pin,output); SPI.begin(); SPI.setBitOrder(LSBFIRST); } //Use the 2,5 V inner reference //Initialize SS_pin //Initialize SPI hardware //Send least significant bit first Folytatás a következő oldalon 10

Lab13: SPI_595_thermometer.ino void loop() { long mysum = 0; for(int i=0; i<2500; i++) { //Average 2500 measurements mysum += analogread(a4); } // Calculate voltage in mv units long voltage = mysum>>10; //divide by 1024 long tempc = (voltage-500)/10; //convert to Celsius displaynumber((byte)tempc); //Display result delay(1000); } Megjegyzések: Szokás szerint 2500 mérés eredményét átlagoljuk. Mindenhol mellőztük a float típus használatát. A (byte)tempc típusú szerkezet ún. típuskényszerítés, célja az, hogy a paraméterátadás előtt a magadott típusba alakítsuk a változóban tárolt értéket. 11

12

Egyszerűsített bekötés DIS1 IC1 g f a b g f a b DIS2 A kijelző megépítése könnyebb lesz, ha egyszerűsítjük a bekötést, vagyis a 74HC595 kimeneteit bonyolult vezetékezés helyett a legközelebbi szegmenshez kötjük (természetesen egy-egy áramkorlátozó ellenálláson keresztül, amelyeket itt nem tüntettünk fel!). A két digites kijelzőnél ez azt jelenti, hogy az egyik shift regiszter mindkét számkijelző g, f, a, és b szegmenseit, a másik pedig mindkét kijelző p, c, d és e szegmenseit vezérli (p a tizedespont). IC2 Előny: Egyszerű huzalozás, könnyebb nyomtatott áramkör tervezés Hátrány: bonyolultabb programozás 13

Huzalozási vázlat (egyszerűsített bekötésű kijelzővel) Hőmérő (MCP9700) Hozzávalók: 6 db female-female átkötő vezeték 14

SPI_595_7segment_special.ino const byte digit [10] = { //Definitions of the 7-bit values for displaying digits //bit order: gfabpcde instead of abcdefgp 0b01110111, //0b11111100 (0) 0b00010100, //0b01100000 (1) 0b10110011, //0b11011010 (2) 0b10110110, //0b11110010 (3) 0b11010100, //0b01100110 (4) 0b11100110, //0b10110110 (5) 0b11100111, //0b10111110 (6) 0b00110100, //0b11100000 (7) 0b11110111, //0b11111110 (8) 0b11110110}; //0b11110110 (9) void displaynumber(byte data) { byte data1 = ~digit[data /10]; //Bit complement for common anode LED display byte data0 = ~digit[data % 10]; //Remove tilde for common cathode LED display byte IC1bits = data1&0xf0 data0>>4; byte IC2bits = data1&0x0f data0<<4; } digitalwrite(ss_pin,low); SPI.transfer(IC2bits); SPI.transfer(IC1bits); digitalwrite(ss_pin,high); Ez a program csak a digit[] tömb bitsorrendjében és a displaynumber() megjelölt két sorában tér el a SPI_595_7seg.ino programtól! 15

SPI_595_spec_thermometer.ino Digitális kijelzésű hőmérő az MCP9700 hőmérő, az ADC és az egyszerűsített bekötésű kétszámjegyű, hétszegmenses kijelző felhasználásával. Ez a program az alábbi eltéresektől eltekintve lényegében megegyezik az SPI_595_thermometer.ino programmal. Eltérések: Erre a kijelzőre már rá van építve a hőmérő, így egyszerűbb a huzalozás. A kijelző vezérlésénél az előző oldalon bemutatott változtatásokat kellett végrehajtani. 16