Ebben a cikkben bemutatok egy praktikus példát az Arduino csatlakoztatására és programozására. Ez egyben a "Hello World" programozása az Arduinóval. Esetünkben az "Arduino LED villog".
A LED villogása bármely más alkatrész nélkül megvalósítható bármely Arduino fejlesztőpanellel. Ebben a példában Arduino UNO lesz. Ez lesz a legegyszerűbb dolog, amit tehetsz Arduino készülékeddel. Tehát térjünk rá.
Amire szükségem lesz egy Arduino villogó LED-hez?
A LED villogásához fejlesztőeszközre lesz szükség, pl. Arduino UNO, USB kábel és számítógép csatlakoztatása letöltött Arduino IDE programmal (kattints a linkre, ott írtam neked a telepítési utasításokat). Az aktuális verzió mindig letölthető az arduino.cc webhelyről. És persze egy kis idő és türelem.
Helyénvaló is lesz próbálj meg villogni nem csak beépített LED-del dióda, hanem egy külső LED-del is. Ehhez legalább egy színes LED-re és 220Ω-os ellenállásra, valamint kenyérlemezre lesz szükség - ez az áramérintkező mező.
És hogyan tudom összekötni?
Erre a célra van bekötési rajz. Minden alkatrésznek megvan a maga elektrotechnikája márka, ahol azzal vannak jelölve üzletek, esetleg értékek. Egy ilyen séma pl. alábbiak szerint:
Ez az integrált LED tipikus csatlakozása közvetlenül standard Arduino táblákon. Vigyázzon, de vannak olyan táblák is, amelyek egy másik fenyőn (MKR1000) lehetnek, vagy egyáltalán nincsenek is (Arduino DUE).
Az ábrán látható nagy Arduino téglalap csapleírásokkal és egy ellenállással ellátott LED-et sorba kötnek Között 220Ω D13 csap és GND (a GND a föld vagy a mínusz pólus). A LED egy elektronikus elem - készülék (akárcsak egy izzó, egy villanymotor stb.). Technikailag ezeket az elemeket működtetőnek nevezzük, és a vezérlő áramkör (Arduino) vezérli az áramellátást nekik, és ezáltal befolyásolja állapotukat. A legegyszerűbb esetben csak be- vagy kikapcsoljuk az áramellátást - a működtető aktív állapotban vagy nyugalmi állapotban van (be/ki,…).
Csatlakoztassa a külső LED-et az ellenállással az alábbi ábra szerint. Figyelje meg, hogy mostantól csatlakozik D9 csap. Miért tűzd be a D9-et? Nos, mert úgy döntöttem, hogy őt akarom erre a fenyőre. A csap tud valami extra dolgot. A PWM kis betűk erre utalhatnak. Később megtudhatja, mit jelentenek. Most csak csatlakoztassa így.
Az ellenállásnak pontosan 220Ω-nak kell lennie?
Ez a helyes kérdés. Különösen, ha nincs ilyen értékű ellenállása, de van hasonlója. Az Arduino, amelyhez csatlakoztatni szeretné a LED-et, rendelkezik korlátozott maximális áram, amely képes a kimeneten teljesíteni. Az egyik csapon (lábon) keresztüli maximális áram 40mA. Ajánlott tehercsap 20mA-ig. Ezért a LED-et közvetlenül az Arduino kimenetéhez csatlakoztathatja, de pl. nem villanykörte vagy villanymotor, általában sokkal nagyobb az áramfogyasztásuk.
Ellenállást alkalmaznak az áramló áram korlátozására. Mit nagyobb ellenállási érték van ellenállása, csapata kevesebb áram áramlik dióda és a dióda arról szól homályos. Tehát a 220ie ellenállás értékén az áram folyik, adjunk hozzá 11mA-t (ez a dióda színétől függ), az ellenállás 1kΩ értékénél már kb. 3mA. Ilyen alacsony áramerősség mellett is a LED halkan világít (de minimális az energiafogyasztásunk). És ha oda raksz egy 150Ω értékű ellenállást, akkor az áram kb. 20mA, a LED világosabb lesz.
És ne is gondoljon arra, hogy a LED-et ellenállás nélkül csatlakoztassa az Arduino-hoz. Miért? Nincs protó! Lebo túlterheli a csapot Az Arduino 40mA-nál nagyobb áramerősséggel, visszafordíthatatlanul elrejtett füstöt és a LED-et ismét az utolsó villanása adja
De légy óvatos, a teljes áram Arduino számára is korlátozott - minden csap együtt max 200mA. Tehát maximum 10 egyidejűleg világító LED-et csatlakoztathat 20mA árammal, vagy alacsonyabb áramot használhat egy nagyobb ellenállási értékű ellenállásnak köszönhetően, így növelve az egyszerre világító LED-ek számát. 10mA áramerősséghez csatlakoztathatja őket 20. Egy cikkben elkészítettem egy LED ellenállásának kiszámítását egy adott áramhoz. Természetesen ez nemcsak az Arduino, hanem más integrált áramkörökre is vonatkozik, ahol a maximális kimeneti áramukat megtalálhatja az adatlapon.
Csatlakoztatnom kell egy ellenállást a LED elé vagy a LED mögé?
Tehát mit gondolsz? Számít vagy sem? Mert részt vesznek sorozatban, mindkét komponensen átáramlik ugyanaz az áram, így nem érdekli őket, hogy milyen sorrendben vesznek részt.
Tehát igen, nem mindegy, hogy az ellenállás a LED előtt vagy mögött van. Ezzel megtervezheti az alkatrészek elhelyezését egy nyomtatott áramköri lapon.
És hogyan kapcsoljam be a LED-et?
Az izzóktól eltérően, amelyek nem számítanak a tápfeszültség polaritásának, és ezért képesek váltakozó feszültségen működni, A helytelenül csatlakoztatott LED-ek nem működnek, ne világítson. Hogy meghatározza helyes polaritás A legbiztonságosabb megnézni a katalóguslapot (azaz az adatlapot), amely egyfajta születési anyakönyvi kivonat az egyes összetevőkről. De a leggyorsabb módszer a legjobb multiméter kipróbálása.
Következő meghatározási módszerek a képen látható táblázat a következőket mutatja:
jel: | + | - |
polaritás: | pozitív | negatív |
Kimenet: | anód (A) | katód (K) |
kivezetés: | hosszú | rövid |
tok kívülről: | lekerekített | lakás |
a tokban: | kisebb | nagyobb |
Első csatlakozzon a hosszabb "láb" LED (pozitív anód) az ellenálláson. És most hasonlóan és logikusan kösse össze a rövid lábát (negatív katód) a talajjal (GND - föld).
És mi a helyzet a programkóddal?
Nem kell fáradságosan leírni vagy keresni és letölteni valamit az internetről? A válasz nem. Minden amire szüksége van egy Arduino IDE kattintson a menüre a "File" -ra és az "Basic" példák között megtalálja "Pislogás“. Kész, a program megnyílik, és valami ilyesmit fog látni:
Ne felejtsd el a tábla csatlakoztatása után jelölje be COM port száma a beállítás a megfelelő fejlesztői testület. Most kattintson a második ikonra (nyíl a jobb oldalon), vagy nyomja meg a "CTRL + U" gombot, és ez a program betöltődik az Arduino programba, és a LED villogni kezd. De melyik LED fog villogni? A táblára integrált, vagy a kenyérlapra a külső? Töltse fel a kódot, és meglátja.
Ahogy Arduino tudja, hol van a LED-em csatlakoztatva?
Nem nem tudja, valahogy meg kell tennie elmondani. Ismered program. Amint azt valószínűleg már megtudta a program betöltésekor a példából, az integrált LED körülbelül másodpercenként villog.
Most megvan ez boncolgatjuk a programot és megpróbálunk néhány beállítást. Szeretnénk hogy a külső LED felvillanjon.
Tehát mit jelentenek ezek a színes szavak?
Az egész A program Arduino számára két részből áll - funkciók. Az irodában érvénytelen beállítás a végrehajtandó parancsok bekapcsolás után csak egyszer (vagy a visszaállítás után). Akkor Arduino folyamatosan indul hajtsa végre a felsorolt parancsokat az irodában érvénytelen hurok. Az első parancsok tehát megtanuljuk az Arduino egyes csapjai (lábai) vezérlésére szolgálnak. Először is csak két állapotra van szükségünk (ki vagy be), vagyis digitális vezérlés. Az első dolog, amit meg kell tennünk beállít vagy adott csap lesz belépés (a jel kívülről kerül az Arduino felé), ill Kimenet (Arduino irányít valamit). Erre a célra a pinMode funkciót (parancsot) használják (pin, mode).
Ez a pinMode funkció a beállítási funkcióban van, mert a program indításakor csak egyszer kell végrehajtanunk. Ezt a LED-et még nem kapcsoljuk be, csak annyit mondunk az Arduinónak, hogy azt akarjuk, hogy ez a tű legyen kimenet. Például a bejegyzés így nézhet ki:
Hát hé, de a példában a LED_BUILTIN-t látom, és nem a pin számot, mi ez?
Ez egy szépen definiált állandó, amelyet úgy állítunk be, hogy az Arduino IDE kiválasztott táblája szerint automatikusan pin számot rendel (ebben az esetben 13.), amelyhez a táblán van rögzítve belső LED. Nem szabad megfeledkeznie arról, ahogy fentebb írtam, hogy egyes táblákon ez a LED csatlakozik más csapokhoz. És mert erőfeszítéseket kell tenni a programok megírására egyetemes különféle típusú táblákhoz, és Ön, mint programozó-fejlesztő, nem tudja, hogy melyik táblához csatlakozik a felhasználó, ezért egy ilyen konstans lesz használva, és gondoskodik róla, és hozzárendeli a helyes PIN-kódot a belső LED-hez.
Ja, így amikor mindenhova átírom a LED_BUILTIN szót 9-re, akkor a külső LED villogni fog.?
Pontosan. Az egész program így fog kinézni:
Ez az egész program? És hol tűntek el a többi angol nyelvű sorok?
Ezek voltak a programozó feljegyzései. Ebben a cikkben megírom, hogyan használják őket helyesen.
Nos, menjünk tovább. A második tulajdonság, amire szükségünk lesz, az a kimeneti fenyő értékének beállítása és ehhez egy másik digitalWrite (pin, value) parancsot fogunk használni.
Ez a parancs már a loop funkcióban van. Ez már egy olyan program része, amelyet folyamatosan ismételni fognak nekünk. A parancs megírása így néz ki:
És maradt még egy késleltetési (1000) parancs. Mire való?
Ez megmondja Arduinónak megállt egy ideig. Ez az adott idő 1000. Ez az érték meg van adva ezredmásodpercekben. Ez a parancs késleltetés (1000) ti leállítja a program végrehajtását 1000 milliszekundumig, ami egy másodperc. Ezért láthatja, hogy a LED másodpercenként villog, mivel két digitalWrite parancs között van.
Ha elmulasztotta ezt a parancsot, látta, hogy a LED kisebb fényerővel világít. Próbáld ki. Is próbálja meg megváltoztatni ezt az értéket például. 500-ig. Játsszon ezekkel az értékekkel, ehhez Arduino van.
Tehát hogyan működik mindez?
Amikor a teljes programot a mi nyelvünkön foglalom össze, ez így néz ki. Először a 9-es tűt állítom a kimenetre. Ezután a ciklusban ezt a csapot HIGH-ra állítottam, amely bekapcsolja a LED-et, majd várjon 1 másodpercet, majd kapcsolja ki a diódát és várjon újra egy másodpercig. Ezután a program újból elindul egy hurokkal a parancsból, hogy a csapot HIGH-ra állítsa, és így tovább.
És amikor a kemnek LED-je van egy másik fenyőn?
Át kell írnom az összes számot 9? Egy helyen egyszer nem lehetett megváltoztatni? Nos, képzelje el, hogy lehetséges és meglehetősen egyszerű.
Amikor átírja a 9-es számot egy másik PIN-kódra, fennáll annak a kockázata, hogy valahol elfelejti. Főleg hosszabb programokkal. Ezért helyénvalóbb ún szimbolikus elnevezés adott PIN-kód helyett, majd használja a következőképpen a programban. Ezt az ún előfeldolgozó irányelv. Hogyan? Hasonló a LED_BUILTIN konstanshoz.
Ilyen név most magadnak mi létrehozunk és pontosan két különböző. Végül is meg kell változtatnunk az időt is.
Most fizikailag csatlakoztassa a LED-et a 10. tűhöz, töltse be a programot, és a LED most villog a fenyő 10-nél és gyorsabban. Változtassa az 500 értéket alacsonyabbra, és kissé engedje le a LED-et, hogy gyorsabban villogjon. Próbáld meghatározni két különböző időpontban - az egyik a megvilágítás hosszára, a másik a megvilágítás nélküli időtartamra vonatkozik. Például. A LED 2 másodpercig világít és fél másodpercig kialszik.
A LED más módon is csatlakoztatható?
Igen, ő fog. Kapcsolja ki az Arduino-t. Első csatlakozzon ezúttal a rövidebb "láb" LED (pozitív katód) az ellenálláson, amely a 10. csaphoz csatlakozik (egyszerűen fizikailag kapcsolja be a LED-et a kenyérlapon). És most hasonlóképpen csatlakoztassa a hosszabb lábát (negatív anód) most, de + 5V-ra. Röviden, A LED most + 5V-ra van csatlakoztatva, és nem a GND-re. Itt rajzolja meg a képen kapcsolat különbség.
Kapcsolja be az Arduino-t, és ha van olyan felvett programja, ahol a LED-nek 2 másodpercig világítania kellett, és fél másodpercig nem kellett bekapcsolnia, akkor azt tapasztalja, hogy most működik pont az ellenkezője. Ez azt jelenti, hogy most a digitalWrite paranccsal nem kapcsolja be a HIGH értékű LED-et, hanem kikapcsolja (hasonlóan az ellenkezője igaz a LOW-ra is).
És miért van így? Mivel az áram a pozitív pólusról + 5 V-ról a negatív GND pólusra áramlik. Most nézze meg alaposan a képet.
Az első esetben a D9 tűhöz a HIGH értéket adjuk + 5 V-ra, és az áram az ellenálláson és a LED-en keresztül lefelé halad a GND földig, és a LED világít. Amikor a LOW érték 0V (GND) a fenyő D9-en, az áram nem folyik sehova (nem GND-ből GND-be).
A második esetben a D9 rögzítéséhez állítsa a HIGH értéket + 5V-ra, és a LED is + 5V-ra csatlakozik, így az áram sem folyik (+ 5V-tól + 5V-ig). De ha a LOW (GND) értéket ráhelyezzük arra a D9 csapra, akkor a LED kigyullad. Legalább egy kicsit világos?
Mit kellene még tudnom?
Legalábbis hogyan ne rombolja le az Arduino-t, amikor csatlakozik. Ezzel foglalkozom egy külön cikkben "Hogyan lehet (nem) elpusztítani az Arduino-t". Javaslom, hogy vessen egy pillantást erre, hogy elkerülje a hibákat, mivel a helytelen vezetékezés károsíthatja az Arduino kártyát.
És mi következik?
Nos, nehéz volt csatlakoztatni és programozni egy Arduino-t? Azt hiszem, nem. Mi vár rád legközelebb? Beállítani ezt a programot a működés érdekében késleltetés a programban egyáltalán nem fordult elő. Az igazat megvallva, ezt a parancsot el kell kerülni, és a lehető legkevesebbet kell használni, hogy a program ne álljon feleslegesen egy helyben a helyén, hanem valami más hasznosat is megtegyen.
A legközelebbi példa erre lesz több LED-del villog különböző villogó időkkel. Vagy mennyi áramlott a LED fényereje világítson, mint egy tompítóval? Ezt megemlítik PWM. Hogyan lehet ezt megtenni az Arduinóval? Ezt a következő cikk tárgyalja.