HTML

Csak úgy mindenről...

Mindenhez értek, csak vannak olyan dolgok, amiket még nem próbáltam.

Utolsó kommentek

  • látjátok feleim szümtükkel: Gondoltad ugyé, hogy majd jön a szemes, oszt hozzá szól? Nos, megtaláltad az érteleme felét, de a másik felére nem gondoltál.Ha nem látjuk a tovább értelmét, akkor ki fog emlékezni ez előttünk jár... (2022.12.25. 11:01) Hanyagolás
  • johara: Szia! Évek óta olvaslak. Vagyis mostanában nemigen van mit :) Most direkt ezért regisztráltam, hogy kommentelni tudjak. Mi történt veled? Utolsó írásokból ítélve nem sok jó. :( Szükség van erre a fa... (2022.12.20. 17:22) Vadász
  • látjátok feleim szümtükkel: Tudom ez nem segít, de talán a hangulatodat egy kissé feldobja. Kösz, hogy felhívtad a tavasszal a figyelmem a sasmadarakra. Nagy élmény volt őket befogadni, a kicsiket felnevelni. A kenyeres kézhez... (2022.09.03. 10:37) Minden nagyon szép, minden nagyon jó
  • látjátok feleim szümtükkel: Azt írod, közel egy havi lemaradással indultál. Biztosan tudod, ha nem, akkor most elmondom, hogy régen a homokvidékeken aratás után a felszántott földbe grumblit vetettek, és nagyon szépen beért. T... (2022.08.13. 09:11) Grumbli II.
  • szivar: @látjátok feleim szümtükkel: Ez az év szokás szerint nem a tervek szerint alakult. Amúgy kapott némi gyomirtót is pár tő a krumpliból (az sem én voltam). (2022.08.07. 10:58) Grumbli
  • Utolsó 20

Címkék

adó (1) adósság (1) akció (1) alapanyagok (1) alkalmasság (1) alkohol (2) alkoholizmus (2) álláskeresés (1) állattenyésztés (1) álmok (5) alvás (1) anyagiak (1) anyagok (1) anyám (7) arduino (1) ásóvilla (2) asztalosság (1) autóbontó (1) az élet apró örömei (1) A Nagy Ő (1) bab (1) bagett (1) baleset (5) balszerencse (1) bankoklás (1) barkácsolás (52) baromfi (1) befolyásoltság (1) bejgli (2) betegség (1) bevállaltam (1) bevásárlás (1) bicikli (13) biztosító (1) blog (1) bors (1) bosszant (110) Buci (1) bukta (1) burgonya (1) busz (1) bútor (1) cigeretta (1) covid (2) CO érzékelő (1) csak úgy (2) csalás (1) csepegtető locsolás (1) cserép (1) csilisbab (1) csülök (2) darázscsípés (2) demotivált (1) disznósajt (2) dohányzás (4) drogok (1) dugulás (1) dühít (3) ebéd (1) édesség (1) egér (2) egérinvázió (1) egészség (2) ejtőernyőzés (4) elavulás (1) elegem van (1) elektromosság (1) elektronika (9) élelmiszer (1) élesztő (1) élet (1) életvitel (29) elmélkedés (138) elszomorít (1) ennivaló (1) építkezek (2) ereszcsatorna (1) eső (1) esőcsatorna (1) ételek (2) evvan (384) fa (1) fagyasztóláda (1) falazás (1) fatüzelés (5) félelem (1) felhők (1) felsőmaró (1) film (2) finom fonott kalács (1) fokhagyma (1) földművelés (3) főzicske (49) fűkasza (3) fűrészelés (4) füstgáz (2) füstölés (5) füstölő (1) füstölt hús (1) fűtés (4) fütstölés (1) fűzés (1) ganézás (1) gáz (2) gazdaság (1) gépek (1) gépészet (1) gépszerelés (1) gyógytorna (1) gyújtóelektróda (1) gyümölcsfa (1) háború (1) hagyma (1) hahaha... (1) hal (2) halászlé (1) halleves (1) hasonlatok (1) használat (1) házfelújítás (6) hegesztés (5) helyesírás (1) helyhiány (1) hengerítőgép (2) hiány (1) hidraulika (1) hit (2) hőmérséklet (1) hőszigetelés (1) hubajavítás (1) humor (1) hurka (1) hűtő (1) idegesít (58) időjárás (4) járókeret (2) Járvány (3) játék (3) javítás (2) jogalkalmazás (10) jövőkép (1) jó hír (1) kacsavágás (1) kaja (8) kakas (1) kakasvágás (2) kalács (1) kapa (1) kapor (2) káposzta (1) karbantartás (1) kazán (1) kelesztés (1) kelesztési idő (1) keletkezett (1) kelt tészta (2) kémia (6) kenyér (2) kerékpár (2) kert (50) kertészkedés (69) került (7) kés (1) kiborultabili (1) kifacsarodva (1) kifakadás (1) kiflipuding (1) kiscsibe (1) kisebbség (1) kísérlet (2) kiszolgálás (1) kocsma (1) kolbász (6) kollégák (5) kolleginák (3) költözés (1) kommentár nélkül (1) kőművesek (2) koncentrációzavar (1) koncultáció (1) konvektor (5) konyha (12) könyvajánló (1) konzerv (1) kórház (1) kórházas dolgok (1) környezetterhelés (1) koronavírus&akármi (1) kotlós (1) kovász (2) kovászolás (1) kovászos (1) közlekedés (1) krumpli (2) KrumplisLángos (1) különbség (1) kutya (2) láb (1) lángos (1) lecsó (1) légzésvédő (1) lencse (1) leszokás (3) létra (2) leves (2) liszt (1) macska (4) madárdeszka (1) magasnyomású mosó (1) magyarítás (1) mai gondolatvitel (1) mankó (1) másodállás (1) maszkviselés (1) megbotránkoztatás (1) megérzés (1) mellékhatások (1) mentők (1) mert szopni jó (23) mesék a pékségből (12) mesék a vasiparból (1) MESTEREK (1) meszelés (1) metszés (1) mikrokontroller (1) mindennapok (12) minőség (1) monoblokk (1) mulcs (1) munkahely (89) munkahelyi baleset (2) munkaidő (1) munkanélküliség (3) munkavédelem (1) műtét (1) napszám (1) napszúrás (1) nemesfém (1) Nemzeti Munkaügyi Hivatal (1) nem érteni eztet (1) nevelés (2) nincs címke (1) nokedli (1) növények (1) nyílásszáró (1) nyúzás (1) oldalas (1) oltás (1) önéletrajz (1) optimizmus (1) Orbán Viktor (1) őrláng (2) orvos (1) orvosok (1) őszibarack (1) otthon (2) palántázás (3) paprika (3) paradicsom (1) párbeszédek (1) parlagfű (1) pékség (9) pénz (17) permetezés (1) piskóta (1) plazmonok (1) pletyka (1) poén (22) politika (20) próbamunka (1) programozás (5) puding (1) rehab (1) reklám (1) rizs (1) rokontartás (1) rotációs (6) rövidhírek (1) sajt (1) savanyítás (1) savanyú uborka (2) scrapping (6) sejtelmek (1) semmi gond (2) siralmas (3) sohasem lesz kész project (2) sonka (1) sütemény (1) sütés (10) sütőipar (1) szabadesés (1) szabadidő (1) szállítás (1) számítástecnika (8) szédülés (2) szelektív hulladék (2) szemlélet (9) szerelés (4) szerencse (2) szerencsejáték (1) szeretek aludni (1) szívügyek (1) szoftver (1) szőlő (1) szomszédság (2) takarítás (2) talajtakarás (1) táppénz (1) társ (1) tecnológia (1) tejkaramella (1) tél (1) temetés (1) térdtörés (1) térkő (3) tervek (1) tervezés (1) tészta (2) tető (1) tippek-trükkök (6) tojás (1) tömegközlekedés (1) tömítés (2) törés (14) törpecsirke (1) történt (28) uborka (1) udvar (1) ügyintézés (2) uPC (3) vakolás (1) vákuumfóliázó (1) vallás (2) vásárlás (1) védelem (1) vegyészkedés (1) vélemény (9) verseny (1) vérszívó légy (1) véső (1) vetemény (1) vidék (1) világvége (1) villanyszerelés (1) virágok (1) vöröshagyma (3) vörös hagyma (1) WC-papír (1) zene (2) zöldbab (2) zsír (1) Címkefelhő

Mikrokontrollerekről - gyufásskatulában

2019.06.10. 16:48 szivar

Minél több elektromos bizbaszt baszkurálok, annál inkább kezdek rájönni arra, hogy milyen keveset is tudok ezen világról.

De mire is lehet jó a fentebb említett mianeve? Elég sok mindenre. Ilyen izéke található az automata mosógépekben, némely mikrohullámú sütőben, légkondiban, villanykapcsolóban(!), meg a franc sem tudhatja azt, hogy még mikbe álmodták bele ezeket a vasdarabokat a mérnökök. A felhasználásuknak csak a fantáziánk szabhat határt, ezerféle kiegészítőt szerezhetünk be hozzájuk - mind 'dugdosós' kivitelben, mind pedig forrasztgatós verzióban. A kiegészítők listája nem lesz teljes, hiszen szinte minden nap (erős túlzással) érkezik valami újdonság, de erről majd egy kissé lentebb...

Alapvetően sok esetben olcsóbb egy mikrokontroller alkalmazása, mint ha diszkrét elektronikát használnánk, továbbá az elkészült mű helyigénye is sokkal kisebb lehet. A fogyasztása is leamortizálódhat a kész áramkörnek - mert van ahol ez is számít.

A címben jelzett tárgy valójában nem egy tárgy, hanem gyűjtőfogalom. Van kismillió változata, a faéktől az atombombáig, mindenféle verzióban. Nekünk 'mindössze' azt kell tudnunk, hogy milyen feladatra szánjuk, s mennyit áldozunk rá. Akár használhatunk egy ATTiny-t az egyszerűbb feladatokhoz, esetleg egy ARM maggal felruházott csodát, vagy egy soklábú PIC-et, vagy éppen egy... Sok gyártó, sok IC, sok-sok lehetőség. Utóbbi esetben a bukás lehetősége is lehetőség...

Egy ilyen mikrokontrollerre tekinthetünk úgy is, mint ha egy komplett számítógépet tartanánk a kezünkben - mert ez így is van. Egy körömnyi (vagy némileg nagyobb) tokban minden rendelkezésünkre állhat ahhoz, hogy egy komplett számítógépet alkossunk. A PC és a mikrokontroller között van egypár apró eltérés. Az egyik az, hogy a mikrokontrollernek van külön program- és külön adatmemóriája, illetve a fajtája válogatja, hogy egyéb nem felejtő memóriát tartalmaz-e a tokozás. Az előttünk lévő PC, tablet, vagy bármely más eszközben van egy adattároló réteg (merefvlemez, flash háttértár vagy hasonló), illetve egy(többnyire több) memóriamodul, amelyben baglyában vannak elraktározva az adatok(kép, hang, egyéb) és a futtatható állományok. Ezeket a háttértárból tölti fel a számítógép.

 De azért nem ugranák ekkorát előre, hiszen nem minden az a vas. Bár sokat tud némely csip, de ahhoz, hogy használni is tudjuk őket, kell rá programot is írni, feltölteni, hubát kergetni.

Először is az második számú műszaki paramétert kell szem előtt tartani: mire szeretnénk használni? Aztán meg az elsőt: mennyibe kerül? Önmagába az árba ne csak azt kalkuláljuk bele, hogy egy IC mi pénzbe fáj, bele kell számolni a teljes fejlesztőkörnyezetet is. Például ha csak kísérletezni szeretnénk a mikrovezérlőkkel, kitapogatni annak a határait, amikre képesek lehetünk, akkor kezdetnek jó választásnak tűnik valami Arduino panelre beruházni. Ez mellé csak le kell tölteni az Arduino IDE fantázianevű alkalmazást - ez még ingyenes, így csak a mikrokontrollerre kell pénzt kiadni. Pécére rádug, programot feltölt, ha nem jön ki a füst a tokból, illetve minden úgy megy ahogy elterveztük, akkor örülés van. Azért csak ennyi a teendő, mert a chipbe bele van gyógyítva a bootloader. A bootloader az meg egy olyan állatfajta, amit nagyjából úgy jellemeznék, hogy tartja a kapcsolatot a számítógép és a csipben elhelyezett memória között. Tehát ha egy beégetett bootloaderrel ellátott csipet próbálunk meg pl. USB kapcsolaton keresztül felprogramozni, akkor az jó eséllyel sikerülni fog. De ha hiányzik az a pár kB a csip memóriájából, akkor meg lehet b*szni az egészet, külön programozóra van szükség a programunk beégetéséhez - az is pénz.

Például PIC esetében nem árt egy kis lét félrerakni ahhoz, hogy egyáltalán be tudjuk égetni a programot a csipben elhelyezkedő tárhelybe. Még az óccó pici kínaji sem annyira olcsó... Plusz kell hozzá egy fordító is, ami ismét kiadással járhat. A földtől jelentős mértékben elrugaszkodva, szerezhetünk még olcsóbb és nagyobb tudású csipeket is, de az ezekhez használatos fejlesztőeszközök (programozó és fejlesztői szoftverek) már nem fehér embernek való áron kerülnek a forgalomba, illetve a használatuk is nehézkes lehet egy kezdő számára. 

Mindenki megkérdezheti, hogy ugyan mire lehet jó egy ilyen mikrovezérlő? Hát szinte bármire. Példának kedvéért ismét leírom, hogy az automata mosógépekben is található ilyen, bár a programozásához szükséges hardver és szoftver egy fél családi ház árába is belekerülhet... Vagy egypár mikrohullámú sütőt is felhozhatnék ismételt példa gyanánt.

A 'hagyományos' számítógépekkel ellenben, a fentebb emlegetett miskulanciákkal az a baj,  hogy elég egy rosszul megírt sor és akkor ohne csip a továbbiakban. Nemcsak, hogy lefagyhat a rá megírt program, hanem fizikailag is kijöhet a füst a tokozásból, vagy az adott portot véglegesen tönkretehetjük, így pl. nyolc kimenettől/bemenettől érzékeny búcsút vehetünk - ha nem hal meg az egész miskulancia. Nem kell megijedni, jön a sűreje...

Első fejezet

Ezen gyorstalpaló első fejezetében a ki- és bemenetekről írnék pár sorban. Ha valaki készített már valami egyszerűbb digitális áramkört, akkor tudhatja azt, hogy digitális értelemben magas(H), alacsony(L) és 'semmilyen'  (Z) állapot létezik. Ez utóbbinak az a nagy előnye, hogy közös vezeték esetén nem viselkedik sem bemenetként, se kimenetként - és ezt lehet programból is módosítani, méghozzá menet közben! Ezzel elérhető az, hogy több eszköz, ugyanazon a vezeték(ek)en kommunikáljon egymással, anélkül, hogy zavarnák egymás 'párbeszédét'. 

A működés szempontjából legfontosabb bemenetek mik az IC-be vezetnek az a Vcc és a GND. Kinek mindez evidens, ugorjon. Azaz a tápfeszültség és a föld. Aki ezt rosszul köti be az vessen egy keresztet és szerezzen másik kontrollert. Azt azért megjegyezném, hogy most magáról a csupasz IC-ről írtam, nem fejlesztői panelről, ahol többé-kevésbé azért védik az IC-t valami egyszerűbb és/vagy bonyolultabb technikával. Továbbá figyelni kell arra is, hogy az IC-re megadott határfeszültségeket ne lépjük át. Hiszen ha az magasabb, mint a megengedett, akkor jó eséllyel ohne IC, ha alacsonyabb, akkor meg működési zavarokat okozhat - vagy semmi sem történik. Erről azért tájékozódjunk az IC-nk adatlapján. Pár percet megér. Az sem túl nagy baj, ha az adott lapka vagy fejlesztői panel adatlapja mindig a kezünk ügyében van.

További bemenetként az órajelet szolgáltató kristály sem elhanyagolható. Bár némely esetben lehetőség van a mikrovezérlőbe épített oszcillátor használatára is - ámde ez nem minden esetben jellemző. Itt a lehetőség szerint tartsuk be az IC gyártójának az ajánlásait, ellenkező esetben szintén működési problémák léphetnek fel. Továbbá a gyártói ajánlások tartalmazzák a tápfeszültség és az órajel összefüggéseit is, ami a legtöbb esetben megegyezik azzal, hogy a tápfeszültség csökkenésével az órajelet is vissza kell vennünk, kivéve a gyevi bírót.

Ha már ezen az apróságon túlestünk, akkor vegyünk górcső alá egy olyan lábat az IC-n, ami kimenetként szolgál. Lehetőleg azt, ami a tokon belül található. Íme egy kapcsolási rajz.upcout1_1.JPG

 Ha jól megnézem, akkor az egy kezdőnek nem sokat árul el. Meg amúgy sem. Akkor rátörekednék a lényegre. Alul és felül egy-egy FET található, a rajzon felül egy P-csatornás(Q1), alul meg egy N-csatornás(Q2). Ezeknek az IC adatlapjában meg van adva a maximális árama, amitől még nem megy tönkre - ezt nem ildomos túllépni, ezért is kell némely esetben teljesítményfokozatot kapcsolni a kimenetre. Ha a 'kimenet engedélyezése' fantázianevű vezetéket magas szintre emeljük, akkor az 'Adat' vezetéken lévő jel nagysága határozza meg azt, hogy a kimenet magas lesz-e vagy alacsony értéken marad. Ha a kimenetet letiltjuk, akkor az átlép a Z állapotba, azaz, mint ha ott sem lenne. Ezt a megoldást az U1 NemÉS kapu, az U2A nevezetű inverter, az U4 NemVAGY kapu, továbbá a Q1 és Q2 FET-ek működésének köszönhetjük. Dióhéjban összefoglalva, a Q1 FET kapujára (az az izé, ami a logikai kaputól jövő vezetékre van rákötve) rákötjük a földet ('negatív' pólust), akkor a tranzisztor vezetni kezdi az áramot. A Q2 FET pont fordítva működik, ha a gate-re rávezetjük a tápfeszt, akkor kinyit, és vezeti az áramot. Nos, akinek van kedve, az készíthet hozzá hazugság igazságtáblázatot is.

Ellenben a mikrovezérlőknek nem árt valami tudomást is szerezni a világról, ahhoz, hogy eldöntsék, mi is a teendő a következőekben. Mint 'köztudomású', az ilyen eszközöknél jószerivel már a tokozás többe kerül, mint a tokon belül lapuló integrált áramkör. Ennek elkerülésére (is) jó az, ha egy bemenet kimenetként is funkcionálhat. Akár több funkcióval is rendelkezhet, IC-je válogatja. Kezdjük mondjuk egy schmitt-triggerel. Ez egy komparátor-szerűség, minek a bemenete egy adott feszültség felett 'billen át' magas szintre - és a kimenete ezután logikailag értelmezhető. Bővebben a wikin.Mondjuk, lehet digitális is a bemenet, azaz TTL kompatibilis, de akár analóg jelek is érkezhetnek az emlegetett bemenetre - és akkor analóg-digitális átalakítóként működik az adott láb. 

Többnyire a tokozáson belül található egy fel- és némely esetben lehúzó ellenállás is, ezt a uPCbe égetett programból lehet elérni, mint sok minden mást is. Ezek bekapcsolásakor megspórolhatunk egy marék külső alkatrészt, tehát a kész áramkört kevesebb elemből állíthatjuk össze - kisebb lesz a kész áramkör helyigénye, picit felgyorsul a fejlesztés, a kísérletezgetés. Ezen ellenállások ügyében szintén a chip adatlapját kell figyelembe venni. De hát öntsük is rá (énkirályi fenségünk) a nyájas olvasóra az információtengert - mondjuk egy kép formájában.
upcio.JPGNos, alaphelyzet... A Q3 FET bekapcsolásával aktivizálódik a felhúzó ellenállás (ha van), a Q4 tranzisztor bekapcsoláskor pedig a lehúzó ellenállás (ha van). Ööö. De mi is a szerepe ezeknek az ellenállásoknak? Bennem is felvetődött párszor a gondolat. Nos, csak annyi, hogy ne kapjon hibás jelet a bemenet - például egy nyomógomb bekötésekor. Mert ha ennél a nyomógombos példánál maradok, akkor fel- vagy lehúzó ellenállás nélkül a bemenetként funkcionáló láb a nyomógomb lenyomásáig 'lebegne' és véletlenszerű értéket vehet fel - ez meg nem túl hasznos egy tulajdonság. 

Az U5 az meg egy buffer. Belemegy az adat, eltárolja, aztán ha a csip 'agya' ráér, akkor beolvassa azt. Ha analóg bemenetként használnánk az adott lábat, akkor azt az U6 analóg kapcsoló engedélyezésével tehetjük meg - egyszerűsítve a működés magyarázatát..

Jah, a ki- és bemenetről lemaradt a túlfeszültség védelem. Mint 'köztudott', az IC-k gyártása közben felhasznált technológia nem nagyon szeresse a statikus elektromosságot. Egyes alkatrészeket szigorúan csak leföldelt testtel szabad megérinteni, és csak leföldelt pákával szabad forrasztani! Ellenkező esetben tönkremehet az alkatrész. Régebben pár FET-et megöltem azzal, hogy hozzáértem a kapujához. De hála a mérnököknek, akik gondoltak a hozzám hasonló balfaszokra is, már java részt ez ellen is védettek a csipek, de azért nem árt kerülni a műszálas holmikat...  De ez még mind semmi!

Csipje válogatja, de a kimenetet lehet használni digitális-analóg konverterként (és vice versa), impulzusszélesség modulátorként(PWM), I2C interfészként, soros kapcsolatként - ráadásul mindezt hardveres gyorsítás mellett, nincs feleslegesen elpazarolt processzoridő. Az elérhető funkciók miatt szintén csak azt tudom javasolni, hogy tájékozódjunk a csip adatlapjából.

Második fejezet

A fentebb emlegetett lábak csoportjaira PORT-ként hivatkozik a szakirodalom. Mint megannyi másról, erről is a csip adatlapjából tájékozódhatunk. Megadják, hogy hány milliamperrel terhelhető egy láb, illetve mekkora árammal terhelhetjük összesen a lábak azon csoportját, miket PORT-nak neveznek. Ez nem túl elhanyagolható dolog, hiszen ha csak azt nézzük, hogy egy xyz lábat 20 milliamperrel lehet terhelni, az pont elég egy LED meghajtására, és pont nyolc LED-et akarunk villogtatni, akkor jaj de fasza. Miközben az adott PORT-ra összesen 40 milliamper áramerősség engedélyezett.. Kijön a tokból a füst és lehet csodálkozni, illetve szomorú szemekkel a szemetest nézegetni...

Egy adott PORT-hoz tartozik egy pár regiszter is. Fajtája válogatja, de a nyolc bites mikrokontrollerek esetében többnyire nyolc bitenkén vannak ezek kiosztva, vagy ilyesmi. Ezen regiszterek, alapvetően csak egy feladatra vannak kihegyezve. Ha az adatlapból már kiderítettük, hogy melyik porthoz, melyik láb és regiszter tartozik, akkor könnyedén be- és kikapcsolhatjuk a hozzá tartozó funkciókat az általunk írt szoftverből. Tehát ha bemenetként akarjuk kezelni a lábat, kell felhúzó ellenállás is, akkor az adott port-hoz tartozó regiszterek megfelelő bitjét kell megváltoztatni, ahhoz, hogy pl. a második láb bemenetként viselkedjen, másik regiszter tartalmának az átírásával aktivizálhatjuk a felhúzó ellenállást. A programunk alá helyezett vas meg a következő órajel alkalmából elvégzi a szükséges dolgokat.

Például, ha az első port, első lábát akarjuk felhúzó ellenállással felvértezni, akkor... Szameg. Itt és most nem tudok és nem akarok konkrét példát mutatni, mert egyszerűen nem lehet. De. Ha fantázianeveket használok, akkor azért érthető lehet a dolog. Tételezzük fel, hogy a port módja (ki- vagy bemenet) el van nevezve PM0-nak, és a hozzá tartozó 8 bit határozza meg, hogy ki- vagy bemenetként szolgáljon-e. Ha kiadjuk (programnyelv és csip függő, ez most assemblerre hasonlít) a MOV B10000000, PM0 parancsot (persze ez még le lesz fordítva gépi kódra, blablabla), akkor a 0.port első bitjéhez tartozó láb bemenetként fog szolgálni minket. Aztán fel kell tölteni tartalommal PU0-nak elkeresztel regisztert is tartalommal, hogy a felhúzó ellenállás is élesedjen. MOV B10000000, PU0, s ezzel meg is volnánk. Lehet beolvasni az adatot (figyulim! megszakításkérés még nincs, részemről nem is lesz leírva). MOV P0, Address . Ez utóbbi utasítással a porthoz tartozó összes láb tartalmát átmásoltuk a az Address memóriacímre. Aki itt már kezd megijedni, az jól teszi, ha tovább olvas. :)

