Optické a magnetické rotační enkodéry: rozdíly, provoz a příklady s KY-040 a AS5600

  • Rotační enkodéry mohou být optické (jako KY-040) nebo magnetické (jako AS5600), každý s vlastními specifiky a výhodami v závislosti na použití.
  • KY-040 vyniká svou jednoduchostí, nízkou cenou a užitečností uživatelských rozhraní, zatímco AS5600 poskytuje absolutní přesnost a je ideální pro řízení motorů a robotiku.
  • Volba mezi jedním nebo druhým závisí na potřebě přesnosti, robustnosti prostředí a snadné integraci do Arduina nebo podobných projektů.

rotační enkodéry

Svět elektroniky a robotiky je plný skvělých malých vynálezů, které nám umožňují ovládat a monitorovat nejrůznější pohyby. Jedním z nejvšestrannějších a nejužitečnějších prvků je bezpochyby rotační enkodér, optický i magnetický. Tato zařízení se stala nepostradatelnými v projektech Arduina, automatizace a řízení motorů. Pokud jste se někdy zamýšleli nad tím, co přesně rotační enkodér je, budete se divit. Optický nebo magnetický rotační enkodér: co to je a příklady: KY-040 a AS5600, Jste na správném místě.

V tomto článku se hlouběji ponoříme do provozu, aplikací a praktických příkladů rotačních enkodérů, se zvláštním zaměřením na dva velmi populární moduly: KY-040 a AS5600Naučíte se, jak rozlišovat mezi optickými a magnetickými enkodéry, jejich fyzikálními a elektrickými vlastnostmi, jak je zapojit a naprogramovat v Arduinu a jaké výhody každý z nich nabízí v závislosti na vašem projektu. Také vám poskytneme tipy pro výběr a použití těchto senzorů ve vašich vlastních projektech, vše vysvětlené jasným a poutavým způsobem, aniž bychom vynechali jakékoli relevantní detaily.

Co je to rotační enkodér?

Un rotační enkodér Je to senzor určený k měření úhlová poloha, rychlost a směr otáčení rotujícího hřídele nebo prvku. Toto zařízení transformuje rotační pohyb na elektrické signály (obvykle digitální impulsy nebo analogové signály), které pak může interpretovat mikrokontrolér, jako je Arduino, Raspberry Pi nebo dokonce průmyslový kontrolér.

Tyto senzory jsou nezbytné v aplikacích, kde je třeba znát přesnou polohu osy nebo počet otáček, které provedla. Běžně se nacházejí v tiskárnách, servomotorech, robotech, numerických řídicích systémech a samozřejmě v DIY projektech, od rozhraní menu až po systémy řízení rychlosti.

Typy rotačních enkodérů: optické vs. magnetické

enkodéry

Rotační enkodéry lze rozdělit hlavně na oční optici y magnetický, ačkoli existují i ​​jiné méně běžné varianty, jako například kapacitní.

Optický rotační enkodér

Optický kodér, stejně jako KY-040Pracuje na disku se značkami nebo otvory a optickým vysílacím/přijímacím systémem (fotodioda nebo LED). Jak se hřídel otáčí, přerušení způsobená těmito značkami generují elektrické impulsy, které může mikrokontrolér spočítat, a tím určit úhlový posun. Jeho vnitřní konstrukce obvykle zahrnuje statickou část (disk) a rotující část (hřídel připojená k měřenému prvku).

Tento typ enkodéru vyniká svou vysokou přesností a rychlou odezvou. Jsou velmi užitečné v aplikacích, kde je klíčová mechanická robustnost a snadné digitální čtení, například v uživatelských rozhraních, ovládání hlasitosti, otočných nabídkách a vzdělávacích robotech.

Magnetický rotační enkodér

Na druhou stranu magnetický enkodér používá senzor citlivý na magnetické pole (obvykle Hallův senzor nebo specializovaný čip, jako například AS5600), který detekuje úhlovou polohu magnetu spojeného s hřídelí. Tyto enkodéry mohou poskytovat vyšší rozlišení díky internímu analogově-digitálnímu převodu a jsou méně náchylné k nečistotám nebo prachu, protože nespoléhají na optické součástky. Navíc obvykle nabízejí digitální (I2C nebo PWM) a/nebo analogové výstupy, což usnadňuje jejich integraci do různých elektronických systémů.

Inkrementální a absolutní enkodéry: klíčové rozdíly

Svět kodérů se dále dělí na přírůstkové y absolutní.

  • Inkrementální enkodér: Poskytuje signál ve formě impulsů pokaždé, když se hřídel otočí o určitý zlomek. Počet impulsů na otáčku závisí na konstrukci a modelu. Pro určení aktuální polohy musí systém tyto impulsy spočítat a zapamatovat si je z referenčního bodu.
  • Absolutní enkodér: Přímo poskytuje aktuální úhlovou polohu hřídele, i když se pohnula, když byl systém vypnutý. Obvykle má speciální kódování na disku nebo magnetický senzor s vysokým rozlišením.

