Optiset ja magneettiset pyörivät enkooderit: erot, toiminta ja esimerkkejä KY-040:n ja AS5600:n kanssa

  • Pyörivät enkooderit voivat olla optisia (kuten KY-040) tai magneettisia (kuten AS5600), joilla kullakin on omat erityispiirteensä ja etunsa käyttötarkoituksesta riippuen.
  • KY-040 erottuu edukseen yksinkertaisuudellaan, alhaisella hinnallaan ja käyttöliittymiensä hyödyllisyydellä, kun taas AS5600 tarjoaa ehdotonta tarkkuutta ja sopii erinomaisesti moottorien ohjaukseen ja robotiikkaan.
  • Valinta yhden tai toisen välillä riippuu tarkkuuden tarpeesta, kestävyydestä ympäristössä ja helposta integroinnista Arduinoon tai vastaaviin projekteihin.

pyörivät enkooderit

Elektroniikan ja robotiikan maailma on täynnä hienoja pieniä keksintöjä, joiden avulla voimme ohjata ja valvoa kaikenlaisia ​​liikkeitä. Yksi monipuolisimmista ja hyödyllisimmistä elementeistä on epäilemättä pyörivä enkooderi, sekä optinen että magneettinen. Näistä laitteista on tullut välttämättömiä Arduino-, automaatio- ja moottorinohjausprojekteissa. Jos olet joskus miettinyt, mitä pyörivä enkooderi tarkalleen ottaen on, tulet miettimään sitä. Optinen tai magneettinen pyörivä kooderi: mikä se on ja esimerkkejä: KY-040 ja AS5600, Olet oikeassa paikassa.

Tässä artikkelissa syvennymme pyöröantureiden toimintaan, sovelluksiin ja käytännön esimerkkeihin keskittyen erityisesti kahteen erittäin suosittuun moduuliin: KY-040 ja AS5600Opit erottamaan optiset ja magneettiset enkooderit toisistaan, niiden fyysiset ja sähköiset ominaisuudet, niiden kytkemisen ja ohjelmoinnin Arduinossa sekä kunkin tarjoamat edut projektissasi riippuen. Annamme sinulle myös vinkkejä näiden antureiden valintaan ja käyttöön omissa projekteissasi, kaikki selitettynä selkeästi ja mukaansatempaavasti, jättämättä pois mitään olennaisia ​​yksityiskohtia.

Mikä on pyörivä enkooderi?

Un pyörivä kooderi Se on anturi, joka on suunniteltu mittaamaan kulma-asento, nopeus ja pyörimissuunta pyörivän akselin tai elementin. Tämä laite muuntaa pyörimisliikkeen sähköisiksi signaaleiksi (tyypillisesti digitaalisiksi pulsseiksi tai analogisiksi signaaleiksi), jotka mikrokontrolleri, kuten Arduino, Raspberry Pi tai jopa teollisuusohjain, voi sitten tulkita.

Nämä anturit ovat välttämättömiä sovelluksissa, joissa on tiedettävä akselin tarkka sijainti tai kuinka monta kierrosta se on tehnyt. Niitä löytyy yleisesti tulostimista, servomoottoreista, roboteista, numeerisista ohjausjärjestelmistä ja tietenkin tee-se-itse-projekteista, valikkoliittymistä nopeudensäätöjärjestelmiin.

Pyörivän kooderin tyypit: optinen vs. magneettinen

antureita

Pyörivät enkooderit voidaan jakaa pääasiassa optikot y magneettinen, vaikka on olemassa myös muita harvinaisempia variantteja, kuten kapasitiivisia.

Optinen pyörivä enkooderi

Optinen kooderi, kuten KY-040Se toimii kiekolla, jossa on merkkejä tai reikiä, ja optisella lähetin-vastaanotinjärjestelmällä (fotodiodi tai LED). Akselin pyöriessä näiden merkkien aiheuttamat katkokset tuottavat sähköpulsseja, jotka mikrokontrolleri voi laskea ja siten määrittää kulmasiirtymän. Sen sisäinen rakenne sisältää tyypillisesti staattisen osan (levy) ja pyörivän osan (mitattuun elementtiin kiinnitetty akseli).

