10

Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

Mikrovezérl®k

Stéger József

2016. szeptember 17.

Manapság sok hétköznapi használati eszközben mikrokontroller lapul a járm¶vekt®l kezdvea közlekedési berendezéseken át akár a lakásriasztóig. A laboratóriumi mérés célja, hogy a hall-gatók megismerkedhessenek az elektrónikai hardverépítés és a számítógépes adatfeldolgozáshatármezsgyéjén található világgal, a programozható logikai áramkörökkel, a mikrovezésl®kkel.

A mikrovezérl® (idegen szóval mikrokontroller) egyetlen lapkára integrált célszámítógép,azaz egy olyan integrált áramköri alkatelem, ami egy mikroprocesszor kiegészítve számos pe-rifériával. A mikrokontrollereket gyakran egyszer¶ mér®feltétekkel, szenzorokkal építjük össze,és valamilyen logikai elvek mentén megfogalmazott vezérlési feladatokra használhatunk fel.

Vezérlési feladatok elvégzésére régebben mikroprocesszorokat használtak. Mikroprocesszorhasználatakor a szükséges memóriát és egyéb perifériákat mint további kiegészít® IC-ket kellettaz áramkörbe építeni. Az chipgyártási technológia rohamos fejl®désével azonban egyre s¶r¶bbkapcsolásokat lehet egyetlen tokba integrálni, így lehet®ség nyílt arra, hogy a központi egységmellé integrálják a perifériákat, kialakítva a mikrokontrollert.

A mikrokontrollereket valós-idej¶ feladatokra használják, ahol valamilyen környezeti jel-zésre nagyon rövid id®n belül (általában ezred-másodperceken belül) kell reagálni kell. Azeszköz költséghatékonyan képes ellátni egyszer¶, kis számítási teljesítményt és operatív táratigényl® m¶veleteket. A hagyományos PC-kel ellentétben általában nincs operációs rendszerük,hanem az adott célfeladatra készített program fut rajta. További lényeges különbség mutat-kozik az operatív tár struktúráját illet®en. Míg a PC-k a Neumann-elv szerint épülnek fel,azaz a programtároló és az adattároló memória nem tér el, addig a mikrokontrollereknél aHarvard-architektúrát alkalmazzák, szétválasztva ezt a két memória funkciót.

A mikrovezérl®k tervezése során fontos szempont, hogy minél kevesebb járulékos alkat-résszel lehessen megoldani a feladatok legszélesebb skáláját amellett, hogy az eszköz fogyasz-tását, méretét és költségét alacsonyan tartsák. Ezt a IC lábainak multiplex felhasználásávalés a beépített perifériákkal együttesen érik el. Az áramköri tok lábai programozhatóan kap-csolódnak a bels® perifériák ki-bemeneteihez, a futó program menet közben átállíthatja, hogyegy adott láb és hozzárendelt port írásra vagy olvasásra használható.

Egy tipikus mikrokontroller 1100 MHz órajellel van meghajtva, 100100k byte ash prog-ramtárat, és nagyságrendileg ugyanennyi RAM memóriát tartalmaz. Tápfeszültségük 1,85 V,maximális áramfelvételük 100 mA tartományban van, a tokozás lábszáma 8 és néhány száz lábközötti. A bels® adatméret alapján 8, 16 és 32 bites mikrokontrollereket különböztethetünkmeg.

Ha egy feladat megvalósításánál mikrovezérl® alapú elektronikát választunk, akkor kétproblémát kell megoldanunk. Egyrészt meg kell tervezni és meg kell építeni a megvalósítandóáramkör hardverét, másrészt meg kell tervezni és meg kell írni az adott hardvert m¶ködte-t® programot. A hardver tervezéséhez hozzátartozik a megfelel® mikrokontroller típus kivá-

1

Page 2: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

lasztása. A konkrét típus kiválasztásánál nem elhanyagolható szempont a programozhatóságtámogatottsága, így a megfelel® fejleszt®i környezet elérhet®sége.