Ha nem muszáj (bassza meg, nem fér bele a memóriába, ez így kurva lassú, stb), akkor csak a mazohisták (és az igazi programozók, akik pislogás nélkül képesek megnézni egy egész estés filmet) programoznak asm-ban. Csomó fejlesztői környezet van, s itt tényleg a felhasznált csip típusa a döntő - no meg a pénztárcák milyensége. Most az Arduino környezetet figyelembe véve fogom a fentebbieket kifilézni. A fentebb emlegetett káromkodások Arduino alatt így néznének ki, a mindenki által szabadon elérhető IDE alatt:

pinMode(D1, INPUT_PULLUP);

Ez volt az a sor, ahol bemenetté alakítottuk az adott port adott lábát, és bekapcsoltuk a felhúzó-ellenállást. S akkor most olvassuk be a láb tartalmát:

if (digitalRead(D1) == true) {itt csinál valamit a programunk}

Arra azért illik figyelni, hogy az emberfia ne szaladjon be a faszerdőbe tátott szájjal. Azaz egy panelnek lehet több kiadása is - ahol azonos lábkiosztás mellett más chipet használnak, s a 'más' chipnek pl. az I2C busza más lábra kerül. Ezt konkrétan onnan tudom, hogy én is beszoptam vele...

A portok mianevéjének a hogyishívjákját Arduino esetében is direkt is el elehet érni. Első példa, ami az arduino ide alatt mukodik:

