Incrementele roterende encoder

In industriële toepassingen kan het soms nodig zijn om de positie of de snelheid van een roterend object zoals een wiel of een as/as te meten. Roterende encoder is een elektromechanisch apparaat dat kan worden gebruikt om deze metingen te verkrijgen.

Er zijn twee soorten roterende encoders: incrementele roterende encoders en absolute roterende encoders. In dit artikel zullen we kijken naar incrementele roterende encoders, hun werkingsprincipe en toepassingen.

Wat is een incrementele roterende encoder?

Incrementele encoders behoren tot de familie van roterende encoders. Ze worden gebruikt om informatie te verkrijgen zoals:

  • Positie
  • Hoek
  • Draaisnelheid

Incrementele roterende encoders worden voornamelijk gevonden in toepassingen waar het meten van snelheid/hoeksnelheid vereist is. Dit wordt gedaan door het aantal pulsen per tijdseenheid te tellen dat door de encoder wordt gegenereerd.

In tegenstelling tot zijn broer, de absolute roterende encoder, kunnen incrementele encoders geen informatie verstrekken wanneer de as niet draait. Ze kunnen alleen informatie geven over de beweging van de as.

De pulsen die door de incrementele roterende encoder worden gegenereerd, moeten elders worden berekend en verwerkt. Dit kan een microcontroller zijn of een PLC (Programmable Logic Controller). Met behulp van het aantal pulsen kan de controller de informatie vervolgens omzetten in informatie zoals: positie, snelheid en afstand.

Hoe werkt een incrementele roterende encoder?

Incrementele roterende encoders zijn er in twee configuraties:

  1. Incrementele encoders met één kanaal
  2. Dubbelkanaals (Quadrature) encoders

Hun functionaliteiten lijken bijna op elkaar. Met dubbelkanaals encoders kunnen we echter de draairichting detecteren die een enkelkanaals encoder niet kan.

Het functionele principe van een incrementele roterende encoder is vrij eenvoudig. De sensor bestaat uit een roterende schijf met sleuven die aan de as ervan is bevestigd.

Wanneer de as draait, roteert de schijf ook zoals weergegeven in de onderstaande afbeelding. Dit wordt ook wel een 'codewiel' genoemd.

De sleuven in het wiel worden gebruikt om 'pulsen' te genereren telkens wanneer een sleuf in lijn komt met de sensor. Incrementele roterende encoders gebruiken technologieën zoals: magnetisch, optisch, inductief, capacitief en laser om dit te genereren pulstrein.

Het bovenstaande diagram illustreert de werking van een optische incrementele roterende encoder. Een lichtbron (LED) wordt over de schijf geplaatst en het ontvangende apparaat (een fotodiode/fototransistor) wordt in de zichtlijn geplaatst.

Wanneer de schijf draait, laten de sleuven tijdelijk licht door. Op dit moment bereikt de lichtstraal de ontvanger en geeft een logisch HOOG-signaal af.

Wanneer de schijf verder draait, wordt de lichtstraal belemmerd en ontvangt de ontvanger de straal niet. Dit zorgt ervoor dat de uitvoer van dat corresponderende kanaal logisch LAAG wordt.

Tweekanaals incrementele roterende encoders hebben twee van deze kanalen, kanaal A en B genoemd. De plaatsing van de sleuven voor kanaal B is iets verschoven ten opzichte van de sleuven voor kanaal A.

Soms gebruikt de sensor een enkele set slots en worden de ontvangers in een offset geplaatst.

Door deze speciale opstelling kunnen de uitgangen A en B 'uit fase' zijn.

De microcontroller of de PLC kan beide kanalen bewaken om de draairichting te detecteren.

Afhankelijk van welk kanaal (A of B) als eerste een stijgende flank aangeeft, kan ook de richting worden gedetecteerd. Encoders met één kanaal hebben alleen de uitgang van kanaal A en kunnen slechts een enkele pulsreeks uitvoeren.

In het bovenstaande diagram geeft bijvoorbeeld een stijgende flank op A na een stijgende flank op B aan dat het wiel tegen de klok in draait. Evenzo geeft een stijgende flank op B na een stijgende flank op A aan dat het wiel/de as met de klok mee draait.

Op sommige sensoren is er een derde kanaal genaamd 'Z'. In tegenstelling tot de andere twee kanalen is er meestal maar één slot voor dit kanaal. Dit wordt gebruikt om te genereren één puls per omwenteling voor taken zoals homing en verificatie van het aantal pulsen.