A mikrovezérl®k programozása a mikroprocesszorhoz hasonlóan gépi kódú (assembler) uta-sításokkal történik. Sok típus esetén lehet®ségünk van azonban arra, hogy magas szint¶ prog-ramozási nyelven (pl. C, basic, Pascal) implementáljuk a programot, amit a fejleszt®i környezetmegfelel® gépi kódra fordít. A m¶ködtet® gépi kód mikrokontrollerbe töltése többféleképpenvalósulhat meg: programozó készülék segítségével vagy maszk programozással. A régi mikrove-zérl®típusok csak egyszer voltak programozhatóak, de az új eszközök gyakorlatilag mindegyikeFlash-ROM alapú programtárat tartalmaz, így akár sok ezer program beírást is elviselnek.

A mikrokontroller az ellátandó feladatától függ®en sokféle perifériát tartalmazhat. Mindenegyes beépített periféria hozzátesz az összfogyasztáshoz, amely legtöbbször függ a perifériaállapotától, annak beállításaitól. Az összfogyasztás ismerete azoknál az alkalmazásoknál a leg-kritikusabb, amikor a megépített eszköz üzeme akkumulátoros áramellátást követel meg. Afogyasztás minimalizálásának érdekében egyes ideiglenesen felesleges periféria ki- ill. bekap-csolható akár a program futása folyamán is.

A teljesség igénye nélkül felsoroljuk a leggyakran el®forduló perifériákat:

• oszcillátor (órajelgenerátor),

• operatív tár (program ROM és futás közben elérhet® RAM),

• számlálók/id®zít®k,

• watchdog id®zít® (biztonsági eszköz a m¶ködtet® program lefagyása ellen),

• EEPROM memória (olyan adatok tárolására szolgál, melyek a tápfeszültség elvesztéseután is meg®rizend®ek),

• DSP (a digitális jelfeldolgozáshoz szükséges m¶veleteket gyorsító számolóegység),

• Jelátalakítók (A/D konverter, D/A konverter, komparátor),

• Kommunikációs buszok (I2C, UART, SPI, CAN, Ethernet, 1-Wire, USB, párhuzamosport),

• Memória jelleg¶ tárok kezelése,

• Kijelz® meghajtó egységek,

• Jelgenerátorok (PWM),

• debug interface.

Arduino

A laboratóriumi mérési feladatok elvégzésére az Arduino elektronikai fejleszt®platformot vá-lasztottuk. Az Arduino az Atmel AVR mikrovezérl® családra épül. Olcsó, egyszer¶en progra-mozható és könnyen csatlakoztatható más eszközökhöz.

A fejleszt®platform részét képezi az elektronikai szerel®panel (breadboard), amin az áram-köri elemeket, a szenzorokat és kijelz®ket forrasztás nélkül, kis odagyeléssel könnyen tudjukhálózatba kötni. A breadboard felülnézeti képét az 1-a. ábra mutatja, míg a raszterlukak alatt

2

Page 3: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

meghúzódó rövidzárakat, ami a csomópontok kialakítását segíti az 1-b. ábra jelöli. A panelkét szélén hosszan futó dupla luksor legtöbbszöl a tápvonal szerepét tölti be. A panel középs®része erre mer®leges vezet® szigeteket valósít meg. A kapcsolási hardver összeépítésénél az al-katelemek lábát vagy a nagyobb távolságok áthidalázása a vezetékvégeket (juper) a megfelel®szigethez tartozó lukba kell dugni. Az építés fontos odagyelni, hogy közeli alkatrészek lábaivéletlenül ne érjenek össze, valamint a tervezésnél és a megvalósításnál érdemes törekedni azátláthatóságra, így az esetleges elektronikai hibák feltárása kevesebb id®t vesz igénybe.

1. ábra. (a balra) A forrasztás nélküli elektronikai panel felülnézeti része,(b jobbra) a szerel®panel kötési sémája.