V tomto článku se zaměříme na inkrementální enkodéry (jako je KY-040) a absolutní magnetický enkodér (AS5600), protože se jedná o nejběžnější a nejsnadněji integrovatelné enkodéry do projektů Arduino.

Obecný provoz inkrementálního rotačního enkodéru

L inkrementální enkodéry (jako například KY-040) se skládají ze dvou výstupních kanálů, kanálu A a kanálu B, které generují digitální impulsy fázově posunuté o 90°. Porovnáním pořadí, ve kterém se tyto kanály mění, je možné odvodit směr otáčení (ve směru nebo proti směru hodinových ručiček), a to navíc k počítání provedených kroků (pozic).

Vyprodukovaný signál se nazývá „kvadratura“ a umožňuje různé přesnosti:

  • Jednoduchá přesnost: Záznam pouze jedné hrany v kanálu.
  • Dvojitá přesnost: Záznam obou stran v jednom kanálu.
  • Čtyřnásobná přesnost: Záznam obou křídel na obou kanálech.

Rotační enkodér KY-040: Vlastnosti, připojení a použití s ​​Arduinem

El KY-040 Je to jeden z nejpoužívanějších inkrementálních rotačních enkodérů ve světě výrobců. Je to kompaktní, cenově dostupný a snadno dostupný modul, speciálně navržený pro přímé připojení k deskám Arduino a dalším mikrokontrolérům.

Hlavní technické vlastnosti KY-040:

  • Typ: Optický inkrementální
  • Napájecí napětí: 5V
  • spotřeba: 10 mA
  • Cykly na otáčku: 30
  • Pulzy na otáčku: 20
  • Velikost: 20 x 30 x 30 mm
  • hmotnost: 10 gramů
  • Integrované tlačítko: Osu je možné stisknout dovnitř, jako by to bylo tlačítko, což přidává velmi užitečné doplňkové funkce v nabídkách nebo rozhraních.

Přiřazení pinů:

  • CLK: Kanál A (pulzní výstup)
  • DT: Kanál B (pulzní výstup)
  • SW: Integrované tlačítko
  • +Napájení 5V
  • GND: Země

Jak se připojuje KY-040 k Arduinu?

Spojení je přímé a jednoduché:

Čep KY-040 Pin Arduina
CLK 2 (nebo jakýkoli digitální vstup)
DT 3 (nebo jakýkoli digitální vstup)
SW 4 (nebo jakýkoli digitální vstup)
+ 5V
GND GND

Lze jej také použít s Raspberry Pi změnou připojovacích pinů, například použitím GPIO16 pro CLK, GPIO15 pro DT a GPIO14 pro SW.

Vnitřní fungování

Na rozdíl od potenciometrů Rotační enkodér KY-040 neomezuje svůj úhel natočení., což umožňuje hřídeli otáčet se neomezeně dlouho. Uvnitř se dva kovové kartáče posouvají po sektoru rozděleném povrchu a uzavírají kontakt v různých kombinacích detekovaných kanály A a B.

Enkodér vrací digitální signály na oba piny a offset udává směr otáčení hřídele. Navíc, protože se jedná o inkrementální polohu, je absolutní poloha známá pouze tehdy, když je počítání udržováno od začátku programu; pokud dojde k výpadku napájení, počítání se vynuluje.

Základní příklad kódu pro Arduino