Incrementele versus absolute encoder

Incrementele encoders kunnen alleen werken als de as draait.

Systemen die incrementele roterende encoders gebruiken, moeten een geavanceerd programma hebben om de pulsen te tellen die de sensor produceert om de aspositie te bepalen. Ze hebben een schijf met gelijke tussenruimten die als codewiel fungeert.

Absolute encoders hebben een gespecialiseerd codewiel. Deze bevat een niet-uniform slotpatroon, een unieke code voor elke positie van de as.

Voor elke gegeven aspositie voert een absolute roterende encoder een unieke binaire code uit die de positie nauwkeurig beschrijft. Het behoudt ook de uitvoer, zelfs als het is uitgeschakeld, omdat het codewiel zelf het patroon bevat.

Incrementele encoders moeten de hele tijd ingeschakeld zijn om constant de pulstrein te genereren voor snelheids- en afstandsberekeningen. Absolute encoders kunnen echter worden ingeschakeld wanneer dat nodig is om een ​​meting te verkrijgen.

Wat de complexiteit betreft, zijn incrementele encoders eenvoudiger dan hun absolute tegenhangers. Daarom zijn incrementele encoders goedkoper dan absolute roterende encoders.

Waar worden incrementele encoders voor gebruikt?

Incrementele roterende encoders vinden hun toepassingen van huishoudelijke apparaten tot auto's tot industriële automatiseringstoepassingen.

Een van de meest populaire toepassingen voor positiedetectie zijn de bedieningsknoppen op elektronische apparatuur, zoals autoradio's. De draaiknoppen zijn traploos verstelbaar en werken alleen als het apparaat aan staat.

Vroeger gebruikten de elektromechanische computermuizen deze sensoren ook om de positie langs de twee assen te volgen.

In industriële toepassingen worden incrementele encoders gebruikt om de snelheid van mechanische systemen te meten. Dit is met name handig in motion control-systemen zoals materiaaltransporteurs, robotarmen en CNC-machines.

Specificaties incrementele encoder

Bij het kiezen van een encoder voor een bepaalde toepassing zijn er meerdere factoren waarmee u rekening moet houden.

  • buitendiameter
    • De buitendiameter van de sensorbehuizing (handig bij montage)
  • Astype en diameter:
    • Er zijn keuzes voor het astype zoals holle as, halfholle as, blinde holle as en doorlopende boring.
    • De diameter moet binnen toleranties zijn om goed te kunnen worden gekoppeld aan het object. Er zijn assen van 20 mm, 25 mm en 30 mm beschikbaar.
  • Outlet manier en kabel lengte:
    • De positie van de uitgangskabelaansluiting. Er zijn twee configuraties: kant en naar buiten.Configuratie aan de zijkant maakt de aansluiting van een afneembare kabel aan de zijkant mogelijk. Het type kabeluitgang heeft een vaste kabel die uit de achterkant van de sensorbehuizing komt.
    • Voor vaste kabels zijn de sensoren meestal uitgerust met een 2M zwart gekleurde kabel.
  • Voedingsspanning
    • Geeft de maximale bedrijfsspanning van de sensor aan. Er zijn opties voor %v (vast), 5-12V, 12-24V en 24V (vast) DC-voedingen.
  • Type uitgangssignaal:
    • A voor enkelkanaals encoders, A en B voor dubbelkanaals (kwadratuur) encoders en een optionele Z voor indexpulsuitgang
  • aantal pulsen
    • Deze parameter beschrijft de pulsen per omwenteling (PPR) en teller per omwenteling (CPR) waarden die de sensor ondersteunt.
  • Signaaluitgang methode:
    • Het type uitgangssignaal: spanning (V)/stroom (C) uitgang, complementaire (F) uitgang of line drive (L, T) uitgang

Elektrische kenmerken van incrementele encoder

  • Voedingsspanning
    • Kan variëren van 5V tot 24V
  • Stroomverbruik
    • Voor spannings- en stroomuitgangstypen is het typische stroomverbruik minder dan 60 mA. Drivertypes kunnen tot 100mA verbruiken.
  • Uitgangsspanning (voor type spanningsuitgang)
    • HOOG niveau spanning: >= 3.5V
    • LAGE spanning: <=0.5V
  • Opkomst en ondergang tijden
    • Beschrijft de tijd die de sensor nodig heeft om de output van hoog naar laag (daling) of laag naar hoog (stijgen) te veranderen
    • Typische stijgtijd voor type spanningsuitgang: <= 500ns
    • Typische uitvaltijd voor type spanningsuitgang: <= 100ns
  • Frequentierespons
    • Maximale frequentie waarmee de sensor zijn uitgangen kan schakelen
    • Valt meestal onder 300kHz

