Arduino egy mikrovezérlő kártya, amelyet külső eszközök vezérlésére programozhat. Érzékelőkön, motorokon, LED-eken, hangszórókon ... és még az interneten keresztül is kölcsönhatásba lép a külvilággal, rugalmassá téve a különféle projektek számára. Nagyon sok mikrokontroller létezik, de az Arduino népszerű, mivel a különféle projekteket nagyon aktívan tervezik és tárgyalják az interneten. Ha a Google-on vagy a YouTube-on keres, ötletek és információk millióit találja meg, hogy maguk kezdjék felfedezni Arduino-t.
Még akkor sem, ha nincs tapasztalata a mikrovezérlők programozásában - az Arduino-val gyorsan megtanulsz és megtudhat valamit elektronika kísérletekkel.
Mire van szüksége az induláshoz?
Arduino Uno- 1db
USB kábel-1 db
Jumpers 1db
1db fejlesztő testület
Piros LED 4 db
220 ohm ellenállás 4 db
Ellenállás 10 szoba 1 db
Gomb rögzítés nélkül
potenciométer
RGB LED közös katóddal
Mindezt meg lehet vásárolni egy helyi rádió áruházban vagy megrendelni az interneten.
Az online áramkörök demonstrálására és szimulálására egy online szimulátor került felhasználásra.
Ez a szimulátor a Chrome böngészőben működik legjobban.
Vessen egy pillantást az Arduinóra.
Az Arduino nem olyan nagy számítógép, amelyhez külső áramkörök csatlakozhatnak. Az Arduino Uno az Atmega 328P-t használja
Ez a tábla legnagyobb chipje. Ez a chip végrehajtja a memóriájában tárolt programokat. Az Arduino IDE segítségével usb-on letöltheti a programot. Az usb port az arduino számára is energiát biztosít.
Van külön tápcsatlakozó. A táblán két kimenet található, 5v és 3,3v jelöléssel, amelyekre szükség van a különféle eszközök táplálásához. GND-vel jelölt csapokat is talál, ezek földelő vezetékek (a föld 0V). Az Arduino platformon 14 digitális kimenet (érintkező) van, 0-tól 13-ig számozva, amelyek külső csomópontokhoz vannak csatlakoztatva, és két állapotuk van, magas vagy alacsony (be vagy ki). Ezek az érintkezők kimenetekként vagy bemenetekként működhetnek, azaz vagy továbbíthatnak bizonyos adatokat és vezérelhetnek külső eszközöket, vagy adatokat fogadhatnak el az eszközökről. A táblán a következő következtetéseket jelölik A0-A5. Ezek analóg bemenetek, amelyek különböző érzékelőktől képesek adatokat fogadni. Ez különösen akkor kényelmes, ha mérni kell egy tartományt, például a hőmérsékletet. Az analóg bemenetek további funkciókkal rendelkeznek, amelyek külön aktiválhatók.
Hogyan kell használni egy kenyérdeszkát?
Kenyérvágódeszka szükséges az alkatrészek ideiglenes csatlakoztatásához és az eszköz működésének ellenőrzéséhez, mielőtt mindent összeforrasztana.
A következő példák mindegyikét egy kenyérlemezen gyűjtöttük össze, így gyorsan módosíthatjuk az áramkört és újra felhasználhatjuk az alkatrészeket anélkül, hogy a forrasztással zavarnunk kellene.
A kenyérdeszkán lyukak vannak, amelyekbe alkatrészeket és vezetékeket helyezhet be. Ezen lyukak egy része elektromosan kapcsolódik egymáshoz.
A két felső és alsó sor egymáshoz csatlakozik az egész tábla mentén. Ezeket a sorokat az áramkör táplálására használják. Lehet 5 V vagy 3,3 V, de mindenképpen az első dolog, amit meg kell tennie, az 5 V és a GND csatlakoztatása a kenyérpulthoz, az ábra szerint. Időnként ezeket a sorkapcsolatokat meg lehet szakítani a tábla közepén, majd szükség esetén összekapcsolhatja őket, az ábra szerint.
A tábla közepén található fennmaradó lyukakat öt lyukba osztjuk. Az áramköri alkatrészek csatlakoztatására szolgálnak.
Az első dolog, amit a mikrovezérlőhöz csatlakoztatunk, a LED. Az elektromos csatlakoztatási rajz a képen látható.
Miért van szükség ellenállásra az áramkörben? Ebben az esetben korlátozza a LED-en áthaladó áramot. Mindegyik LED-t egy meghatározott áramra tervezték, és ha ez az áram nagyobb, akkor a LED nem működik. Tudja meg, hogy az ellenállás milyen értékűnek kell lennie az Ohmi törvény alkalmazásával. Azok számára, akik nem tudják, vagy elfelejtették, az Ohmi törvény szerint az áram lineáris függése van a feszültségtől. Vagyis minél több feszültséget alkalmazunk az ellenállásra, annál több áram folyik rajta.
V = I * R
ahol V-feszültség az ellenálláson
én- áram az ellenálláson keresztül
R- az ellenállás megtalálható.
Először meg kell határoznunk az ellenállás feszültségét. Az Ön által használt 3mm vagy 5mm LED-ek többsége 3V üzemi feszültséggel rendelkezik. Tehát az ellenálláson ki kell fizetnünk 5-3 = 2v-t.
Ezután kiszámoljuk az ellenálláson áthaladó áramot.
A legtöbb 3 és 5 mm-es LED teljes fényerővel világít, 20 mA-es árammal. Egy ennél nagyobb áram letilthatja őket, és a kisebb erősségű áram csökkenti fényerejét anélkül, hogy ártalmat okozna.
Tehát be akarjuk kapcsolni a LED-et az 5v áramkörben úgy, hogy az árama 20 mA legyen. Mivel az összes alkatrész egy áramkörben van, az ellenállás árama 20 mA lesz.
Megkapjuk
2V = 20 mA * R
2V = 0,02A * R
R = 100 ohm
100 ohm a minimális ellenállás, jobb, ha kicsit többet használunk, mert a LED-ek tulajdonságai eltérnek.
Ebben a példában egy 220 ohmos ellenállást használunk. Csak azért, mert a szerzőnek nagyon sokuk van: kacsintás:.
Helyezze be a LED-et a tábla közepén lévő lyukakba úgy, hogy hosszú kivezetése az ellenállás egyik kivezetéséhez legyen csatlakoztatva. Csatlakoztassa az ellenállás második végét 5 V-ra, és csatlakoztassa a LED második kimenetét a GND-hez. A LED-nek világítania kell.
Felhívjuk figyelmét, hogy a LED csatlakoztatásának különbsége van. Az áram hosszabb terminálról rövidebbre áramlik. A diagramban elképzelhető, hogy az áram a háromszög irányába halad. Próbáljon meg villanni a LED-et, és látni fogja, hogy nem világít.
De az ellenállás csatlakoztatásának egyáltalán nincs különbsége. Megfordíthatja, vagy megpróbálhatja csatlakoztatni a LED másik kimenetéhez, ez nem befolyásolja az áramkör működését. Ez továbbra is korlátozza az áramot a LED-en keresztül.
Arduino vázlat anatómiája.
Az Arduino programjait vázlatnak hívják. Két fő funkcióból állnak. függvény felépítés és funkció hurok
ezen a funkción belül az összes alapbeállítást beállítja. Milyen következtetések működnek a bemeneten vagy a kimeneten, mely könyvtárak kapcsolódnak, inicializálják a változókat. függvény Beállítás () A vázlat során csak egyszer indul, amikor a program elindul.
ez a fő funkció, amelyet utána hajtanak végre beállítás (). Valójában ez a program maga. Ez a funkció határozatlan ideig működik, amíg kikapcsolja a készüléket.
Arduino villogó LED
Ebben a példában összekapcsolunk egy áramkört egy LED-lel az Arduino digitális érintkezők egyikéhez, majd be- és kikapcsoljuk a program segítségével, és több hasznos funkciót is megtanulunk.
- ezt a funkciót a beállítás () a program egyes részei, és a következtetések inicializálására szolgál, amelyeket bemenetként fog használni (Bemenet) vagy kijárat (Kimenet). Az adatokat a PIN-kódból nem lehet olvasni vagy írni, amíg a megfelelőre nem állítja pinMode. Ennek a függvénynek két érve van: pinNumber- Ezt a PIN-kódot fogja használni.
mód- beállítja, hogy a csap hogyan működjön. A bejáratnál (Bemenet) vagy kijárat (Kimenet). A LED világításához jelet kell adnunk FROM Arduino. Ehhez konfiguráljuk a tűt a kilépéshez.
- ez a funkció az állapot beállítását szolgálja (Állam) tű (PinNumber). Két fő állam létezik (általában 3), az egyik HIGH, a tű 5v lesz, egy másik alacsony és a tű 0v lesz. Tehát a LED kigyulladásának magas szintjét kell beállítanunk a LED-hez csatlakoztatott tűn HIGH.
- késés. Annak érdekében, hogy a programot egy meghatározott időtartamra késleltesse, ms-ban.
Az alábbiakban látható a kód, amely miatt a LED villogni kezd.
// LED villog
int ledPin = 7; // Arduino tű, amelyhez a LED csatlakozik
érvénytelen beállítás () {
pinMode (ledPin, OUTPUT); // állítsa a csapot EXIT-hez
}
void loop () {
digitalWrite (ledPin, HIGH); // világítsa meg a LED-et
késleltetés (1000); // késleltetés 1000 ms (1 másodperc)
digitalWrite (ledPin, LOW); // Kapcsolja ki a LED-et
késleltetés (1000); // várjon 1 mp-t
}
Egy kis magyarázat a kódra.
A "//" betűvel kezdődő sorok Arduino megjegyzései, amelyek figyelmen kívül hagyják őket.
Minden parancs pontosvesszővel ér véget, és ha elfelejti őket, hibaüzenet jelenik meg.
ledPinegy változó. A változókat a programok használják az értékek tárolására. Ebben a példában a változó ledPin 7-es értékkel rendelkezik, ez az Arduino PIN-kódja. Amikor az Arduino a programban talál egy karakterláncot egy változóval ledPin , akkor a korábban megadott értéket fogja használni.
Tehát rögzítsd pinMode (ledPin, OUTPUT) hasonló a rekordhoz pinMode (7, OUTPUT).
De az első esetben elegendő, ha megváltoztatja a változót, és minden sorban megváltozik, ahol használják, a második esetben a változó megváltoztatásához minden egyes parancsban meg kell változtatnia a tollakat.
az első sorban a változó típusát jelzi. Az Arduino programozásakor fontos, hogy mindig közölje a változók típusát. Egyelőre elég, ha ezt tudja INT negatív és pozitív számokat jelenít meg.
Az alábbiakban bemutatjuk modellezés vázlatot. Az áramkör működésének megtekintéséhez nyomja meg a Start gombot.
A várakozásnak megfelelően a LED kialszik és egy másodperc múlva kigyullad. Próbálja meg megváltoztatni a késést, hogy megnézze, hogyan működik.
Több LED kezelése.
Ebben a példában megtanulja, hogyan kell több LED-et vezérelni. Ehhez telepítsen további 3 LED-et a táblára, és csatlakoztassa az Arduino ellenállásokhoz és csapokhoz, az alább látható módon.
A LED-ek egymás utáni be- és kikapcsolásához meg kell írni egy ilyen programot:
// Több LED villog
int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7;
érvénytelen beállítás () {
// állítsa be a csapokat EXIT-ként
pinMode (led1Pin, OUTPUT);
pinMode (led2Pin, OUTPUT);
pinMode (led3Pin, OUTPUT);
pinMode (led4Pin, OUTPUT);
}
void loop () {
digitalWrite (led1Pin, HIGH); // világítsa meg a LED-et
késleltetés (1000); // késleltetés 1 mp
digitalWrite (led1Pin, LOW); // tegye ki a LED-et
késleltetés (1000); // késleltetés 1 mp
// ugyanezt tegye a többi 3 LED-hez
digitalWrite (led2Pin, HIGH); // világítsa meg a LED-et
késleltetés (1000); // késleltetés 1 mp
digitalWrite (led2Pin, LOW); // tegye ki a LED-et
késleltetés (1000); // késleltetés 1 mp
digitalWrite (led3Pin, HIGH); // világítsa meg a LED-et
késleltetés (1000); // késleltetés 1 mp
digitalWrite (led3Pin, LOW); // tegye ki a LED-et
késleltetés (1000); // késleltetés 1 mp
digitalWrite (led4Pin, HIGH); // világítsa meg a LED-et
késleltetés (1000); // késleltetés 1 mp
digitalWrite (led4Pin, LOW); // tegye ki a LED-et
késleltetés (1000); // késleltetés 1 mp
}
Ez a program jól fog működni, de ez nem a legésszerűbb megoldás. A kódot meg kell változtatni. Annak érdekében, hogy a program újra és újra működjön, a meghívott konstrukciót fogjuk használni.
A ciklusok akkor kényelmesek, ha ugyanazt a műveletet többször meg kell ismételni. A fenti kódban megismételjük a sorokat
digitalWrite (led4Pin, HIGH);
késleltetés (1000);
digitalWrite (led4Pin, LOW);
késleltetés (1000);
teljes vázlatkód a mellékletben
LED fényerő beállítása
Időnként meg kell változtatnia a LED-ek fényerejét a programban. Ezt a parancs segítségével lehet megtenni analoWrite (). Ez a parancs annyira gyorsan be- és kikapcsolja a LED-et, hogy a szem nem látja ezt a villogást. Ha a LED felét és félig kikapcsolja, akkor vizuálisan úgy tűnik, hogy világosságának felénél világít. Ezt impulzusszélesség-modulációnak (PWM vagy PWM angolul) nevezzük. A shim-et gyakran használják, mivel felhasználható az "analóg" komponens digitális kóddal történő vezérlésére. Nem minden Arduino csap alkalmas erre a célra. Csak azok a következtetések, amelyek körül az ilyen megnevezés levonásra kerül "~”.Látni fogja a 3,5,6,9,10,11 csapok mellett.
Csatlakoztassa egyik LED-jét az egyik PWM kimenethez (a szerző számára ez a 9. érintkező). Most futtassa a vázlat villogó LED-jét, de először változtassa meg a parancsot digitalWrite () tovább analoWrite (). analoWrite () Két érvvel rendelkezik: az első a tüske száma, a második a PWM értéke (0-255), a LED-ekkel szemben a fényerő lesz, az elektromos motoroknál pedig a fordulatszám. Az alábbiakban bemutatunk egy példakódot a LED különböző fényerejére.
// Változtassa meg a LED fényerejét
int ledPin = 9; // LED csatlakozik ehhez a tűhöz
érvénytelen beállítás () {
pinMode (ledPin, OUTPUT); // inicializálja a tűt a kimenethez
}
void loop () {
analoWrite (ledPin, 255); // teljes fényerő (255/255 = 1)
késleltetés (1000); // szünet 1 mp
digitalWrite (ledPin, LOW); // kapcsolja ki a LED-et
késleltetés (1000); // szünet 1 mp
analogWrite (ledPin, 191); // fényerő 3/4-nél (191/255 ~ = 0,75)
késleltetés (1000); // szünet 1 mp
digitalWrite (ledPin, LOW); // kapcsolja ki a LED-et
késleltetés (1000); // szünet 1 mp
analoWrite (ledPin, 127); // fél fényerő (127/255 ~ = 0,5)
késleltetés (1000); // szünet 1 mp
digitalWrite (ledPin, LOW); // kapcsolja ki a LED-et
késleltetés (1000); // szünet 1 mp
analogWrite (ledPin, 63); // negyedéves fényerő (63/255 ~ = 0,25)
késleltetés (1000); // szünet 1 mp
digitalWrite (ledPin, LOW); // kapcsolja ki a LED-et
késleltetés (1000); // szünet 1 mp
}
Próbálja meg megváltoztatni a PWM értéket a parancsban analoWrite ()hogy lássa, hogyan befolyásolja a fényerőt.
Ezután megtanulja, hogyan állíthatja be a fényerőt tökéletesen nulláról. Természetesen másolhat egy darab kódot 255-szer
analogWrite (ledPin, fényerő);
késés (5); // rövid késleltetés
fényerő = fényerő + 1;
De érti - ez nem lesz praktikus. Ehhez a legjobb a korábban használt FOR hurkot használni.
A következő példa két ciklust használ, az egyiket a fényerő csökkentésére 255-ről 0-ra
mert (belső fényerő = 0; fényerő = 0; fényerő -) {
analogWrite (ledPin, fényerő);
késleltetés (5);
}
késés (5) a fényerősség emelkedésének és csökkenésének sebességének lassítására 5 * 256 = 1280 ms = 1,28 mp.)
Az első sor "brightness-"úgy, hogy a fényerő értéke 1-rel csökkenjen, a ciklus minden egyes ismétlésekor. Felhívjuk figyelmét, hogy a ciklus mindaddig működni fog, amíg fényerő> = 0A jel cseréje > a táblán >= a fényerőtartományba 0-t vettünk be. Ez a vázlat az alábbiakban látható.
// simán változtassa meg a fényerőt
int ledPin = 9; // A LED csatlakozik ehhez a tűhöz
érvénytelen beállítás () {
pinMode (ledPin, OUTPUT); // inicializálja a tűt a kilépéshez
}
void loop () {
// fokozatosan növelje a fényerőt (0–255)
mert (belső fényerő = 0; fényerő = 0; fényerő -) {
analogWrite (ledPin, fényerő);
késleltetés (5);
}
késleltetés (1000); // várjon 1 mp-t
// finoman csökkentse a fényerőt (255-ről 0-ra)
mert (belső fényerő = 255; fényerő> = 0; fényerő -) {
analogWrite (ledPin, fényerő);
késleltetés (5);
}
késleltetés (1000); // várjon 1 mp-t
}
}
Ez nem nagyon látható, de az ötlet világos.
RGB LED és Arduino
Az RGB LED valójában három különböző színű LED egy házban.
Különböző fényerősségű LED-ekkel kombinálva különböző színeket kombinálhat és kaphat. Arduino esetén, ahol a fényerő gradiensek száma 256, 256 ^ 3 = 16581375 lehetséges színt kap. A valóságban természetesen kevesebb lesz ezek közül.
A LED, amelyet használunk, a közös katód. Ie mindhárom LED-t katódok szerkezetileg egy terminálhoz kötik. Ezt a tűt összekapcsoljuk a GND tűvel. A fennmaradó csatlakozókat a korlátozó ellenállásokon keresztül kell csatlakoztatni a PWM csatlakozókhoz. A szerző a 9-11 következtetéseket alkalmazta, így lehetőség lesz az egyes LED-ek külön vezérlésére. Az első vázlat bemutatja, hogyan kell külön bekapcsolni az egyes LED-eket.
// RGB LED - teszt
// pin csatlakozások
int piros = 9;
int zöld = 10;
int kék = 11;
érvénytelen beállítás () {
pinMode (piros, OUTPUT);
pinMode (kék, OUTPUT);
pinMode (zöld, OUTPUT);
}
void loop () {
// a piros LED be- / kikapcsolása
digitalWrite (piros, magas);
késés (500);
digitalWrite (piros, LOW);
késés (500);
// a zöld LED be- / kikapcsolása
digitalWrite (zöld, magas);
késés (500);
digitalWrite (zöld, LOW);
késés (500);
// a kék LED be- / kikapcsolása
digitalWrite (kék, magas);
késés (500);
digitalWrite (kék, LOW);
késés (500);
}
A következő példa a parancsokat használja analoWrite () és különféle véletlenszerű fényerő-értékeket kap a LED-ekhez. Látni fogja, hogy a különböző színek véletlenszerűen változnak.
// RGB LED - véletlenszerű színek
// pin csatlakozások
int piros = 9;
int zöld = 10;
int kék = 11;
érvénytelen beállítás () {
pinMode (piros, OUTPUT);
pinMode (kék, OUTPUT);
pinMode (zöld, OUTPUT);
}
void loop () {
// válasszon egy véletlenszerű színt
analoWrite (piros, véletlenszerű (256));
analoWrite (kék, véletlenszerű (256));
analoWrite (zöld, véletlenszerű (256));
késleltetés (1000); // várjon egy másodpercet
}
Véletlenszerű (256)-Veletlen számot ad vissza 0 és 255 között.
A mellékelt fájlban található egy vázlat, amely szemlélteti a színek egyenletes átmenetet vörösről zöldre, majd kékre, pirosra, zöldre stb.
Példavázlat működik, de sok másolat létezik. Egyszerűsítheti a kódot azzal, hogy megírja saját segítő funkcióját, amely zökkenőmentesen megváltoztatja az egyik színt a másikra.
Így fog kinézni:
Nézzük meg egy függvény részleges meghatározását. Funkció hívva fader és két érvvel rendelkezik. Minden argumentum vesszővel elválasztva, és a függvénydefiníció első sorában deklarált típustól függ: void fader (belső szín1, belső szín2). Látja, hogy mindkét érvet úgy deklarálják, mint: int, és nekik vannak megadva color1 és COLOR2 feltételes változóként a függvény meghatározására. űr azt jelenti, hogy a függvény nem ad vissza értékeket, egyszerűen végrehajtja a parancsokat. Ha olyan függvényt kellene írni, amely visszaadja a szorzás eredményét, ez így néz ki:
int szorzó (int szám1, int szám2) {
int termék = szám1 * szám2;
visszatérő termék;
}
Figyelem, hogyan deklaráltuk Type-t int visszatérési típusként
űr.
A funkción belül vannak olyan parancsok, amelyeket már az előző vázlatban használt, csak a PIN-kódok helyébe a color1 és COLOR2. Funkció hívva fader, érveit az alábbiak szerint kell kiszámítani: 1. szín = piros és color2 = zöld. A teljes archív vázlat funkciók felhasználásával
gomb
A következő vázlatban egy gombot általában nyitott érintkezőkkel kell használni, rögzítés nélkül.
Ez azt jelenti, hogy amíg a gombot nem nyomják meg, az áram nem áramlik rajta, és elengedése után a gomb visszatér eredeti helyzetébe.
Az áramkörben a gomb mellett egy ellenállást is használnak. Ebben az esetben nem korlátozza az áramot, hanem "húzza" a gombot 0v (GND) értékre. Ie amíg a gombot nem nyomják meg az Arduino csapján, amelyhez csatlakoztatják, a szint alacsony lesz. A 10 kΩ-os áramkörben alkalmazott ellenállás.
// definiálja a gomb kattintást
int buttonPin = 7;
érvénytelen beállítás () {
pinMode (buttonPin, INPUT); // inicializálja a bemeneti tűt
Serial.begin (9600); // inicializálja a soros portot
}
void loop () {
if (digitalRead (buttonPin) == HIGH) {// ha a gombot megnyomják
Serial.println ("préselt"); // nyomtatás "nyomva"
} egyéb {
Serial.println ("unpressed"); // egyébként "unpressed"
}
}
Több új csapat van ebben a vázlatban.
-Ez a parancs értéke az ellenőrzött kimenet magas (magas szintű) és alacsony (alacsony szintű) értéke. Korábban a setup () beállításban ezt a kimenetet bemenetre kell konfigurálni.
; // ahol a buttonPin a PIN-kód, ahova a gomb csatlakozik.
A soros port lehetővé teszi Arduino üzenetek küldését a számítógépre, miközben maga a vezérlő futtatja a programot. Ez hasznos egy program hibakeresésében, üzenetküldésben más eszközökre vagy alkalmazásokra. Az adatátvitel engedélyezéséhez a soros porton keresztül (UART vagy USART néven is ismert) meg kell inicializálnia a telepítést ()
Serial.begin () csak egy érv az adatátviteli sebesség az Arduino és a számítógép között.
vázlat, egy parancs szolgál az üzenet megjelenítésére az Arduino IDE-ben (Eszközök >> Soros monitor).
- a kialakítás lehetővé teszi a program előrehaladásának ellenőrzését több ellenőrzés egy helyen történő kombinálásával.
Ha (ha) a digitalRead MAGAS értéket ad vissza, akkor a "megnyomva" szó jelenik meg a monitoron. Egyébként (egyébként) a "nyomja" szó jelenik meg a monitoron. Most kipróbálhatja a LED be- és kikapcsolását egyetlen gombnyomással.
// gombnyomás érzékelés LED kimenettel
int buttonPin = 7;
int ledPin = 8;
érvénytelen beállítás () {
pinMode (buttonPin, INPUT); // ezúttal a pin pin-et INPUT-ra állítjuk
pinMode (ledPin, OUTPUT);
Serial.begin (9600);
}
void loop () {
if (digitalRead (buttonPin) == HIGH) {
digitalWrite (ledPin, HIGH);
Serial.println ("préselt");
} egyéb {
digitalWrite (ledPin, LOW);
Serial.println ("nyomtatott");
}
}
Analóg bemenet.
analogRead lehetővé teszi az adatok olvasását az Arduino analóg tűk egyikéről, és 0 és 0 (10 V) és 1023 (5 V) közötti értéket jelenít meg. Ha az analóg bemeneten a feszültség 2,5 V, akkor 2,5 / 5 * 1023 = 512 kerül nyomtatásra
analogRead csak egy argumentummal rendelkezik - Ez az analóg bemeneti szám (A0-A5). A következő vázlat egy kódot szolgáltat a potenciométer feszültségének leolvasására. Ehhez csatlakoztasson egy változó ellenállást, a szélső csapokat az 5V és GND érintkezőkhöz, és a középső csapot az A0 bemenethez.
Futtassa a következő kódot, és nézze meg a soros monitorban, hogyan változnak az értékek az ellenállás gomb forgásától függően.
// analóg bemenet
int potPin = A0; // a potenciométer központi kimenete csatlakozik ehhez a tűhöz
érvénytelen beállítás () {
// az analóg pin alapértelmezés szerint bemenettel van engedélyezve, tehát az inicializálás nem szükséges
Serial.begin (9600);
}
void loop () {
int potVal = analogRead (potPin); // potVal egy 0 és 1023 közötti szám
Serial.println (potVal);
}
A következő vázlat egyesíti a gombra kattintó vázlatot és a LED fényerőszabályzó vázlatát. A LED a gombbal kigyullad, és a potenciométer szabályozza az izzás fényerejét.
// gombnyomás érzékelés LED kimenettel és változó intenzitással
int buttonPin = 7;
int ledPin = 9;
int potPin = A0;
érvénytelen beállítás () {
pinMode (buttonPin, INPUT);
pinMode (ledPin, OUTPUT);
Serial.begin (9600);
}
void loop () {
if (digitalRead (buttonPin) == HIGH) {// ha megnyomja a gombot
int analogVal = analogRead (potPin);
int scaledVal = térkép (analogVal, 0, 1023, 0, 255);
analoWrite (ledPin, scaledVal); // kapcsolja be a led-et a pot által beállított intenzitással
Serial.println ("préselt");
} egyéb {
digitalWrite (ledPin, LOW); // kapcsolja ki, ha a gombot nem nyomja meg
Serial.println ("nyomtatott");
}
}