Az Arduino fejleszk®platform felülnézeti képe a 2. ábrán látható, a legfontosabb eleme-ket jelöltük. A platform lelke a mikrovezérl® (1) a panel közepén helyezkedik el. Az áramkörtápellátására lehet®ség van egy erre kialakított tápkonnektoron (2) vagy az USB porton (3)keresztül, a laborban ez utóbbit használjuk. Ugyanez az USB vonal nyújt lehet®séget a mik-rovezérl® és a PC közötti kommunikációra, ami a program felt®ltése vagy m¶ködés közbeniadatforgalom. A panel sarkán helyezkedik el az alapállapotba billent® (reset) kapcsoló (4), amimellett a panelen LED indikátorok jelzik a board állapotát: bekapcsoltság, soros adatforgalom.A mikrovezérl®höz illesztend® elektronikai hálózat tápellátását a boardról is megtehetjük, azerre kialakított konnektorokon (5) keresztül. A boart 5 V egyenfeszültséget biztosít. Az ana-lóg jelek fogadására felkészített perifériák bemenetei (ADC) a (6) jel¶ soron terminálódnak,az Arduinóban 10 bites konverterek kaptak helyet. A board ellenkez® oldalán (7) található adigitális I/O portsor. Azok a vonalak, amiket ∼ szimbólum jelöl impulzusszélességmoduláltkimenetként (PWM) is üzemelhetnek, ha a program úgy kongurálja azokat. A PWM 8-bites,azaz a kitöltési tényez® értéke 256 különböz® értéket vehet fel.

A fejleszt®i környezet (IDE) Java nyelven írt, operációs rendszert®l független, szabad for-rású alkalmazás. A program indítása arduino paranccsal történik, és a bejelentkez® kép a 3.ábrához hasonló. Az IDE segítségével C nyelven írhatjuk meg és a PC-n tesztelhetjük a progra-mokat, és a lefordított gépi programokat USB porton keresztül tölthetjük fel a mikrovezérl®re.

A mikrovezérl® amikor táp alá helyezzük elindítja az utoljára rajta tárolt programot. Ezkét lépésb®l áll, el®ször egy inicializálási folyamat indul el, amit egy végtelen ciklus követ. Avezérl® programozása abból áll, hogy opcionálisan kifejtjük az egyszer lefuttatandó inicializá-ciós függvényt, illetve megírjuk a végtelen ciklus magját. Ezeknek a függvényeknek rigid, el®redeklarált szignatúrája van.

Az inicializációs függvény szignatúrája:

void setup ( ) // i n i c i a l i z a c i o s r e s z

3

Page 4: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

2

3

4 7

1

6

5

2. ábra. Az Arduino UNO felülnézeti képe.

A ciklusmag callback függvényének szignatúrája:

void loop ( ) // makdaralo

Az IDE bal fels® sarkában található pipa-gomb segítségével ellen®rizhetjük az elkészítettkód szintaktikai helyességét, majd a mellette található nyíl -gomb segítségével kísérelhetjükmeg a programkód fordítását és mikrovezérl®be töltését. Ügyeljünk arra, hogy a megfelel®soros vonalon próbáljuk a kódot feltölteni, összeállításunkban ez a /dev/ttyACM0.

Az építést és a felprogramozást körültekint®en kell elvégezni. Mivel amikor a fejleszt®boardot áram alá helyezzük csatlakoztatjuk az USB kábelt az utolsó program indul amikrovezérl®n. Ha ez a program nincs összhangban az újonnan a breadboardon összeállítottáramköri kapcsolással, óhatatlanul egy kimeneti portra helytelenül feszültség kerülhet. Elke-rülend® az ilyen helyzetet a következ® lépéseket kövessük a kivitelezés során:

1. Arduino áramtalanítása (USB kábel kihúzása),

2. régi kapcsolás lebontása, és az új kapcsolás felépítése,

3. ne csatlakoztassa a breadboardra a tápellátást,

4. helyezze feszültség alá az Arduinot,

5. töltse fel a programot,

6. csatlakoztassa a breadboardra a tápvezetéket (Ut = 5 V),

7. ha szükséges, nyomja meg a reset gombot.

4

Page 5: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

3. ábra. A programozói környezet letisztult szövegszerkeszt® ablaka.

Feladatok

A feladatok két csoportra bomlanak, egy része ismertet® jelleg¶, kedvcsináló, a többi kreati-vitást, önálló gondolkodást és alkotást követel meg. Az ismertet® feladatok elvégzése kötelez®(kf), ezeknél a mintaprogramot megosztjuk, az áramkört a hallgató építi össze.