Tämän tyyppinen enkooderi erottuu edukseen suurella tarkkuudellaan ja nopealla reagointinopeudellaan. Ne ovat erittäin hyödyllisiä sovelluksissa, joissa mekaaninen kestävyys ja digitaalisen lukemisen helppous ovat avainasemassa, kuten käyttöliittymissä, äänenvoimakkuuden säätimissä, pyörivissä valikoissa ja opetusroboteissa.

Magneettinen pyörivä kooderi

Toisaalta magneettikooderi käyttää magneettikentälle herkkää anturia (yleensä Hall-anturia tai erikoissirua, kuten AS5600), joka havaitsee akseliin kytketyn magneetin kulma-asennon. Nämä enkooderit voivat tarjota korkeamman resoluution sisäisen analogia-digitaalimuunnoksen ansiosta ja ovat vähemmän alttiita lialle tai pölylle, koska ne eivät ole riippuvaisia ​​optisista komponenteista. Lisäksi niissä on tyypillisesti digitaaliset (I2C tai PWM) ja/tai analogiset lähdöt, joten ne on helppo integroida erilaisiin elektronisiin järjestelmiin.

Inkrementti- ja absoluuttianturit: tärkeimmät erot

Enkooderien maailma jaetaan edelleen vähitellen y ehdoton.

  • Inkrementaalinen enkooderi: Se antaa signaalin pulssien muodossa joka kerta, kun akseli pyörii tietyn murto-osan. Pulssien määrä kierrosta kohden riippuu suunnittelusta ja mallista. Nykyisen sijainnin määrittämiseksi järjestelmän on laskettava ja muistettava nämä pulssit referenssipisteestä.
  • Absoluuttinen enkooderi: Se antaa suoraan akselin nykyisen kulma-asennon, vaikka se olisi liikkunut järjestelmän ollessa pois päältä. Siinä on yleensä erityinen koodaus levyllä tai korkearesoluutioinen magneettianturi.

Tässä artikkelissa keskitymme inkrementaalienkoodereihin (kuten KY-040) ja absoluuttiseen magneettiseen enkooderiin (AS5600), koska ne ovat yleisimpiä ja helpoimmin integroitavissa Arduino-projekteihin.

Inkrementaalisen pyörivän anturin yleinen toiminta

Los inkrementtianturit (kuten KY-040) koostuvat kahdesta lähtökanavasta, kanavasta A ja kanavasta B, jotka tuottavat toisiinsa nähden 90 asteen vaiheettoman vaiheen digitaalisia pulsseja. Vertaamalla näiden kanavien vaihtumisjärjestystä on mahdollista päätellä pyörimissuunta (myötä- tai vastapäivään) sekä otettujen askelten (asemien) laskemisen lisäksi.

Tuotettua signaalia kutsutaan "kvadratuuriksi" ja se mahdollistaa erilaisia ​​​​tarkkuuksia:

  • Yksittäinen tarkkuus: Vain yhden reunan tallentaminen kanavassa.
  • Kaksinkertainen tarkkuus: Molempien kylkien tallennus samaan kanavaan.
  • Nelinkertainen tarkkuus: Molempien kanavien molempien kylkien tallennus.

KY-040-kiertoenkooderi: Ominaisuudet, liitännät ja käyttö Arduinon kanssa

El KY-040 Se on yksi valmistajamaailman käytetyimmistä inkrementaalisista pyörivistä enkoodereista. Se on kompakti, edullinen ja helposti löydettävissä oleva moduuli, joka on erityisesti suunniteltu liitettäväksi suoraan Arduino-levyihin ja muihin mikrokontrollereihin.

KY-040:n tärkeimmät tekniset ominaisuudet:

  • tyyppi: Optinen inkrementaalinen
  • Syöttöjännite: 5V
  • Kulutus: 10 mA
  • Sykliä kierrosta kohden: 30
  • Pulsseja kierrosta kohden: 20
  • koko: 20 x 30 x 30 mm
  • paino: 10 grammaa
  • Integroitu painike: Akselia voi painaa sisäänpäin kuin se olisi painike, mikä lisää erittäin hyödyllisiä lisätoimintoja valikoihin tai käyttöliittymiin.

Nastojen määritys:

  • CLK: Kanava A (pulssilähtö)
  • DT: Kanava B (pulssilähtö)
  • SW: Integroitu painike
  • +5 V virtalähde
  • GND: Maa

Miten KY-040 kytketään Arduinoon?

Yhteys on suora ja yksinkertainen:

Tappi KY-040 Arduino Pin
CLK 2 (tai mikä tahansa digitaalinen tulo)
DT 3 (tai mikä tahansa digitaalinen tulo)
SW 4 (tai mikä tahansa digitaalinen tulo)
+ 5V
GND GND

Sitä voidaan käyttää myös Raspberry Pi:n kanssa vaihtamalla liitäntänastoja, esimerkiksi käyttämällä GPIO16:ta CLK:lle, GPIO15:tä DT:lle ja GPIO14:ää SW:lle.

Sisäinen toiminta

Toisin kuin potentiometrit, KY-040-kiertoenkooderi ei rajoita pyörimiskulmaansa., jolloin akseli voi pyöriä loputtomasti. Sisällä kaksi metallista harjaa liukuu sektorijaetun pinnan yli ja sulkee kontaktin eri yhdistelmissä, jotka kanavat A ja B havaitsevat.

Enkooderi palauttaa digitaalisignaalit molempiin nastoihin, ja offset osoittaa akselin pyörimissuunnan. Lisäksi, koska se on inkrementaalinen, absoluuttinen asento tiedetään vain niin kauan kuin laskuria ylläpidetään ohjelman alusta lähtien; jos virta katkeaa, laskuri nollautuu.

Arduinon peruskoodiesimerkki

Klassinen esimerkki KY-040:n käytöstä on laskurin arvon kasvattaminen tai vähentäminen pyörimissuunnan perusteella. Yksinkertaistettu kaava olisi:

int A = 2; int B = 3; volatile int POSITION = 0; int PREVIOUS = 0; void setup() { pinMode(A, INPUT); pinMode(B, INPUT); Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(A), encoder, LOW); } void loop() { if (POSITION != PREVIOUS) { Serial.println(POSITION); PREVIOUS = POSITION; } } void encoder() { static unsigned long lastInterrupt = 0; unsigned long InterruptionTime = millises(); if (interruptionTime - lastInterruption > 5) { // Poista virheilmoitus if (digitalRead(B) == HIGH){ POSITION++; } else { POSITION--; } POSITION = min(50, max(-50, POSITION)); // Rajoita aluetta lastInterrupt = interruptTime; } }

Tämä koodi sisältää värinänvaimennussuojan, joka estää koskettimien mekaanisen luonteen aiheuttamat epäsäännölliset lukemat. On suositeltavaa toteuttaa tämä suojaus kaikissa inkrementtiantureilla varustetuissa projekteissa.

Magneettinen enkooderi: Ominaisuudet, liitännät ja käyttö Arduinon kanssa

El AS5600 on korkean resoluution magneettinen pyörivä enkooderi, ihanteellinen perinteisten potentiometrien, moottorinohjauksen ja robotiikan tarkkaan korvaamiseen. Sen tärkein etu on, että se hyödyntää magneettista havaitsemista, mikä tekee siitä immuunin lialle ja mekaaniselle kulumiselle, joka vaikuttaa optisiin linsseihin.

AS5600:n tärkeimmät ominaisuudet:

  • tyyppi: Absoluuttinen, magneettinen
  • resoluutio: 12 bittiä (4096 asentoa kierrosta kohden)
  • Ruoka: 3,3V tai 5V
  • Liitännät: I2C (digitaalinen) tai analoginen lähtö
  • joustava kokoonpano: Voit valita suunnan ja lähtötilan laitteistolla
  • Analoginen lähtö: Kulmaan verrannollinen jännite, hyödyllinen mikrokontrollereille ilman I2C:tä
  • Korkea tarkkuus ja toistettavuus: Sen sisäinen järjestelmä on valmis havaitsemaan jopa pienet kulmaliikkeet

Pinnien kytkentä ja liitäntä Arduinoon

Pin AS5600 funcion Arduino-nasta (I2C)
VCC ruokinta 5V
GND Maa GND
SDA I2C-data A4
SCL I2C-kello A5
OUT Analoginen lähtö (valinnainen) A0
SUUNTA/TILA Osoitteen/tilan valinta Halutun kokoonpanon mukaan

Tärkeä huomautus: Eri lautasilla Arduino UnoI2C-nastat voivat vaihdella. Muista tarkistaa piirilevysi kytkentäkaavio.

Digitaalisen lukemisen koodiesimerkki (I2C)

Saadaksesi kaiken irti AS5600:sta Arduinon kanssa, on parasta käyttää tiettyä kirjastoa (löydät sen Arduino IDE -kirjastonhallinnasta hakemalla AS5600):

#sisältää #sisältää AS5600 enkooderi; void setup() { Serial.begin(5600); Wire.begin(); if (!encoder.begin()) { Serial.println("AS9600:aa ei havaittu. Tarkista liitännät."); while (5600); } Serial.println("AS1 alustettu."); } void loop() { float angle = encoder.getAngle(); Serial.print("Kulma: "); Serial.print(kulma); Serial.println(" astetta"); delay(5600); }

Tämän koodin avulla voit lukea kulman asteina reaaliajassa. Se sopii täydellisesti sovelluksiin, joissa sinun on tiedettävä absoluuttinen sijainti maksimiresoluutiolla.

Analogisen lukemisen koodiesimerkki

Jos haluat yksinkertaisemman liitännän tai mikrokontrollerisi ei tue I2C:tä, voit hyödyntää AS5600:n analogista lähtöä:

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("Analoginen kulma: "); Serial.print(kulma); Serial.println(" astetta"); delay(100); }

Tällä tavoin saat lukeman, joka on verrannollinen akselin todelliseen kulmaan magneetin sijainnin mukaan.

Käytännön sovelluksia ja käyttövinkkejä

Molemmilla enkoodereilla on hyvin erilaisia ​​sovelluksia elektroniikkaprojekteissa:

  • KY-040: Ihanteellinen pyöriviin käyttöliittymiin, valikoihin, kirkkauden ja äänenvoimakkuuden säätöön, vaihtoehtojen valintaan, opetusrobottien ohjaukseen, kodin automaatioprojekteihin ja järjestelmiin, jotka vaativat pyörivää ohjausta ilman absoluuttista kulmareferenssiä.
  • AS5600: Täydellinen moottorin asennon ja nopeuden säätöön, teollisuusautomaatioon, robottinivelten asennonmittaukseen, stabiloituihin kamerajärjestelmiin (gimbaaleihin), korkean resoluution digitaalisiin potentiometreihin ja kaikkiin sovelluksiin, jotka vaativat tarkkaa kulmamittausta.

Joitakin käyttövinkkejä:

  • Käytä aina palautumissuojaussuodatus (värähtelynvaimennus) käytettäessä mekaanisia inkrementaalienkoodereita, kuten KY-040, virheellisten lukemien välttämiseksi.
  • Varmista AS5600-mallin magneettien oikean suuntainen anturin kanssa, jotta lukemat ovat luotettavat ja vakaat.
  • Muista, että inkrementtiantureissa sijaintitiedot menetetään, jos virransyöttö katkaistaan; näin ei tapahdu AS5600:n kanssa, koska se on absoluuttinen.
  • Hyödynnä molempien enkoodereiden tarjoamia useita liitäntätiloja ja mukauta ne projektisi erityistarpeisiin.

Vertailu: Milloin valita optinen ja milloin magneettinen enkooderi?

Característica KY-040 (inkrementaalinen optinen) AS5600 (absoluuttinen magneettinen)
Tipo de senal Digitaalinen (kvadratuuri) Digitaalinen (I2C)/Analoginen
päätöslauselma 20 pulssia/kierros 4096 sijoitusta/kierros
Toimii sähkökatkon jälkeen Ei (vaatii laskennan uudelleenkäynnistyksen) Kyllä (absoluuttinen sijainti)
Herkkyys pölylle/lialle Herkät (mekaaniset osat) Erittäin kestävä
hinta Erittäin taloudellinen kohtalaista
Integroinnin vaikeus Erittäin helppoa peruskoodilla Vaatii I2C-kirjaston tai ohjelmoinnin
Tyypilliset sovellukset Käyttökokemus, valikot, yksinkertainen hallinta Moottorinohjaus, edistynyt robotiikka

Valinta näiden kahden välillä riippuu projektisi prioriteeteista: KY-040:n tapauksessa yksinkertaisuus ja alhaiset kustannukset ja AS5600:n tapauksessa tarkkuus ja kestävyys.

pyörivä kooderi
Aiheeseen liittyvä artikkeli:
Pyörivät kooderit: mitä ne ovat ja päätyypit

Aloita keskustelu

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.