...
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, INPUT);
...
digitalWrite(1, HIGH);
digitalWrite(2, LOW);
változó = digitalRead(3);

A fentebbi példa nem egy órajel alatt fog lejátszódni, s némileg több helyet foglal a memóriában, mint az alábbi.

DDRD = B11000000;
PORTD = B10000000;
változó = digitalRead(3);

Bárki számára adott a lehetőség, hogy önmagának idejét pazarolja az alkotás helyett. Például meg lehet tekinteni az I2C szabvány paramétereit, önálló funkciókat biggyeszteni a kódba, ügyelve az időzítésekre, meg minden másra is. De használhatjuk a 'Wire' lib-et is helyette. Ez utóbbi eléggé tűrhetően optimalizált cucc, nem csak azon a chipen fut, ami éppen nálunk van. Szóval ha ráérősen dolgozgatunk, akkor nyugodtan megalkothatjuk a saját kódunkat, de ha éppen megszállja az embert az ihlet... Véleményem szerint, használjunk lib-eket, azaz könyvtárakat. Megkönnyíti az életet, a fordító (compiler) pedig egészen jól optimalizálja a helyzetet. Az Arduino fejlesztői panelek esetében - pár kivételtől eltekintve, a beépített chipek összes lábát és összes funkcióját használhatjuk - kivéve a gyevi bírót, hiszen pl. az ArduinoDue lapkájának az ethernet portja...

