Svet elektronike in robotike je poln odličnih majhnih izumov, ki nam omogočajo nadzor in spremljanje vseh vrst gibanja. Eden najbolj vsestranskih in uporabnih elementov je nedvomno rotacijski dajalnik, tako optični kot magnetni. Te naprave so postale nepogrešljive v projektih Arduina, avtomatizacije in krmiljenja motorjev. Če ste se kdaj vprašali, kaj točno je rotacijski dajalnik, se boste verjetno spraševali. Optični ali magnetni rotacijski dajalnik: kaj je to in primeri: KY-040 in AS5600, Na pravem mestu ste.
V tem članku se bomo poglobljeno poglobili v delovanje, uporabo in praktične primere rotacijskih dajalnikov, s poudarkom na dveh zelo priljubljenih modulih: KY-040 in AS5600Naučili se boste razlikovati med optičnimi in magnetnimi dajalniki, njihove fizikalne in električne lastnosti, kako jih povezati in programirati v Arduinu ter prednosti, ki jih ponuja vsak od njih, odvisno od vašega projekta. Dali vam bomo tudi nasvete za izbiro in uporabo teh senzorjev v vaših lastnih projektih, vse razloženo na jasen in privlačen način, ne da bi izpustili kakršne koli pomembne podrobnosti.
Kaj je rotacijski dajalnik?
Un rotacijski dajalnik Gre za senzor, zasnovan za merjenje kotni položaj, hitrost in smer vrtenja vrteče se gredi ali elementa. Ta naprava pretvori rotacijsko gibanje v električne signale (običajno digitalne impulze ali analogne signale), ki jih lahko nato interpretira mikrokrmilnik, kot je Arduino, Raspberry Pi ali celo industrijski krmilnik.
Ti senzorji so bistveni v aplikacijah, kjer je treba poznati natančen položaj osi ali koliko vrtljajev je naredila. Pogosto jih najdemo v tiskalnikih, servomotorjih, robotih, numeričnih krmilnih sistemih in seveda v projektih »naredi sam«, od menijskih vmesnikov do sistemov za nadzor hitrosti.
Vrste rotacijskih dajalnikov: optični v primerjavi z magnetnimi
Rotacijske dajalnike lahko v glavnem razdelimo na optike y magnetno, čeprav obstajajo tudi druge manj pogoste različice, kot so kapacitivne.
Optični rotacijski dajalnik
Optični dajalnik, tako kot KY-040Deluje na disku z oznakami ali luknjami in optičnim oddajno/sprejemnim sistemom (fotodioda ali LED). Med vrtenjem gredi prekinitve, ki jih povzročajo te oznake, ustvarjajo električne impulze, ki jih lahko mikrokrmilnik prešteje in tako določi kotni premik. Njegova notranja konstrukcija običajno vključuje statični del (disk) in vrtljivi del (gred, pritrjena na merjeni element).
Ta vrsta dajalnika izstopa po visoki natančnosti in hitrem odzivu. Zelo uporabni so v aplikacijah, kjer sta ključnega pomena mehanska robustnost in enostavnost digitalnega odčitavanja, na primer v uporabniških vmesnikih, regulatorjih glasnosti, vrtljivih menijih in izobraževalnih robotih.
Magnetni rotacijski dajalnik
Po drugi strani pa magnetni dajalnik uporablja senzor, občutljiv na magnetno polje (običajno Hallov senzor ali specializiran čip, kot je npr. AS5600), ki zaznava kotni položaj magneta, povezanega z gredjo. Ti dajalniki lahko zagotavljajo višjo ločljivost zaradi notranje analogno-digitalne pretvorbe in so manj dovzetni za umazanijo ali prah, saj se ne zanašajo na optične komponente. Poleg tega običajno ponujajo digitalne (I2C ali PWM) in/ali analogne izhode, zaradi česar jih je enostavno integrirati v različne elektronske sisteme.
Inkrementalni in absolutni dajalniki: ključne razlike
Svet kodirnikov je nadalje razdeljen na inkrementalno y absoluti.
- Inkrementalni kodirnik: Vsakič, ko se gred zavrti za določen del, oddaja signal v obliki impulzov. Število impulzov na vrtljaj je odvisno od zasnove in modela. Za določitev trenutnega položaja mora sistem prešteti in si zapomniti te impulze iz referenčne točke.
- Absolutni kodirnik: Neposredno zagotavlja trenutni kotni položaj gredi, tudi če se je premaknila, ko je bil sistem izklopljen. Običajno ima posebno kodiranje na disku ali magnetni senzor visoke ločljivosti.
V tem članku se bomo osredotočili na inkrementalne dajalnike (kot je KY-040) in absolutni magnetni dajalnik (AS5600), saj so ti najpogostejši in najlažje integrirani v projekte Arduino.
Splošno delovanje inkrementalnega rotacijskega dajalnika
P inkrementalni dajalniki (kot je KY-040) je sestavljen iz dveh izhodnih kanalov, kanala A in kanala B, ki generirata digitalne impulze, ki so med seboj fazno zamaknjeni za 90°. S primerjavo vrstnega reda, v katerem se ti kanali spreminjajo, je mogoče sklepati smer vrtenja (v smeri urinega kazalca ali v nasprotni smeri urinega kazalca), poleg štetja korakov (položajev).
Nastali signal se imenuje "kvadratura" in omogoča različne natančnosti:
- Enojna natančnost: Snemanje samo enega roba v kanalu.
- Dvojna natančnost: Snemanje obeh bokov v enem kanalu.
- Četrna natančnost: Snemanje obeh bokov na obeh kanalih.
Rotacijski dajalnik KY-040: funkcije, povezave in uporaba z Arduinom
El KY-040 Je eden najpogosteje uporabljenih inkrementalnih rotacijskih dajalnikov v svetu proizvajalcev. Je kompakten, cenovno ugoden in enostavno najdljiv modul, posebej zasnovan za neposredno povezavo z Arduino ploščami in drugimi mikrokrmilniki.
Glavne tehnične značilnosti KY-040:
- Vrsta: Optični inkrementalni
- Napajalna napetost: 5V
- Poraba: 10 mA
- Število ciklov na vrtljaj: 30
- Število impulzov na vrtljaj: 20
- Velikost: 20 x 30 x 30 mm
- teža: 10 gramov
- Integriran gumb: Os je mogoče pritisniti navznoter, kot da bi bila gumb, kar doda zelo uporabno dodatno funkcionalnost v menijih ali vmesnikih.
Dodelitev pinov:
- CLK: Kanal A (impulzni izhod)
- DT: Kanal B (impulzni izhod)
- JZ: Integriran gumb
- +: 5V napajanje
- GND: Land
Kako priključim KY-040 na Arduino?
Povezava je neposredna in preprosta:
Zatič KY-040 | Arduino Pin |
---|---|
CLK | 2 (ali kateri koli digitalni vhod) |
DT | 3 (ali kateri koli digitalni vhod) |
SW | 4 (ali kateri koli digitalni vhod) |
+ | 5V |
GND | GND |
Uporablja se lahko tudi z Raspberry Pi z zamenjavo priključnih pinov, na primer z uporabo GPIO16 za CLK, GPIO15 za DT in GPIO14 za SW.
Notranje delovanje
Za razliko od potenciometrov, Rotacijski dajalnik KY-040 ne omejuje kota vrtenja., kar omogoča, da se gred vrti neomejeno dolgo. V notranjosti dve kovinski ščetki drsita po sektorsko razdeljeni površini in zapirata stik v različnih kombinacijah, ki jih zaznata kanala A in B.
Dajalnik vrača digitalne signale na obeh nožicah, odmik pa označuje smer vrtenja gredi. Poleg tega je absolutni položaj, ker je inkrementalni, znan le, dokler se štetje vzdržuje od začetka programa; če se napajanje prekine, se štetje ponastavi.
Osnovni primer kode za Arduino
Klasični primer uporabe KY-040 je povečanje ali zmanjšanje števca glede na smer vrtenja. Poenostavljena shema bi bila:
int A = 2; int B = 3; volatile int POSITION = 0; int PREJŠNJI = 0; void setup() { pinMode(A, INPUT); pinMode(B, INPUT); Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(A), encoder, LOW); } void loop() { if (POSITION != PREJŠNJI) { Serial.println(POSITION); PREJŠNJI = POSITION; } } void encoder() { static unsigned long lastInterrupt = 0; unsigned long InterruptionTime = millis(); if (interruptionTime - lastInterruption > 5) { // Odpravljanje odbojev if (digitalRead(B) == HIGH){ POSITION++; } else { POSITION--; } POSITION = min(50, max(-50, POSITION)); // Omeji obseg lastInterrupt = interruptTime; } }
Ta koda vključuje zaščito pred odbojem, ki preprečuje nepravilne odčitke zaradi mehanske narave kontaktov. Priporočljivo je, da se ta zaščita implementira v vsak projekt z inkrementalnimi dajalniki.
Magnetni dajalnik: funkcije, povezave in uporaba z Arduinom
El AS5600 je visokoločljivostni magnetni rotacijski dajalnik, idealen za natančno zamenjavo tradicionalnih potenciometrov, krmiljenja motorjev in robotike. Njegova glavna prednost je, da izkorišča magnetno zaznavanje, zaradi česar je odporen na umazanijo in mehansko obrabo, ki vplivata na optične leče.
Ključne značilnosti AS5600:
- Vrsta: Absolutno, magnetno
- Ločljivost: 12 bitov (4096 položajev na obrat)
- Hrana: 3,3V ali 5V
- Vmesniki: I2C (digitalni) ali analogni izhod
- prilagodljiva konfiguracija: S strojno opremo lahko izberete smer in izhodni način
- Analogni izhod: Napetost sorazmerna s kotom, uporabna za mikrokontrolerje brez I2C
- Visoka natančnost in ponovljivost: Njegov notranji sistem je pripravljen za zaznavanje celo majhnih kotnih premikov
Razporeditev pinov in povezava z Arduinom
Pin AS5600 | funcion | Arduino pin (I2C) |
---|---|---|
VCC | hranjenje | 5V |
GND | Land | GND |
SDA | Podatki I2C | A4 |
SCL | Ura I2C | A5 |
OUT | Analogni izhod (neobvezno) | A0 |
SMER/NAČIN | Izbira naslova/načina | Glede na želeno konfiguracijo |
Pomembno obvestilo: Na različnih krožnikih Arduino Uno, I2C pini se lahko razlikujejo. Preverite shemo vaše plošče.
Primer kode za digitalno branje (I2C)
Da bi kar najbolje izkoristili AS5600 z Arduinom, je najbolje uporabiti specifično knjižnico (najdete jo v upravitelju knjižnic Arduino IDE tako, da poiščete AS5600):
#vključi #vključi Dajalnik AS5600; void setup() { Serial.begin(5600); Wire.begin(); if (!encoder.begin()) { Serial.println("AS9600 ni zaznan. Preverite povezave."); while (5600); } Serial.println("AS1 inicializiran."); } void loop() { float angle = encoder.getAngle(); Serial.print("Kot: "); Serial.print(kot); Serial.println("stopinje"); delay(5600); }
S to kodo lahko v realnem času odčitate kot v stopinjah. To je idealno za aplikacije, kjer morate poznati absolutni položaj pri največji ločljivosti.
Primer kode za analogno branje
Če imate raje enostavnejšo povezavo ali vaš mikrokrmilnik ne podpira I2C, lahko izkoristite analogni izhod AS5600:
const int analogPin = A0; void setup() { Serial.begin(9600); pinMode(analogPin, INPUT); } void loop() { int value = analogRead(analogPin); float angle = map(value, 0, 1023, 0, 360); Serial.print("Analogni kot: "); Serial.print(kot); Serial.println("stopinje"); delay(100); }
Na ta način dobite odčitek, sorazmeren z dejanskim kotom osi glede na položaj magneta.
Praktične aplikacije in nasveti za uporabo
Oba dajalnika imata zelo raznoliko uporabo v elektronskih projektih:
- KY-040: Idealno za rotacijske uporabniške vmesnike, menije, nadzor svetlosti in glasnosti, izbiro možnosti, krmiljenje izobraževalnih robotov, projekte domače avtomatizacije in sisteme, ki zahtevajo rotacijski nadzor brez absolutne kotne reference.
- AS5600: Idealno za nadzor položaja in hitrosti motorjev, industrijsko avtomatizacijo, zaznavanje položaja v robotskih sklepih, stabilizirane sisteme kamer (gimbale), digitalne potenciometre visoke ločljivosti in vse aplikacije, ki zahtevajo natančno zaznavanje kota.
Nekaj nasvetov za uporabo:
- Vedno izvajajte filtriranje odboja (odbijanje) pri uporabi mehanskih inkrementalnih dajalnikov, kot je KY-040, da se izognete napačnim odčitkom.
- Pri AS5600 se prepričajte, da je magnet pravilno poravnan s senzorjem, da zagotovite zanesljive in stabilne odčitke.
- Ne pozabite, da se pri inkrementalnih dajalnikih podatki o položaju izgubijo, če se napajanje prekine; pri AS5600 se to ne zgodi, saj je absolutni.
- Izkoristite več načinov povezave, ki jih ponujata oba kodirnika, da ju prilagodite specifičnim potrebam vašega projekta.
Primerjava: Kdaj izbrati optični dajalnik in kdaj magnetnega?
Característica | KY-040 (inkrementalni optični) | AS5600 (absolutno magnetni) |
---|---|---|
Vrsta signala | Digitalni (kvadraturni) | Digitalni (I2C)/analogni |
Resolucija | 20 impulzov/obrat | 4096 položajev/krog |
Deluje po izpadu električne energije | Ne (zahteva ponovni začetek štetja) | Da (absolutni položaj) |
Občutljivost na prah/umazanijo | Občutljivi (mehanski deli) | Zelo robusten |
cena | Zelo ekonomično | Zmerno |
Težavnost integracije | Zelo enostavno z osnovno kodo | Zahteva knjižnico I2C ali programiranje |
Tipične uporabe | UX, meniji, preprosto upravljanje | Krmiljenje motorjev, napredna robotika |
Izbira med obema bo odvisna od prioritet vašega projekta: preprostost in nizki stroški v primeru KY-040 ter natančnost in robustnost v primeru AS5600.