Klasickým příkladem použití KY-040 je zvyšování nebo snižování hodnoty čítače na základě směru otáčení. Zjednodušené schéma by vypadalo takto:

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 = millis(); if (interruptionTime - lastInterruption > 5) { // Omezení odskoku if (digitalRead(B) == HIGH){ POSITION++; } else { POSITION--; } POSITION = min(50, max(-50, POSITION)); // Omezení rozsahu lastInterrupt = interruptTime; } }

Tento kód obsahuje ochranu proti odskoku, která zabraňuje nepravidelným odečtům v důsledku mechanické povahy kontaktů. Doporučuje se implementovat tuto ochranu v jakémkoli projektu s inkrementálními enkodéry.

Magnetický enkodér: Vlastnosti, připojení a použití s ​​Arduinem

El AS5600 je magnetický rotační enkodér s vysokým rozlišením, ideální pro přesnou náhradu tradičních potenciometrů, řízení motorů a robotiky. Jeho hlavní výhodou je, že využívá magnetickou detekci, díky čemuž je odolný vůči nečistotám a mechanickému opotřebení, které ovlivňuje optické čočky.

Klíčové vlastnosti AS5600:

  • Typ: Absolutní, magnetický
  • rozlišení: 12 bitů (4096 pozic na otáčku)
  • Jídlo: 3,3V nebo 5V
  • Rozhraní: I2C (digitální) nebo analogový výstup
  • flexibilní konfigurace: Směr a výstupní režim můžete zvolit hardwarem
  • Analogový výstup: Napětí úměrné úhlu, užitečné pro mikrokontroléry bez I2C
  • Vysoká přesnost a opakovatelnost: Jeho vnitřní systém je připraven detekovat i malé úhlové pohyby

Piny a připojení k Arduinu

Pin AS5600 Función Pin Arduina (I2C)
VCC krmení 5V
GND Země GND
SDA Data I2C A4
SCL I2C hodiny A5
OUT Analogový výstup (volitelný) A0
SMĚR/REŽIM Výběr adresy/režimu Dle požadované konfigurace

Důležitá poznámka: Na různých talířích Arduino Uno, I2C piny se mohou lišit. Nezapomeňte zkontrolovat schéma zapojení vaší desky.

Příklad kódu pro digitální čtení (I2C)

Abyste z AS5600 s Arduinem vytěžili maximum, je nejlepší použít specifickou knihovnu (najdete ji ve správci knihoven Arduino IDE vyhledáním AS5600):

#zahrnout #zahrnout Kodér AS5600; void setup() { Serial.begin(5600); Wire.begin(); if (!encoder.begin()) { Serial.println("AS9600 nebyl detekován. Zkontrolujte připojení."); while (5600); } Serial.println("AS1 inicializován."); } void loop() { float angle = encoder.getAngle(); Serial.print("Úhel: "); Serial.print(úhel); Serial.println("stupně"); delay(5600); }

S tímto kódem můžete odečítat úhel ve stupních v reálném čase. Je to ideální pro aplikace, kde potřebujete znát absolutní polohu s maximálním rozlišením.

Příklad kódu pro analogové čtení

Pokud dáváte přednost jednoduššímu zapojení nebo váš mikrokontrolér nepodporuje I2C, můžete využít analogový výstup 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("Analogový úhel: "); Serial.print(úhel); Serial.println("stupně"); delay(100); }

Tímto způsobem získáte údaj úměrný skutečnému úhlu osy podle polohy magnetu.

Praktické aplikace a tipy k použití

Oba enkodéry mají velmi rozmanité využití v elektronických projektech:

  • KY-040: Ideální pro otočná uživatelská rozhraní, nabídky, ovládání jasu a hlasitosti, výběr možností, řízení vzdělávacích robotů, projekty domácí automatizace a systémy vyžadující otočné ovládání bez absolutní úhlové reference.
  • AS5600: Ideální pro řízení polohy a rychlosti motoru, průmyslovou automatizaci, snímání polohy v robotických kloubech, stabilizované kamerové systémy (gimbaly), digitální potenciometry s vysokým rozlišením a jakékoli aplikace vyžadující přesné snímání úhlu.

Několik tipů k použití:

  • Vždy implementujte filtrování odrazů (potlačení odskoků) při použití mechanických inkrementálních enkodérů, jako je KY-040, aby se zabránilo chybným odečtům.
  • U modelu AS5600 se ujistěte, že je magnet správně zarovnán se senzorem, aby byly zajištěny spolehlivé a stabilní hodnoty.
  • Nezapomeňte, že u inkrementálních enkodérů se při výpadku napájení ztratí informace o poloze; u AS5600 se to neděje, protože je absolutní.
  • Využijte více režimů připojení, které oba kodéry nabízejí, a přizpůsobte je specifickým potřebám vašeho projektu.

Srovnání: Kdy zvolit optický enkodér a kdy magnetický?

Vlastnosti KY-040 (inkrementální optický) AS5600 (Absolutně magnetický)
Typ signálu Digitální (kvadraturní) Digitální (I2C)/analogový
Řešení 20 pulzů/otáčku 4096 pozic/kolo
Funguje i po výpadku proudu Ne (vyžaduje restart počítání) Ano (absolutní poloha)
Citlivost na prach/nečistoty Citlivé (mechanické součástky) Velmi robustní
cena Velmi úsporný Mírný
Obtížnost integrace Velmi snadné se základním kódem Vyžaduje knihovnu I2C nebo programování
Typické aplikace UX, menu, jednoduché ovládání Řízení motorů, pokročilá robotika

Volba mezi těmito dvěma bude záviset na prioritách vašeho projektu: jednoduchost a nízké náklady v případě KY-040 a přesnost a robustnost v případě AS5600.

rotační kodér
Související článek:
Rotační enkodéry: co to je a hlavní typy