A potenciométerek és a forgójeladók első pillantásra szinte azonosnak tűnnek, de eltérő módon működnek. Fedezze fel, hogyan használhatja mindkettőt Arduino-val.
Az elektronikus felhasználói vezérlőelemek közül a forgatógombok a legkielégítőbbek a használat során. Kiegészíthetik az érintőképernyőket és más beviteli eszközöket, valamint jól működnek gombokkal és kapcsolókkal. De hogyan adhat hozzá egy gombot a saját barkács Arduino projektjeihez?
Két fő lehetőség közül választhat: egy potenciométer vagy egy forgó jeladó. Ezek az összetevők hasonlónak tűnhetnek, de az olyan eszközökkel, mint például az Arduino mikrovezérlő kártyával való használatuk módszerei nagyon eltérőek. Lássuk, hogyan viszonyulnak egymáshoz.
Potenciométerek vs. Forgó kódolók
A legtöbb potenciométer és forgó kódoló, amellyel a barkácsolás szerelmesei találkozhatnak, hasonló formájú. Egy téglalap alakú vagy hengeres aljzattal rendelkeznek, csatlakozólábakkal, és egy kerek tengelyük van, amely csavarodik, és kivágásokkal rendelkezik, hogy a sapkára ülhessen.
Egyes potenciométerek másképp néznek ki, mint például azok, amelyek hosszú diák formájában vannak, mint például a zenekeverő fedélzeteken. Ami azonban a forgós típust illeti, első pillantásra szinte teljesen megegyeznek a forgójeladókkal, így megbocsátható, ha azt gondolná, hogy ugyanazok.
Mi az a potenciométer?
A potenciométer lényegében egy változó ellenállás. A tengely elforgatásával a potenciométeren belüli ellenállás megváltozik, így a felhasználó megváltoztathatja az áramkör tulajdonságait anélkül, hogy újra kellene építenie. A potenciométerek lehetnek analógok és digitálisak is, de a digitális potenciométerek utánozzák az analógokat, és ez nagyon hasonlóvá teszi őket a használathoz.
A potenciométereknek mindig van egy meghatározott kezdő- és végpontja, ahol a tengely már nem forgatható. Egyes potenciométerek göröngyös érzést keltenek forgatva, de sok sima is, mint a régi sztereókon.
Annak ellenére, hogy analóg, a potenciométerek jól működnek a mikrokontrollerekkel. Könnyen lehet állítson be egy potenciométert egy Raspberry Pi Pico-val vagy Arduino.
Mi az a Rotary Encoder?
A forgó jeladók egy érzékelő segítségével határozzák meg tengelyük helyzetét, hogy analóg vagy digitális jelet adnak a csatlakoztatott eszköznek. Ez jelzi az eszköznek, hogy a kódoló melyik pozícióban van. A forgó tengely mellett a forgójeladók általában beépített nyomógombbal is rendelkeznek, amely a tengely lefelé nyomásával működtethető.
A potenciométerekkel ellentétben a forgójeladók megállás nélkül tudnak forogni, és szinte mindig vannak tapintható ütések a tengely minden helyzetéhez. Sok modern autó forgó kódolót használ szórakoztató rendszereinek vezérlésére.
Hogyan használjunk potenciométert Arduino-val
Egyszerű kialakításuknak köszönhetően egyszerű a potenciométer használata Arduino-val. A potenciométerének három csatlakozója van: test, kimenet és vref. A föld és a vref érintkezők az Arduino GND és 5 V csatlakozóihoz csatlakoznak, míg a potenciométer kimeneti érintkezője a kártya egyik analóg bemenetéhez csatlakozik.
Arduino potenciométer kód
Az Arduino potenciométer kódja az alapjellel kezdődik beállít() és hurok() sablon, amelyet akkor fog látni, amikor új fájlt hoz létre az Arduino IDE-ben. Először adjunk hozzá a const int változó a kód elején, hogy regisztrálja a pot analóg érintkezőjét – ebben az esetben A0.
constint potenciométer = A0;
Ezt követően a beállít() A funkció egyszerű: csak bemenetként kell deklarálnia a potenciométer lábát. Soros kapcsolatot is létrehozhat, ha adatokat szeretne küldeni a számítógépére diagnosztika céljából.
üresbeállít(){
pinMode (potenciométer, INPUT);
Sorozatszám.kezdődik(9600);
}
Ezután itt az ideje beállítani a hurok() funkció. Kezdje azzal, hogy hozzon létre egy int változó segítségével analógRead() funkció a potenciométer pozíciójának tárolására. Ezt követően használhatja a térkép() funkció csökkenti az Ön által kezelt érték méretét – ebben a példában a PWM specifikációknak való megfelelés érdekében, például a LED fényerejének szabályozásához. Adjon hozzá egy rövid késleltetést a stabilitás biztosítása érdekében.
üreshurok(){
int potenciometerValue = analogRead (potenciométer);
térkép (potenciometerValue, 0, 1023, 0, 255);
Sorozatszám.println(potenciometerValue);
késleltetés (10);
}
Most, hogy megvan a potenciométer pozíciója, használhatja a kód többi részével. Például egy ha utasítás jól működik a kód kiváltására, amikor a potenciométer egy adott helyzetben van.
constint potenciométer = A0;
üresbeállít(){
pinMode (potenciométer, INPUT);
Sorozatszám.kezdődik(9600);
}
üreshurok(){
int potenciometerValue = analogRead (potenciométer);
térkép (potenciometerValue, 0, 1023, 0, 255);
Sorozatszám.println(potenciometerValue);
késleltetés (10);
}
Hogyan használjunk forgó kódolót Arduino-val
A forgó jeladók bonyolultabb kódot igényelnek, mint a potenciométerek, de még mindig meglehetősen könnyű velük dolgozni. A forgó jeladó öt érintkezővel rendelkezik: földelés, VCC, gombtű (SW), A kimenet (CLK) és B kimenet (DT). A föld és a VCC érintkezők az Arduino földeléséhez és 5 V-os csatlakozóihoz csatlakoznak, míg az SW, CLK és BT érintkezők az Arduino egyedi digitális csatlakozóihoz csatlakoznak.
Arduino Rotary Encoder kód
A kódunk egyszerűbbé és könnyebben használhatóvá tétele érdekében az MPgrams által létrehozott SimpleRotary Arduino könyvtárat fogjuk használni. GitHub. Győződjön meg arról, hogy ez a könyvtár telepítve van, mielőtt elkezdene dolgozni a kódon.
Hasonlóan a potenciométer kódjához, elindíthatja a forgó kódoló szkriptjét az alap Arduino-val beállít() és hurok() funkciósablon. Kezdje a SimpleRotary könyvtár deklarálásával, és ebben a sorrendben rendelje hozzá a kódoló lábait; CLK, DT és SW.
#beleértve
SimpleRotary forgó(1,2,3);
Nem kell semmit hozzátenned a sajátodhoz beállít() funkciót, kivéve, ha a soros monitort szeretné használni a forgó jeladó diagnosztizálására.
üresbeállít(){
Sorozatszám.kezdődik(9600);
}
A hurok() A funkció egy másik történet. A jeladó tengely forgásának meghatározása a-val kezdődik rotary.rotate() függvényhívás, amely hozzá van rendelve egy int változó. Ha az eredmény 1, akkor a kódoló az óramutató járásával megegyező irányba forog. Ha az eredmény 2, akkor a kódoló az óramutató járásával ellentétes irányban forog. Az eredmény mindig 0 lesz, ha a kódoló nem fordult meg az utolsó ellenőrzés óta.
Te tudod használni ha utasításokat, hogy a kódoló forgási irányától függően más kódot indítsanak el.
üreshurok(){
int encoderRotation;
encoderRotation = rotary.rotate();if (encoderRotation == 1) {
Serial.println("óramutató járásával megegyező");
}
if (encoderRotation == 2) {
Serial.println("óramutató járásával ellentétes irányban");
}
}
Ezenkívül hozzá kell adnia egy kódot a kódoló gombjához a hurok() funkció. Ez a folyamat nagyon hasonló, kivéve, hogy a rotary.push() funkció helyett rotary.rotate().
üreshurok(){
int encoderButton;
encoderButton = rotary.push();
if (encoderButton == 1) {
Serial.println("gomb megnyomva");
}
}
Ez a forgatókönyv meglehetősen egyszerű, és sokat tehet azért, hogy a sajátja legyen. Érdemes megnézni a SimpleRotary projekt dokumentációját, hogy megbizonyosodjon arról, hogy minden fő funkcióját használja. Összeállítás után a kódoló kódjának így kell kinéznie.
#beleértve
SimpleRotary forgó(1,2,3);üresbeállít(){
Sorozatszám.kezdődik(9600);
}üreshurok(){
int encoderRotation;
encoderRotation = rotary.rotate();if (encoderRotation == 1) {
Serial.println("óramutató járásával megegyező");
}if (encoderRotation == 2) {
Serial.println("óramutató járásával ellentétes irányban");
}int encoderButton;
encoderButton = rotary.push();
if (encoderButton == 1) {
Serial.println("gomb megnyomva");
}
}
Hogyan válasszunk potenciométerek és forgó jeladók között projektekhez
Mint látható, a forgójeladók és a potenciométerek egészen másképpen működnek. Mindkét összetevő új módokat kínál az elektronikai projektek vezérlésére, de melyiket válassza?
A potenciométerek megfizethetőek és könnyen használhatók, de csak korlátozott bemeneti tartományt tesznek lehetővé. Ez nagyszerűvé teszi őket, ha szabályozni szeretné a LED fényerejét, vagy növelni vagy csökkenteni szeretné az egyes alkatrészek teljesítményét, és más hasonló feladatokat szeretne végezni.
A forgó jeladók sokkal nagyobb teret biztosítanak, mint a potenciométerek. A nyomógomb beépítése azt jelenti, hogy nagyszerűen használhatók a menüvezérlő rendszerekhez, amint az sok modern autóban látható. Ez a fajta alkatrész nagyon népszerűvé vált a mechanikus billentyűzet építési területén. Még azt is megteheted építeni egy kis makropadot beépített kódolóval.
Hasonló megjelenés, különböző alkatrészek
Mindezen információk birtokában készen kell állnia arra, hogy elkezdjen egy elektronikai projektet potenciométerrel vagy forgójeladóval. Ezek az összetevők rengeteg irányítást biztosíthatnak az Ön által megépített áramkörök felett, de meg kell győződnie arról, hogy a megfelelő opciót választotta a projekthez.