Fontos felhívnunk a gyelmet, hogy ez a mérés rendhagyó, itt nem születik a többi mérésnélszokásos jegyz®könyv, hanem minden feladat összeállítása és élesztése után annak m¶ködéséta laborvezet®vel ellen®riztetni kell, és be kell számolni a tanulságokról. A kötelez® feladatokhiánytalan megoldása a közepes (3) érdemjegy megszerzésére elegend®.

A megoldások bemutatásánál nem kell ragaszkodni a feladatok kit¶zési sorrendjéhez, ahallgató érdeke, hogy a rendelkezésre álló id®vel helyesen gazdálkodjon.

1. Digitális I/O m¶veletek kf

A feladat célja, hogy megismerkedjen a hallgató a mikrovezérl® digitális portjaival, azaz hogyanlehet egy kiválasztott portot olvasni, és egy másik rögzített portot írni.

Az építéshez szükséges alkatrészkészlet:

• világító dióda (LED): 1 db,

• nyomógomb: 1 db,

• ellenállások: 1 db 10 kΩ, 1 db 220 Ω.

Az építési segédlet a 4. ábrán tekinthet® meg.A vezérl® kód:

const i n t pinLED = 13 ; // me ly i k l abon van a LEDconst i n t pinKAPCSOLO = 12 ; // me ly i k l abon van a kapc so l o

5

Page 6: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

13

12

+5V

220

10k

4. ábra. Az áramkörnek két része van a bemenetként szolgáló nyomógomb ésa kimenetet jelent® LED. Mindkét alkatelem kötésénél egy-egy ellenállást kellbeépíteni (áramkorlát, feszültség illesztés).

void setup ( ) pinMode (pinLED , OUTPUT) ; // a LED po r t j a i r h a t opinMode (pinKAPCSOLO, INPUT) ; // a kapc so l o p o r t j a o l v a s h a t o

void bek i ( i n t lab , i n t tar t , i n t var ) d i g i t a lWr i t e ( lab , HIGH) ; // magas ki , LED v i l a g i tdelay ( t a r t ) ; // var t a r t ms−o td i g i t a lWr i t e ( lab , LOW) ; // a lac sony ki , LED e l a l s z i kdelay ( var ) ; // var var ms−o t

void loop ( ) i n t stateKAPCSOLO = dig i t a lRead (pinKAPCSOLO) ; // kapc so l o p i l l a n a t n y i a l l a p o t ai f (stateKAPCSOLO == LOW) // e l e n g e d e t t k apc so l o

bek i (pinLED , 500 , 500) ; e l s e // nyomva t a r t o t t k apc so l o

bek i (pinLED , 125 , 875) ;

2. Digitális I/O haladó

Az el®z® feladatban megtanultak alapján fejlessze tovább a programot. Az új program célja,hogy egyszer¶ mintázat tárolására és visszajátszására megtanítsuk az eszközt. Egészítse kia kapcsolást még egy nyomógombbal, egy visszajelz® LED-del és a szükséges felhúzó illet-ve el®tét ellenállásokkal. Lejátszó módban az eszköz egyik kijelz®jén ismételje folyamatosanaz utoljára megtanult ki-be-ki-be. . . mintázatot. Legyen az els® gomb szerepe, hogy tanulómódba kapcsoljuk az eszközt. Tanuló módban amit a második kijelz® világítva jelez amásik gombbal bebillenty¶zött mintázatot jegyezze meg a mikrovezérl®. A tanítás végeztével,a tanulásjelz® húnyjon ki, és ismételgesse az eszköz ezt az új mintázatot az erre nevesítettkijelz®jén mindaddig, amíg új mintát nem taníttatunk vele.

Megjegyzés: a kapcsoló pergésmentes beolvasására javasolt, hogy a szintek értéke helyett aszintváltozásokat használja id®zítési információként.

3. PWM programozása kf

A feladat célja, hogy megismerkedjünk az impulzusszélesség generátorral. Többek között ana-lóg jelek el®állítására használhatjuk az impulzusszélesség modulátor perifériát. Ilyenkor a ke-letkez® négszögjel kitöltési tényez®jét amplitudóvá alakítandó a jelet simítani kell.

Az építéshez szükséges alkatrészkészlet:

• világító dióda (LED): 1 db,

6

Page 7: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

• ellenállás: 1 db 220 Ω.

Az építési segédlet az 5. ábrán tekinthet® meg.

220

11

5. ábra. Kimenetnek hasonlóan az 1. feladathoz egy LED-et használunk. ALED nom villogását az emberi szem tehetetlensége simítja, látszólag a diódafényereje változik.

A vezérl® kód:

i n t pinLED = 11 ; // kimeno l a bi n t alpha ; // k i t o l t e s i t enye zo 1/255 egy segekbenboolean d i r ; // v a l t o z a s i ranya

void setup ( ) pinMode (pinLED , OUTPUT) ; // a LED p o r t j a t i r j u kalpha = 0 ;d i r = f a l s e ;

void loop ( ) i f ( ( alpha == 0) or ( alpha == 255) )

d i r = ! d i r ; // v e g a l l a p o t b a n f o rdu l unkanalogWrite (pinLED , alpha ) ; // i g a z i t s u n k a genera toroni f ( d i r ) // k i t o l t e s i t enye zo f r i s s i t e s e

alpha++; e l s e

alpha−−;de lay (2 ) ; // s zu s s z an junk 2 ms−t

4. Hullámforma generátor PWM-b®l haladó

A gyakorlatvezet® által megadott paraméterezés¶ hullámforma el®állítása a cél. Használjonalkalmasan választott alulátereszt® sz¶r®t a simításhoz, és gy®z®djön meg róla oszcilloszkópsegítségével, hogy a célul kit¶zött hullámformát valósítja meg összeállítása.

5. ADC és soros vonal írása kf

A feladat célja, hogy megtanuljuk illeszteni az analóg jelet biztosító szenzorokat a mikrove-zérl®höz, valamint lássunk példát arra, hogy a leolvasott adatokat a PC felé küldjük soroskommunikációval.

A PC oldalán a soros vonal olvasását legegyszer¶bben az IDE-hez csatolt monitorral tudjukmegoldani, amit a Tools > Serial Monitor menüpont alatt érünk el.

Az építéshez szükséges alkatrészkészlet:

• változtatható ellenállás (potencióméter): 1 db.

Az építési segédlet a 6. ábrán tekinthet® meg.A vezérl® kód:

7

Page 8: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

+5V

A0

6. ábra. Ezzel az igen egyszer¶ kapcsolással emuláljuk egy analóg szenzor vi-selkedését.

i n t pinPOTM = A0 ; // az ana log s z en zo r kimeno l a ba

void setup ( ) S e r i a l . begin (9600) ; // soro s vona l b e a l l i t a s aS e r i a l . p r i n t l n ( "adatok" ) ; // h e l l o uzene t

void loop ( ) i n t sample = analogRead (pinPOTM) ; // s z en zo r k i o l v a s a s aS e r i a l . p r i n t l n ( sample ) ; // adatok soro s vona l ra i r a s adelay (500) ; // 0 ,5 sec s zu s s z ana s a ko v e t k e z o minta e l o t t

6. Folyadékkristályos kijelz® illesztése kf

A feladat célja, hogy összetettebb kijelz® rendszert tudjunk a mikrovezérl®höz kötni, és azonadatokat megjeleníteni.

Az építéshez szükséges alkatrészkészlet:

• kijelz® (LCD): 1 db,

• változtatható ellenállás (potencióméter): 1 db,

• higanymentes higyankapcsoló (tilt switch): 1 db,

• ellenállások: 1 db 220 Ω.

Az építési segédlet a 7. ábrán tekinthet® meg.A vezérl® kód:

// meghajto v e z e r l e s e h e z s z u k s e g e s konyv tar#inc lude <Liqu idCrys ta l . h>

// i n i c i a l i z a l a s az LCD hu z a l o z a s a v a l osszhangbanLiqu idCrys ta l l cd (12 , 11 , 5 , 4 , 3 , 2) ;