Incrementeel roterend encodercircuit

Zoals eerder vermeld, kunnen roterende encoders worden aangesloten op PLC's of microcontrollers om snelheid, positie, afstand en draairichting van een as te meten. Deze apparaten moeten speciaal worden geprogrammeerd om deze waarden te berekenen en beslissingen te nemen.

Er zijn ook gespecialiseerde apparaten zoals tellers en toerentellers die deze berekeningen out-of-the-box kunnen uitvoeren en de waarden direct kunnen aangeven. Laten we eens kijken naar enkele van de circuits die we kunnen bouwen met behulp van incrementele roterende encoders:

Zelfaangedreven toerenteller

De H7ER serie zelfaangedreven toerenteller van Omron, kan een incrementele encoder met één kanaal worden gebruikt om een ​​toerenteller in te stellen die het toerental van een as kan weergeven.

De E6A2 is een incrementele kwadratuur-encoder van het type AB met NPN-uitgangen met open collector. Door het te verbinden met de H7ER, fungeert het systeem als een toerenteller die de frequentie van de pulsen telt om het toerental van de aangesloten as te bepalen.

Hoge snelheid op/neer teller

De K3NC is een snelle op/neer-teller met een verscheidenheid aan uitvoermodi. Dit apparaat kan worden aangesloten op een roterende encoder van het type AB om een ​​op/neer-teller te vormen volgens de draairichting.

Met deze opstelling kan de telmeter worden geconfigureerd om een ​​signaal af te geven om een ​​machine aan/uit te zetten die de pulstelling vergelijkt. Het ondersteunt ook communicatie met een PLC voor procesbesturingstoepassingen.

Het gebruik van deze kant-en-klare componenten kan de noodzaak voor een complex apparaat zoals een PLC elimineren waar het niet absoluut noodzakelijk is. Dit is vooral handig voor kleinere systemen.

Voor gebruik in een PLC-gebaseerd systeem wordt een HSC-kaart (High Speed ​​Counter) aanbevolen voor toepassingen met hoge snelheid. De onderstaande afbeelding toont de aansluiting van een incrementele roterende encoder van het PNP-type met open collector op een HSC-ingangskaart gekoppeld aan een PLC.

De sensor heeft A-, B- en Z-uitgangen en ze zijn aangesloten op de HSC-kaart zoals hierboven weergegeven. De tellerkaart kan worden geconfigureerd om de teller die de encoderassnelheid afleest naar de PLC te sturen. Deze opzet reduceert de verwerkingsoverhead in het PLC-programma.

Incrementele roterende encoder Arduino

In op Arduino gebaseerde circuits worden roterende encoders gebruikt als invoer voor onze programma's.

We kunnen ze gebruiken om de waarde van een variabele te verhogen/verlagen voor taken zoals het regelen van de snelheid van een motor of de helderheid van een LED. In meer geavanceerde toepassingen worden roterende encoders ook gebruikt om door menu's te navigeren.

De KY-040 is een kant-en-klare roterende encodermodule die beschikbaar is voor Arduino's. Het heeft de volgende pinout:

  • GND – Aardverbinding
  • VCC – 5V of 3.3V voeding
  • SW - drukknopschakelaaruitgang (0V wanneer ingedrukt, 5V in rust)
  • DT – Gegevensuitgang
  • CLK – Klokuitgang

Laten we als voorbeeldcircuit eens kijken naar een testcircuit waarbij de encoder is aangesloten op een Arduino UNO. De SW pin van de sensor is aangesloten op pin 4, CLK op pin 2 en DT is aangesloten op pin 3 van de Arduino.

VCC is verbonden met +5V en GND is verbonden met de GND-pin van het Arduino-ontwikkelbord, zoals hieronder weergegeven.

Arduino-code voor roterende encoder

Deze voorbeeldcode is aangepast van lastminuteengineers.com. Het vervult twee hoofdfuncties:

  1. Wacht op CLK-signaal (pin 2) om te veranderen
  2. Kijk of de knop wordt ingedrukt (pin 4 is LAAG)

Wanneer de encoderknop wordt gedraaid, detecteert het programma de verandering in de CLK-lijn. Vervolgens wordt de status van de DT-pin gecontroleerd.