Harmadik fejezet

Ha már be sikerült ruháznunk egy kontrollerre, akkor kezdhetünk valójában félni, mert ez így, önmagában semmire sem jó. Na, egye bassza, az alaplapon lévő LED-et lehet villogtatni és... És másra nem igazán használhatjuk fel. Szóval, nesze semmi fogd meg jól - első megközelítésben.

Ha már nem vacog annyira az ember foga a dolgoktól, akkor előbb vagy utóbb vérszemet kap. Mint nálam a locsoló automatikánál. Tele van, kikapcsol, üres, akkor bekapcsol. Mármint a szivattyú. Hmm. De jó is lenne, ha ha azt is számolná, hogy mennyiszer ment tele a tartály. Hmm. Jó lenne, ha a tápoldatot is szivattyú szállítaná, nem kellene kannából locsolni az ejtőtartályba. Jó lenne ezt vizualizálni is. Hát ha még csipogna is közben, és LED-ekkel jelezné ki az állapotot. Az sem lenne baj, ha a szárazonfutás elleni védelmet is képes lenne ellátni. Bár a távirányító már valóban erős túlzás volt... De most készül a következő változat, ami figyeli a talajnedvességet is és kap egy valós idejű órát is (mert még maradt üres láb), meg egy számítógéppel kommunikálni képes rádiós kütyüt...