const i n t switchPin = 6 ; // h i g yankapc so l o l a b ai n t sw i t chState = 0 ; // kapc so l o a l l a p o t ai n t prevSwitchState = 0 ; // kapc so l o e l o z o a l l a p o t ai n t r ep ly ; // t a r o l o

void setup ( ) l cd . begin (16 , 2) ; // LCD 16 ka r a k t e r mindket sorbanpinMode ( switchPin , INPUT) ; // h i ganykapc so l o bemenetkentl cd . p r i n t ( "Alapa l l apot . Ova" ) ; // e l s o uzene tl cd . se tCursor (0 , 1) ;l cd . p r i n t ( " tosan razz meg . . " ) ;

8

Page 9: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

7. ábra. A kijelz® beépítése és a helyes orientáció megválasztása kell® körül-tekintést követel: az 1-es láb a föld (Vss), a 2-es láb a táp (Vcc), . . . a 15-ösláb a LED+, a 16-os a LED-. Ez utóbbi két lábat is beköthetjük 220 Ω el®tétellenállással a háttér megvilágításához. A kijelz®re kötött potméter feladata akontraszt beállítása.

void loop ( ) sw i t chState = d ig i t a lRead ( switchPin ) ; // kapc so l o a l l a p o t ai f ( sw i t chState != prevSwitchState ) // atmenet

i f ( sw i t chState == LOW) rep ly = random (8) ; // s o r s o l j u n k szamotl cd . c l e a r ( ) ;l cd . se tCursor (0 , 0) ;l cd . p r i n t ( " Sorsoltam : " ) ;l cd . se tCursor (0 , 1) ;switch ( r ep ly ) // s o r s o l a s fuggo uzene t az LCD−re

case 0 :l cd . p r i n t ( " nu l l a " ) ;break ;case 7 :l cd . p r i n t ( "nemkocka" ) ;break ;de f au l t :l cd . p r i n t ( r ep ly ) ;break ;

prevSwitchState = swi tchState ; // kapc so l o a l l a p o t ana k mentese

7. H®mér® építése haladó

Egészítsük ki az el®z® kapcsolást h®mérséklet érzékel® szenzorral, és a mért h®mérsékletértéketjelezzük a kijelz®n. A h®mérsékletérzékel® huzalozása a 8. ábrát kell kövesse. Ez a szenzor az 5.feladatban használt feszültségosztóval analóg módon háromláb: két lábára a tápfeszültségetkell kötni, a harmadik láb a mért h®mérséklettel monoton változik. Els® közelítésben tekintsüklineárisnak a h®mérsékletfeszültség karakterisztikát. A szenzor tápellátására (Usupply) 2,75,5 V közé kell essen.

9

Page 10: Mikrovezérl®k...megfelel® gépi kódra fordít. A m ködtet® gépi kód mikrokontrollerbe töltése többféleképpen alósulhatv meg: programozó készülék segítségével agyv

8. ábra. A h®mérsékletérzékel® szenzor. A lábak bekötése ezt az orientációtkövetve: Usupply, Usample, föld.

8. Színfelismer® érzékel® építése haladó

Egészítsük ki az el®z® kapcsolást fotoellenállásokkal, színsz¶r®kkel, és egy nyomógombbal. Anyomógombbal jelezzük az eszköznek, hogy vegyen mintát az érzékel®kre vetül® fényb®l. Agombot elengedve az LCD-re írja ki a színcsatornák intenzitását. További fejlesztési lehet®ség,hogy a soros vonalon a PC-re küldjük az intenzitásinformációkat, és az alapján színezzünkvásznat. process

softwarepélda9. Fényvezérelt theremin építése haladó

A piezzo kristályt hajtsuk meg a 3. feladatban megismert generátorral. A megszólaló hang-magasság változzon egy fotoszenzorra érkez® fényintenzitás függvényében.

10. Saját projekt ötlet haladó

Találjon ki valami izgalmas, a rendelkezésére álló id®ben megvalósítható feladatot, melyet haa gyakorlatvezet® jóváhagy építsen meg és mutassa be.

10