Obsah:
Video: Rotační kodér - pochopte a používejte (Arduino/jiný ΜKontrolér): 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Rotační kodér je elektromechanické zařízení, které převádí rotační pohyb na digitální nebo analogovou informaci. Může se otáčet ve směru nebo proti směru hodinových ručiček. Existují dva typy rotačních kodérů: absolutní a relativní (inkrementální) kodéry.
Zatímco absolutní kodér vydává hodnotu úměrnou aktuálnímu úhlu hřídele, inkrementální kodér vydává krok hřídele a jeho směr. (V tomto případě máme inkrementální kodér)
Rotační kodéry jsou stále oblíbenější, protože v jednom elektrickém modulu můžete používat dvě funkce: Jednoduchý přepínač pro potvrzení provozu a rotační kodér pro navigaci, např. prostřednictvím nabídky.
Inkrementální rotační kodér generuje dva výstupní signály, zatímco se jeho hřídel otáčí. Podle směru vede jeden ze signálů druhý. (viz. níže)
Krok 1: Pochopení výstupních dat
Jak vidíte, když se hřídel kodéru začne otáčet ve směru hodinových ručiček, výstup A nejprve klesne na LOW a výstup B ho následuje. Ve směru proti směru hodinových ručiček se operace otočí opačně.
Nyní to musíme implementovat na našem µController (použil jsem Arduino Nano).
Krok 2: Vybudujte obvod
Jak jsem popsal dříve, výstupy vytvářejí VYSOKÝ a NÍZKÝ bok. Abychom získali čistý HIGH na datovém pinu A a B µController, musíme přidat Pull-Up odpory. Společný kolík C jde přímo na zem pro LOW bok.
K získání informací o interním přepínači (tlačítku) použijeme další dva piny. Jeden z nich jde do VCC a druhý na datový pin µController. Abychom získali čistý LOW, musíme také přidat datový kolík.
Je také možné použít interní Pull-Up a Pull-Down rezistory vašeho µController!
V mém případě vypadá pinout takto:
- +3, 3V => +3, 3V (Arduino) (také +5V možné)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Kolík
11
- C => GND
-
SW =>
Kolík
12
Krok 3: Psaní kódu
int pinA = 10; // interní přepínač A int pinB = 11; // interní přepínač B int pinSW = 12; // přepínač (stisknutý kodér) int encoderPosCount = 0; // začíná na nule, změňte, pokud chcete
int positionval;
bool switchval; int mrotateLast; int mrotate;
neplatné nastavení () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); zpoždění (50); }
void loop () {readencoder (); if (readdswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// knoflík se otáčí if (digitalRead (pinB)! = mrotate) {// přepnutí A změněno jako první -> otáčení ve směru hodinových ručiček kodérPosCount ++; Serial.println ("otočeno ve směru hodinových ručiček"); } else {// přepínač B změněn jako první-> otáčení proti směru hodinových ručiček kodérPosCount--; Serial.println ("otočeno proti směru hodinových ručiček"); }
Serial.print ("Poloha kodéru:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; vrátit kodérPosCount; } bool čtecí spínač () {
pokud je stisknut přepínač (digitalRead (pinSW)! = 0) {//
while (digitalRead (pinSW)! = 0) {} // přepínač je aktuálně stisknutý switchval = 1; } else {switchval = 0;} // switch is unpressed return switchval; }
Nyní můžete kodér otočit a proměnná encoderPosCount se bude odpočítávat, pokud otáčíte ve směru hodinových ručiček, a odpočítávat, pokud otáčíte proti směru hodinových ručiček.
A je to! Jednoduše a užitečně.
Neváhejte změnit a provést kód. Můžete jej implementovat do svého projektu.
Rovněž nahraji projekt LED, kde jsem kodérem nastavil jas svých LED diod.
Doporučuje:
Jak: Bezkontaktní rotační kodér: 3 kroky
Jak: Bezkontaktní rotační kodér: Tato aplikační poznámka popisuje, jak navrhnout vysoce spolehlivý rotační spínač nebo kodér pomocí Dialog GreenPAK ™. Tato konstrukce spínače je bezkontaktní, a proto ignoruje oxidaci kontaktů a opotřebení. Je ideální pro použití venku, kde je dlouhý
Jak použít krokový motor jako rotační kodér a OLED displej pro kroky: 6 kroků
Jak používat krokový motor jako rotační kodér a OLED displej pro kroky: V tomto tutoriálu se naučíme sledovat kroky krokového motoru na OLED displeji. Podívejte se na ukázkové video. Kredit za originální výukový program získává uživatel youtube " sky4fly "
Rotační kodér využívající Arduino Nano: 4 kroky
Rotační kodér používající Arduino Nano: Ahoj všichni, v tomto článku udělám návod, jak používat rotační kodér pomocí Arduino Nano. K použití tohoto rotačního kodéru nepotřebujete externí knihovnu. Můžeme tedy přímo vytvářet programy bez přidání knihoven. ok, začněme
Lepší rotační kodér: 4 kroky
Lepší rotační kodér: Pokud jste se někdy pokusili použít mimo regálový kodér pro svůj projekt, s největší pravděpodobností jste byli zklamáním. Ať už to bylo kvůli obtížnosti nastavení nebo nepřesným ovládacím prvkům. Měl jsem stejný problém, tak jsem se rozhodl to opravit. Navrhl jsem 3D pr
DIY rotační kodér: 4 kroky
DIY rotační kodér: Omlouvám se za nedostatek obrázků, nerozhodl jsem se udělat o tom tutoriál, dokud jsem s tím nebyl téměř hotový. Přehled: Rotační kodéry používají dva nebo více senzorů ke zjištění polohy, směru otáčení, rychlosti , a počet otáček