Szóval az embert elkapja előbb-vagy utóbb a hév. Már nem a nagybetűs HÉV, hanem a hév. Ugyanis lehet kapni olyan kütyüket, amik java részt plug &play rendszerűek, rádugod, letöltöd a lib-et (már amikor kell egyáltalán ilyen), beállítod, java részt már mukodik is. Lehet kapni komplett shieldek-et, azaz olyan bizbaszokat, amiket csak rádugsz az alappanelra, felprogramozod és megy. Ethernet-shield (lásd.: internetkapcsolat, ha netán a munkahelyről vagy a mobilodról akarod felkapcsolni a világítást, vagy elindítani otthon a mosógépet, kazánt, mianevét, a miskulanciát), világítós masszírozgantyú-variáliszt (érintőképernyő), GSM-shieldet (meglepő módon adatforgalmat lehet bonyolítani a GSM hálózaton keresztül). És a többi.

Aztán vannak azok a kütyük, amikhez kelletik még tyúkbél is, azaz csatlakozóval ellátott vezeték(ek tömkelege). Esetleg még egy 'dugdosós' próbanyák. Ultrahang szenzor, nyomógombmátrix, kapacitív érzékelők, LCD kijelzők, LED-mátrix kijelző, PIR szenzor, fényérzékelő szenzor, páratartalom méricske, hőmérő, légnyomásszenzor, DAC, ADC, MP3 lejátszó (kicsivel nagyobb, mint egy mikroSD kártya), relék a hogyishívjákok kapcsolgatásához, motorvezérlő áramkör, mert (bár kurvára nem kell, de azért...) kell a CNC-hez, meg sok-sok ezer komponens, amelyikkel képes lehet az ember napokon keresztül eljátszani - s még csak most kezd elszabadulni a fantáziája.

Eztán a későbbiek folyamán rájön, hogy kell még neki forrasztópáka, ón, próbanyák, szoftver, alkatrész, lézernyomtató... Mert ilyen kacat ami kell, az nincs gyáriban... S innentől már nincs megállás a költekezés folyamában.

Tehát testvéreim az Úrban! Ne féljetek a mikrovezérlőktől! Csak tiszteljétek mint a tüzet, mert ellenben hamar sok-sok pénzt kell kidobnotok az ablakon! Nemsokára hozza a postás a DSO-t, mert valami nem stimmel a TWI interfészen. :/ Pedig mikroszkóp lesz belőle a télen. :S Ha el nem baszom.

Epilógus

Bár a bejegyzésből úgy konkréten senki nem tud sok okosságot összeszedni, de gondolatébresztőnek azért szerintem elmegy.

Szólj hozzá!

Címkék: barkácsolás mikrokontroller

A bejegyzés trackback címe:

https://szivarosfrici.blog.hu/api/trackback/id/tr728338212

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása