Aký je rozdiel medzi potenciometrom Arduino a rotačným kódovačom

Aky Je Rozdiel Medzi Potenciometrom Arduino A Rotacnym Kodovacom



Potenciometre a rotačné snímače sa používajú na detekciu rotácie alebo snímania polohy. Sú to elektromechanické zariadenia používané v rôznych oblastiach elektroniky. Môžu byť tiež prepojené s Arduino na vytváranie rôznych projektov. Tento článok má demonštrovať základné rozdiely medzi potenciometrom a rotačným enkodérom.

Čo je potenciometer

Potenciometer je reostat, alebo ho môžeme nazvať premenlivý odpor. Hodnota odporu sa mení podľa otáčania hriadeľa potenciometra. Potenciometre sa môžu otáčať len na nastavenú vzdialenosť. Existujú analógové aj digitálne potenciometre, ale sú takmer podobné. Analógové potenciometre môžu byť prepojené s mikrokontrolérmi na Arduino, Raspberry Pi a ďalších zariadeniach. Potenciometer má tri kolíky, ktorými sú kolík vstupného napätia Vcc, uzemňovací kolík GND a kolík vstupného signálu. Signálny kolík poskytuje vstup pre Arduino.









Čo je to rotačný kódovač

Otočné kódovače snímajú uhlovú polohu otočného gombíka a posielajú signál do mikrokontroléra alebo akéhokoľvek iného zariadenia, ku ktorému sú pripojené. Má kotúč s rovnomerne rozmiestnenými kontaktnými plochami, ktoré sú spojené so spoločným kolíkom. Otočné snímače majú tiež zabudované tlačidlo alebo otočný spínač, ktorý dáva signály ON a OFF podľa špecifických požiadaviek.







Schéma pinov a popis pinov rotačného kódovača

Nižšie uvedený diagram zobrazuje kolíky otočného kódovača. Tieto kolíky sú opísané nasledovne:

Out B alebo CLK



Tento kolík poskytuje výstup o tom, koľkokrát sa gombík alebo otočný kódovač otočil. Zakaždým, keď otočíte gombíkom, CLK dokončí cyklus HIGH a LOW. Počíta sa to ako jedno otočenie.

Out A alebo DT

Toto je druhý výstupný kolík otočného kódovača, ktorý určuje smer otáčania. Za signálom CLK zaostáva o 90°. Preto, ak sa jeho stav nerovná stavu CLK, smer otáčania je v smere hodinových ručičiek, v opačnom prípade proti smeru hodinových ručičiek.

Prepínač

Spínací kolík sa používa na kontrolu, či je tlačidlo stlačené alebo nie.

Vcc

Tento kolík je pripojený k napájaniu 5V

GND

Tento kolík je pripojený k zemi

Rozdiel medzi potenciometrom a rotačným enkodérom

Špecifikácia Potenciometer Rotačný kódovač
Rotácia Potenciometrom je možné otáčať iba jedným smerom a to aj o tri štvrtiny kruhu. Rotačný kódovač sa dokáže nepretržite otáčať o 360° v smere aj proti smeru hodinových ručičiek.
Analógové alebo digitálne zariadenie Potenciometer je väčšinou analógové vstupné zariadenie, ktoré meria zmenu polohy prostredníctvom zmeny hodnoty odporu Rotačný kódovač je digitálne vstupné zariadenie, ktoré sníma uhlovú polohu a poskytuje digitálne hodnoty.

Počet vstupných pozícií Potenciometer má nekonečný počet vstupných pozícií, na ktorých je možné odoberať hodnoty, pretože ide o analógové zariadenie Rotačné snímače majú konečný počet vstupných pozícií.

Nastavenie potenciometra s Arduino

Potenciometer sa s Arduinom nastavuje jednoduchšie ako s rotačným enkodérom. Potenciometer má iba tri piny VCC, GND a pin INPUT, ktorý je pripojený k Arduinu. Prepojenie potenciometra s Arduino je znázornené nižšie:

Programovanie potenciometra v Arduine je jednoduchšie ako pri otočnom enkodéri. Nižšie sú uvedené vzorové kódy syntaxe pre obe z nich.

Vzorový kód pre potenciometer

const int pot = A0; // Deklarujte vstupný pin
neplatné nastavenie ( ) {
   pinMode ( hrniec, VSTUP ) ; // Hodnota nastavenia prevzatá z potenciometra ako vstup
Serial.začať ( 9600 ) ;
}
prázdna slučka ( ) {
int potValue = analogRead ( hrniec ) ; // Odčítaná hodnota vstupu prijatá potenciometrom
mapa ( potValue, 0 , 1023 , 0 , 255 ) ; // Škálovanie hodnoty vstupu tak, aby sa zhodovala 8 -trocha
Serial.println ( potValue ) ; // Vypíše hodnotu, ktorá bola zadaná do potenciometra
meškanie ( 100 ) ;
}

Kód potenciometra je veľmi jednoduchý a jednoduchý. Analógový vstupný kolík Arduina je jednoducho deklarovaný tak, že odoberá vstup z potenciometra a potom sa použijú funkcie analogRead () a map () na čítanie a poskytnutie presnej hodnoty čítania z potenciometra.

Prepojenie rotačného kodéra s Arduino

Otočný kódovač má päť kolíkov. VCC a GND rotačného kodéra sú pripojené k Arduino. Zvyšné kolíky CLK, DT a SW sú pripojené k digitálnym vstupným kolíkom Arduina.

Arduino kód pre rotačný kodér

// Vstupy otočného kódovača
#define CLK_PIN 2
#define DT_PIN 3
#define SW_PIN 4
int počítadlo = 0 ;
int aktualny CLKSstav;
int lastCLKSate;
String currentDirection = '' ;
unsigned long lastButtonPressTime = 0 ;
neplatné nastavenie ( ) {
// Nastavte kolíky kódovača ako vstupy
    pinMode ( CLK_PIN, INPUT ) ;
    pinMode ( DT_PIN, INPUT ) ;
    pinMode ( SW_PIN, INPUT_PULLUP ) ;
// Nastavte sériový monitor
Serial.začať ( 9600 ) ;
// Prečítajte si počiatočný stav CLK
lastCLKSate = digitalRead ( CLK_PIN ) ;
}
prázdna slučka ( ) {
// Prečítajte si aktuálny stav CLK
currentCLKSate = digitalRead ( CLK_PIN ) ;
// Ak posledný a súčasný stav CLK sú odlišné, potom nastal pulz
// Reagovať iba na 1 zmena stavu, aby sa predišlo dvojitému započítaniu
ak ( aktuálny CLKSstav ! = posledný CLKSstav && aktuálny CLKSstav == 1 ) {
// Ak je stav DT odlišný od stavu CLK, potom
// kódovač sa otáča proti smeru hodinových ručičiek, takže ho znižujte
ak ( digitalRead ( DT_PIN ) ! = aktuálny CLKSstav ) {
pult--;
currentDirection = 'CCW' ;
} inak {
// Kodér sa otáča v smere hodinových ručičiek, preto ho zvyšujte
counter++;
currentDirection = 'CW' ;
}
Sériová.tlač ( 'Smer rotácie:' ) ;
Sériová.tlač ( currentDirection ) ;
Sériová.tlač ( ' | Protihodnota: ' ) ;
Serial.println ( počítadlo ) ;
}
// Pamätajte na posledný stav CLK
lastCLKSstav = aktuálny CLKSstav;
// Prečítajte si stav tlačidla
int buttonState = digitalRead ( SW_PIN ) ;
// Ak zaznamenáme signál LOW, tlačidlo je stlačené
ak ( buttonState == NÍZKE ) {
// Ak uplynulo 50 ms od posledný NÍZKY pulz, to znamená, že
// bolo stlačené, uvoľnené a znova stlačené
ak ( milis ( ) - lastButtonPressTime > päťdesiat ) {
Serial.println ( 'Tlačidlo stlačené!' ) ;
}
// Pamätajte na posledný udalosť stlačenia tlačidla čas
lastButtonPressTime = milis ( ) ;
}
// Dajte v mierne oneskorenie Pomoc odraziť čítanie
meškanie ( 1 ) ;
}

Vo vyššie uvedenom kóde sa stav pinu CLK kontroluje vo funkcii loop(). Ak sa nerovná predchádzajúcemu stavu, ukazuje, že sa otočný gombík otočil. Teraz, aby sme skontrolovali smer otáčania gombíka, súčasný stav CLK sa porovná so stavom DT. Ak sú oba stavy nerovnaké, ukazuje to, že sa gombík otočil v smere hodinových ručičiek a počítadlo zvyšuje jeho hodnotu, aby sa zobrazila poloha otočného gombíka. V opačnom prípade počítadlo znižuje.

Aplikácie

Potenciometre sa používajú hlavne tam, kde je potrebná regulačná funkcia. Používajú sa pri ovládaní hlasitosti, ovládaní jasu LED. Na druhej strane rotačné snímače ponúkajú širokú škálu aplikácií. Používajú sa v robotike, zdravotníckych zariadeniach, automatizácii a hrách.

Záver

Potenciometre a rotačné enkodéry sú obzvlášť užitočné zariadenia v oblasti elektroniky. Otočné kódovače sú v porovnaní s potenciometrami pokročilé, pretože sa môžu otáčať plynule o 360°. Podobne majú viac aplikácií v modernej elektronike a ich použitie je o niečo náročnejšie ako potenciometre .