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

Hasonló dokumentumok
Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők

Labor 2 Mikrovezérlők

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

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

Szoftvertechnológia alapjai Java előadások

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Java II. I A Java programozási nyelv alapelemei

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Programozási nyelvek JAVA EA+GY 1. gyakolat

Informatika terméktervezőknek

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Programozás 1. Dr. Iványi Péter

3. Gyakorlat Ismerkedés a Java nyelvvel

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

A C# programozási nyelv alapjai

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Programozás II. 2. Dr. Iványi Péter

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

TARTALOMJEGYZÉK. 1. Ismétlés A mikroprocesszor mőködése Mikroszámítógépek, mikrokontrollerek... 20

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

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Stack Vezérlés szerkezet Adat 2.

Szoftvertervezés és -fejlesztés I.

A TANTÁRGY ADATLAPJA

Bevezetés az elektronikába

1. Alapok. Programozás II

Programozás alapjai. 5. előadás

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Készítette: Ruzsinszki Gábor webmaster442

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Információs Technológia

Java II. I A Java programozási nyelv alapelemei

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

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ás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

C programozás. 1 óra Bevezetés

C# gyorstalpaló. Készítette: Major Péter

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Algoritmizálás + kódolás C++ nyelven és Pascalban

S z á m í t ó g é p e s a l a p i s m e r e t e k

Programzás I gyakorlat

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Occam 1. Készítette: Szabó Éva

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás I gyakorlat. 10. Stringek, mutatók

Pénzügyi algoritmusok

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

A C# PROGRAMOZÁSI NYELV

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

A szerzõrõl... xi Bevezetés... xiii

Bevezetés az elektronikába

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

Kifejezések. Kozsik Tamás. December 11, 2016

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Webprogramozás szakkör

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Programozás I gyakorlat

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

1. Jelölje meg az összes igaz állítást a következők közül!

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

Ismerkedés a Python programnyelvvel. és annak micropython változatával

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

A C programozási nyelv II. Utasítások. A függvény.

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

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

3D-s technológiák a játékfejlesztésben UDK bevezetés

INFORMATIKA javítókulcs 2016

Adatok ábrázolása, adattípusok

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Programozás I gyakorlat

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

Bevezetés az Arduino mikrovezérlők programozásába

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Matematikai alapok. Dr. Iványi Péter

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

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

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Java programozási nyelv

Informatika érettségi vizsga

Egy PIC-BASIC program fordítása, betöltése

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Szkriptnyelvek. 1. UNIX shell

Digitális rendszerek. Utasításarchitektúra szintje

Átírás:

Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait

Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés Az Arduino család Mikrovezérlők programozása

Mikrovezérlőkről röviden Mikroprocesszor Mikrovezérlő Memória ALU CU ALU CU Reset-áramkör Órajel-generátor Perifériák A mikrovezérlő (=mikrokontroller) : mikroszámítógép egy tokban

Mikrovezérlőkről röviden Mikrovezérlő CPU és tartozékai: Egyes családoknál* közös Meghatározza a számábrázolást: 8,16,32bit Memória ALU Reset-áramkör Órajel-generátor Perifériák CU

Mikrovezérlőkről röviden Memória típusok: Program memória Mikrovezérlő Memória Perzisztens, nem újraírható Perzisztens, de újraírható Adatmemória Nem perzisztens: RAM Perzisztens: ROM ALU Reset-áramkör Órajel-generátor Perifériák CU

Mikrovezérlőkről röviden Perifériák: Digitális be/kimenetek Mikrovezérlő Memória Digitális kapcsolatok: SPI, USB, CANBUS A/D, D/A átalakítók PWM kimenet ALU Reset-áramkör Órajel-generátor Perifériák CU

Mikrovezérlők programozásához használt nyelvek: Assembly C/C++

Mikrovezérlők programozásához használt nyelvek: Assembly C/C++

C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

A forráskód: Egyszerű szövegfájl C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények Ember által értelmezhető Utasítások sorozata Kötött formátum

Példa: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

#include direktíva: más forráskódrészeket tudunk beágyazni C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények ezek erősen függenek a használt környezettől main() függvény: minden programban pontosan egy darabnak kell lennie itt kezdődik a programunk végrehajtása

A legkisebb egység: 1 bit 8 bit = 1 byte B B B B B B B B B C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények void bool char int unsigned int float double string semmi (ezt is jelölni kell valahogy) logikai (igaz/hamis) egy karakter (1 byte) (előjeles) egész szám egész szám lebegőpontos szám dupla pontosságú float char-okból álló tömb

A legkisebb egység: 1 bit 8 bit = 1 byte B B B B B B B B B C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények void bool char int unsigned int float double string semmi (ezt is jelölni kell valahogy) logikai (igaz/hamis) egy karakter (1 byte) (előjeles) egész szám egész szám lebegőpontos szám dupla pontosságú float char-okból álló tömb

Példa: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

Tömbök: Egy adott adattípusból álló több elemű halmaz C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények A memóriában folytonosan helyezkedik el A tömb méretét előre meg kell mondanunk*

Tömbök: Egy adott adattípusból álló több elemű halmaz C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények A memóriában folytonosan helyezkedik el A tömb méretét előre meg kell mondanunk*

Operátorok: Aritmetikai: = + - * / % ( ) C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények Összehasonlító: ==!= < <= > >= Logikai: &&! Bitenkénti: & ^ ~ << >> Helyben módosító: ++ -- += -= *= /= &= = Egyéb: sizeof

Példa: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

Elágazások: (GOTO) C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, feltételes utasítások Ciklusok Függvények if, if-else switch case

if, if-else: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, feltételes utasítások Ciklusok Függvények

switch case: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, feltételes utasítások Ciklusok Függvények

Ciklusok: for C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények while do-while

for: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények tömörebben:

while : C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

do-while: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

Ciklusvezérlés: break C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények continue return

break: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

break: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

continue: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

return: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

return: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

Függvények: mint a matematikában: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények paraméter, visszatérési érték programszervezésre használhatók Példa: y = sin(x)

Függvények: C nyelv alapismeretek: Programszerkezet Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények

Összefoglalás: A programozó fegyvertára = + - * / % ( ) ==!= < <= > >= ++ -- += -= *= /= &= = sizeof bool int float [] {} ; #include

Mit hagytunk ki: előfordító direktívák, makrók mutatók, mutató aritmetika dinamikus memóriakezelés saját adattípusok, struktúrák függvénykönyvtárak hibakeresés

Ajánlott olvasmányok: http://www.tutorialspoint.com/cprogramming/index.htm B. W. Kernighan - D. M. Ritchie : A C programozási nyelv http://arduino.cc/en/reference/homepage http://arduino.cc/en/reference/libraries

Az ARDUINO család

Az ARDUINO család

Mikrovezérlők programozása Tartalom: Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Ingyenes letöltés: www.arduino.cc

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Menü és ikonsor

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Menü és ikonsor Forrásszerkesztő

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Menü és ikonsor Forrásszerkesztő Napló és állapotsor

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Verifikáció (fordítás)

Mikrovezérlők programozása Az Arduino IDE Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Betöltés és futtatás Verifikáció (fordítás)

Mikrovezérlők programozása Az Arduino IDE Új forrásfájl Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Betöltés és futtatás Verifikáció (fordítás)

Mikrovezérlők programozása Az Arduino IDE Új forrásfájl Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Betöltés és futtatás Mentés Verifikáció (fordítás) Megnyitás

Mikrovezérlők programozása Az Arduino IDE Új forrásfájl Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Soros monitor Betöltés és futtatás Mentés Verifikáció (fordítás) Megnyitás

Mikrovezérlők programozása Eszköz kiválasztása: Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel Összefoglalás: A fájlok nevébe ne tegyünk ékezetet! Mindig figyeljünk, hogy jó eszköz és port legyen kiválasztva Fordításkor figyeljük a naplót (hibák!)

Különbségek: Mikrovezérlők programozása Kisebb tárolási egységek (számábrázolás!) Lassabb órajel minden utasítás számít nincsenek klasszikus be és kimeneti perifériák (billentyűzet, képernyő) a mikrovezérlőn általában nem egyszer futtatjuk a programot, hanem folyamatosan (végtelen ciklus) Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása Különbségek: Függvénytár Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel pinmode(láb, mód) digitalwrite(láb, érték) delay(idő) analogread(láb) analogwrite(láb, érték) beállítja a <láb>-at a megfelelő <mód>-ba. (INPUT,OUTPUT) beállítja a <láb>-on a kimenet <érték>-ét (LOW/HIGH) várakozik <idő>-nyi milliszekundumig beolvassa a <láb>-ról a feszültség értékét* (A/D) beállítja a <láb>-on az analóg értéket** pinmode(8, OUTPUT) digitalwrite(8, LOW) delay(500) analogread(a1); analogwrite(8,214);

Mikrovezérlők programozása analogread(láb): 10 bites A/D átalakító Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel egész számot ad vissza, ami arányos a bemeneti feszültséggel: Feszültségszint: Beolvasott érték 5V 1023..... 2.5V 511...... 0V 0

Mikrovezérlők programozása Az Arduino IDE különbségek az asztali programokhoz képest analogwrite(láb, érték): 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 8 bites PWM modul* 4. program: LED fényerőszabályzó potméterrel egész számot vár 0-255 között, ezzel arányosan állítja be a négyszögjel kitöltési tényezőjét: bementi paraméter: kitöltési tényező: 255 100%..... 128 50%...... 0 0%

Mikrovezérlők programozása Blinky, a villogó LED Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása LED fényerőszabályzás PWM Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása Hiszterézises komparátor Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel

Mikrovezérlők programozása LED fényerőszabályzó potméterrel Az Arduino IDE különbségek az asztali programokhoz képest 1. program: blinky, a villogó LED 2. program: LED fényerőszabályzás PWM 3. program: Hiszterézises komparátor 4. program: LED fényerőszabályzó potméterrel