Obsah:
Video: Rotačný kodér - porozumenie a používanie (Arduino/iný Μkontrolér): 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Rotačný snímač je elektromechanické zariadenie, ktoré prevádza rotačný pohyb na digitálne alebo analógové informácie. Môže sa otáčať v smere alebo proti smeru hodinových ručičiek. Existujú dva typy rotačných snímačov: absolútne a relatívne (inkrementálne).
Kým absolútny snímač vydáva hodnotu úmernú aktuálnemu uhlu hriadeľa, inkrementálny snímač vydáva krok hriadeľa a jeho smer. (V tomto prípade máme inkrementálny snímač)
Rotačné snímače sú stále obľúbenejšie, pretože v jednom elektrickom module môžete používať dve funkcie: Jednoduchý spínač na potvrdenie prevádzky a otočný snímač na navigáciu, napr. prostredníctvom ponuky.
Inkrementálny rotačný snímač generuje dva výstupné signály počas otáčania hriadeľa. Podľa smeru jeden zo signálov vedie druhý. (Pozri nižšie)
Krok 1: Pochopenie výstupných údajov
Ako vidíte, keď sa hriadeľ snímača začne otáčať v smere hodinových ručičiek, výstup A najskôr klesne na LOW a výstup B ho nasleduje. V smere hodinových ručičiek sa operácia otáča opačne.
Teraz to musíme implementovať do nášho µController (použil som Arduino Nano).
Krok 2: Vybudujte obvod
Ako som už popísal, výstupy vytvoria VYSOKÝ a NÍZKY bok. Aby sme dosiahli čistý VYSOKÝ na dátovom kolíku A a B µController, musíme pridať vyťahovacie odpory. Spoločný kolík C smeruje priamo na zem pre LOW bok.
Na získanie informácií o vnútornom prepínači (tlačidle) použijeme ďalšie dva piny. Jeden z nich ide do VCC a druhý na dátový pin µController. Na dátový kolík musíme tiež pridať sťahovací odpor, aby sme získali čistý LOW.
Je tiež možné použiť interné vyťahovacie a sťahovacie odpory vášho µController!
V mojom prípade pinout vyzerá takto:
- +3, 3V => +3, 3V (Arduino) (možné aj +5V)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Pin
11
- C => GND
-
SW =>
Pin
12
Krok 3: Napíšte kód
int pinA = 10; // interný prepínač A int pinB = 11; // interný prepínač B int pinSW = 12; // prepínač (stlačený kodér) int encoderPosCount = 0; // začína na nule, zmeňte, ak chcete
int positionval;
bool switchval; int mrotateLast; int mrotate;
neplatné nastavenie () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); oneskorenie (50); }
void loop () {readencoder (); if (readdswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// gombík sa otáča, ak (digitalRead (pinB)! = mrotate) {// prepínač A sa najskôr zmenil -> otáča sa v smere hodinových ručičiek kodérPosCount ++; Serial.println ("otočený v smere hodinových ručičiek"); } else {// prepínač B sa najskôr zmenil-> otáčanie proti smeru hodinových ručičiek kodérPosCount--; Serial.println ("otočený proti smeru hodinových ručičiek"); }
Serial.print ("Poloha kodéra:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; vrátiť kodérPosCount; } bool readswitch () {
ak je stlačený prepínač (digitalRead (pinSW)! = 0) {//
while (digitalRead (pinSW)! = 0) {} // prepínač je aktuálne stlačený switchval = 1; } else {switchval = 0;} // prepínač je nestlačený návrat switchval; }
Teraz môžete otočiť kodér a premenná encoderPosCount sa bude odpočítavať, ak otáčate v smere hodinových ručičiek, a odpočítavať, ak otáčate proti smeru hodinových ručičiek.
To je všetko! Jednoducho a užitočne.
Neváhajte kód zmeniť a vykonať ho. Môžete to implementovať do svojho projektu.
Tiež nahrám LED projekt, kde som pomocou kodéra nastavil jas svojich LED diód.
Odporúča:
Použite krokový motor ako rotačný kodér: 9 krokov (s obrázkami)
Použite krokový motor ako rotačný kodér: Rotačné snímače sú skvelé na použitie v projektoch mikrokontrolérov ako vstupné zariadenie, ale ich výkon nie je veľmi plynulý a uspokojivý. Keď som mal okolo seba veľa náhradných krokových motorov, rozhodol som sa im dať účel. Ak teda máte nejaký stepper
Ako: Bezkontaktný rotačný kodér: 3 kroky
Ako: Bezkontaktný rotačný kodér: Táto aplikačná poznámka popisuje, ako navrhnúť vysoko spoľahlivý rotačný spínač alebo kodér pomocou Dialog GreenPAK ™. Táto konštrukcia spínača je bezkontaktná, a preto ignoruje oxidáciu kontaktov a opotrebovanie. Je ideálny na použitie vonku, kde je dlhý
Rotačný kodér pomocou Arduino Nano: 4 kroky
Rotačný kodér používajúci Arduino Nano: Ahoj všetci, v tomto článku urobím návod, ako používať rotačný kodér pomocou Arduino Nano. Na používanie tohto rotačného kodéra nepotrebujete externú knižnicu. Môžeme teda priamo vytvárať programy bez toho, aby sme najskôr pridávali knižnice. ok, začnime
Lepší rotačný kodér: 4 kroky
Lepší rotačný kodér: Ak ste sa niekedy pokúsili vo svojom projekte použiť rotačný kodér mimo regálu, s najväčšou pravdepodobnosťou ste boli sklamaním. Či už to bolo kvôli obtiažnosti nastavenia alebo nepresným ovládacím prvkom. Mal som rovnaký problém, tak som sa rozhodol to napraviť. Navrhol som 3D pr
DIY rotačný kodér: 4 kroky
DIY rotačný kodér: Ospravedlňujeme sa za nedostatok obrázkov, nerozhodol som sa urobiť o tom tutoriál, kým som s ním nebol takmer hotový. Prehľad: Rotačné kodéry používajú dva alebo viac senzorov na zistenie polohy, smeru otáčania, rýchlosti , a počet otáčok