Als beide hetzelfde zijn, wordt de encoder met de klok mee gedraaid en anders tegen de klok in. Ondertussen is voor elke detectie de variabele teller's waarde wordt ook verhoogd/verlaagd, afhankelijk van de richting.

Het programma controleert ook de knopstatus van de encoder. Als het wordt ingedrukt, drukt het programma 'knop ingedrukt' af op de seriële monitor. Het drukt ook de huidige waarde van het aantal getelde pulsen af.

// Ingangen voor roterende encoders
#bepalen CLK-2
#bepalen DT 3
#bepalen SW 4int teller = 0;
int huidigeStateCLK;
int laatsteStateCLK;
String huidigeDir =””;
Ongesigneerd lang lastButtonDruk = 0;komen te vervallen setup() {

// Stel encoderpinnen in als ingangen
pinMode (CLK, INPUT);
pinMode(DT,INVOER);
pinMode (SW, INPUT_PULLUP);

// Seriële monitor instellen
Serial.begin (9600);

// Lees de beginstatus van CLK
lastStateCLK = digitalRead (CLK);
}

komen te vervallen lus() {

// Lees de huidige staat van CLK
huidigeStateCLK = digitalRead (CLK);

// Als de laatste en huidige status van CLK verschillend zijn, is er een puls opgetreden
// Reageer op slechts 1 statuswijziging om dubbeltelling te voorkomen
if (currentStateCLK != lastStateCLK && currentStateCLK == 1){

// Als de DT-status anders is dan de CLK-status, dan
// de encoder draait tegen de klok in, dus decrement
if (digitalRead(DT) != huidigeStateCLK) {
balie -;
huidigeDir =”CCW”;
} anders {
// Encoder draait CW dus increment
teller ++;
huidigeDir =”CW”;
}

Serial.print ("Richting: ");
Serial.print (currentDir);
Serial.print(" | Teller: ");
Serial.println(teller);
}

// Onthoud de laatste CLK-status
lastStateCLK = huidigeStateCLK;

// Lees de knopstatus
int btnState = digitalRead (SW);

//Als we een LAAG signaal detecteren, wordt op de knop gedrukt
if (btnState == LAAG) {
// als 50 ms is verstreken sinds de laatste LAGE puls, betekent dit dat de
// knop is ingedrukt, losgelaten en nogmaals ingedrukt
if (millis() – lastButtonPress > 50) {
Serial.println ("Knop ingedrukt!");
}

// Onthoud de gebeurtenis van de laatste druk op de knop
lastButtonPress = millis();
}

// Voer een kleine vertraging in om de lezing te debouncen
vertraging (1);
}

Hoe incrementele encoder te controleren met multimeter

Om problemen met een encoder met een multimeter op te lossen, moet deze zijn ingeschakeld. Zet de multimeter na het inschakelen in de DC-volt-meetmodus en verbind de zwarte sonde met de GND-draad van de sensor.

Draai langzaam de as van de sensor terwijl u de A- of B-uitgangen van de sensor meet.

De spanningsmeting moet schommelen tussen bijna 0V en VCC van de sensor. Merk op dat de as extreem langzaam moet draaien om de multimeter in staat te stellen zijn aflezing te stabiliseren.

Als de spanningsmeting niet verandert, schakelt u de multimeter in de AC-modus en herhaalt u dezelfde metingen. Draai deze keer de as sneller. Als de uitlezing van de multimeter een niet-nulspanning aangeeft, kan worden geconcludeerd dat de encoder functioneel is.

Dit is echter geen 100% nauwkeurige methode voor het oplossen van problemen. Hoewel de multimeter een spanningswaarde weergeeft, kan de sensor nog steeds defect zijn. In dit geval moet de timing van de sensor worden geanalyseerd. Voor dergelijke taken is een oscilloscoop vereist.

Conclusie

In dit artikel hebben we de werking, het werkingsprincipe en de toepassingen van incrementele roterende encoders besproken.

Hoewel incrementele encoders het populairst zijn, kunnen absolute roterende encoders in bepaalde gevallen voordelig zijn. Selecteer de meest geschikte sensor voor uw toepassing door rekening te houden met de kenmerken die we in dit artikel hebben besproken.

Het zal niet alleen de prestaties en betrouwbaarheid van uw systeem verbeteren, maar ook de onnodige kosten verminderen.

Facebook
Twitter
LinkedIn
Pinterest
Laatste Blogs

Inhoudsopgave

Stuur ons