kategorier: Microcontroller kredsløb
Antal visninger: 16.299
Kommentarer til artiklen: 0

Sådan tilsluttes inkrementel indkoder til Arduino

 

Ofte på enheder på mikrokontrollere skal du organisere styringen af ​​menupunkter eller implementere nogle justeringer. Der er mange måder: brug knapper, variabel modstand eller kodere. Den inkrementelle indkoder giver dig mulighed for at styre noget ved hjælp af den endeløse rotation af håndtaget. I denne artikel skal vi se på, hvordan man får den inkrementelle indkoder og Arduino til at fungere.

Sådan tilsluttes inkrementel indkoder til Arduino

Inkrementelle koderfunktioner

Den inkrementelle indkoder er, som enhver anden type kodning, en roterende håndtagsenhed. Det minder tydeligt om et potentiometer. Den største forskel fra potentiometeret er, at kodehåndtaget drejer 360 grader. Han har ingen ekstreme bestemmelser.

Kodere findes i mange typer. Trinvis adskiller sig fra hinanden, at det med sin hjælp er umuligt at kende håndtagets position, men kun rotationsfaktoren i en eller anden retning - til venstre eller til højre. Med antallet af signalimpulser kan du allerede beregne i hvilken vinkel det drejede.

Encoder og Arduino

På den måde kan du passere mikrocontroller kommando, administrer menuen, lydstyrkeniveau, f.eks. osv. I hverdagen kunne du se dem i bilradioer og andet udstyr. Det bruges som multifunktionelt niveaujusteringsorgan, equalizer og menunavigation.

Lydniveauknap

Arbejdsprincip

Inde i den inkrementelle indkoder er der en disk med etiketter og skyder, der kommer i kontakt med dem. Dens struktur ligner et potentiometer.

Demonteret indkoder

I figuren ovenfor ser du en disk med mærker, de er nødvendige for at afbryde den elektriske forbindelse med den bevægelige kontakt, som et resultat får du data om rotationsretningen. Produktets design er ikke så vigtigt, lad os forstå princippet om drift.

Encoder Design

Koderen har tre informationsudgange, den ene er almindelig, de andre to kaldes normalt "A" og "B", på figuren ovenfor ser du koderen pin med en knap - du kan modtage et signal, når du klikker på dens skaft.

Hvilket signal modtager vi? Afhængig af rotationsretningen vises den logiske enhed først på stift A eller B, så vi får et faseforskiftet signal, og dette skift giver os mulighed for at bestemme, hvilken retning. Signalet opnås i form af en rektangulær form, og mikrokontrolleren styres efter behandling af dataene for rotationsretningen og antallet af impulser.

Arbejdsprincip

Figuren viser symbolet på disken med kontakterne, i midten er grafen for udgangssignalerne, og til højre er statustabellen. Denne enhed tegnes ofte som to taster, hvilket er logisk, fordi vi faktisk får et signal "frem" eller "tilbage", "op" eller "ned" og antallet af handlinger.

Koderkredsløb

Her er et eksempel på en rigtig koderknap:

Eksempel på en rigtig koderknapout

Jeg undre:

En defekt koder kan udskiftes med to knapper uden at låse, og vice versa: hjemmelavet kontrol, hvor to af disse knapper kan afsluttes ved at indstille koderen.

I videoen nedenfor ser du vekslingen af ​​signalet ved klemmerne - under jævn rotation lyser lysdioderne i den rækkefølge, der reflekteres i den forrige graf.

Ikke mindre tydeligt illustreret i følgende animation (klik på billedet):

Enhedens og princippet for betjening af koderen

Koderen kan både være optisk (signalet genereres af emittere ved hjælp af fotodetektorer, se figuren nedenfor) og magnetisk (det fungerer på Hall-effekten). I dette tilfælde har han ingen kontakter og længere levetid.

Vinkelsensor

Som allerede nævnt kan rotationsretningen bestemmes af, hvilket af udgangssignalerne der tidligere har ændret sig, men sådan ser det ud i praksis!

Mekaniske fikseringspunkter

Nøjagtigheden af ​​styringen afhænger af kodningens opløsning - antallet af impulser pr. Omdrejning. Antallet af impulser kan være fra enheder til tusinder af stykker. Da koderen kan fungere som en positionssensor, jo flere impulser, desto mere nøjagtigt vil bestemmelsen ske.Denne parameter omtales som PPR - puls pr. Omdrejning.

Men der er en lille nuance, nemlig en lignende betegnelse LPR er antallet af etiketter på disken.

Og antallet af behandlede impulser. Hver etiket på disken giver 1 rektangulær puls på hver af de to udgange. Impulsen har to fronter - den bageste og den forreste. Da der er to veje ud, får vi i alt 4 pulser fra hver af dem, hvis værdier du kan behandle.

PPR = LPRx4


Opret forbindelse til Arduino

Vi har fundet ud af, hvad du har brug for at vide om den inkrementelle indkoder, lad os nu finde ud af, hvordan du forbinder det til Arduino. Overvej tilslutningsdiagrammet:

Forbindelsesdiagrammet for positionssensoren til Arduino

Et kodermodul er det bord, hvorpå den inkrementelle indkoder og pull-up-modstande er placeret. Du kan bruge alle stifter.

Encoder-ledningsdiagram

Hvis du ikke har et modul, men en separat indkoder, skal du blot tilføje disse modstande, kredsløbet adskiller sig principielt ikke. At kontrollere rotationsretningen og dens funktionsevne i forbindelse med Arduino vi kan læse information fra den serielle port.

Programeksempel

Lad os analysere koden mere detaljeret i rækkefølge. I ugyldig opsætning () annoncerede vi, at vi ville bruge kommunikation gennem den serielle port og derefter indstille ben 2 og 8 i inputtilstanden. Vælg pin-numre selv baseret på dit forbindelsesskema. INPUT_PULLUP-konstanten indstiller inputtilstanden, arduino har to muligheder:

  • INPUT - input uden pull-up modstande;

  • INPUT_PULLUP - forbindelse til indgangen til pull-up-modstande. Der er allerede modstande inde i mikrokontrolleren, hvorigennem indgangen er forbundet til power plus (pullup).

Hvis du bruger modstande til at stramme til strømmen plus som vist i diagrammerne ovenfor eller bruger kodermodulet - skal du bruge INPUT-kommandoen, og hvis du af en eller anden grund ikke kan eller ikke vil bruge eksterne modstande - INPUT_PULLUP.

Hovedprogrammets logik er som følger: hvis vi har en på input "2", udsender den port H til skærmen, hvis ikke, L. Således, når du roterer i samme retning på seriel portmonitoren, får du noget lignende: LL HL HH LH LL. Og vice versa: LL LH HH HL LL.

Hvis du læser linjerne omhyggeligt, bemærkede du sandsynligvis, at det første tegn i det ene tilfælde fik en værdi, og i det andet ændrede det andet tegn først.


konklusion

Trinvise kodere har fundet bred praktisk anvendelse i forstærkere til akustiske systemer - de blev brugt som en lydstyrkekontrol, i bilradioer - til at justere lydparametre og navigere i menuer, i computermus med det ruller du sider dagligt (et hjul er installeret på dets skaft) . Og også i måleværktøjer, CNC-maskiner, robotter, selsyn ikke kun som kontroller, men også måleværdier og bestemmelse af positionen.

Se også på elektrohomepro.com:

  • Metoder til læsning og styring af Arduino I / O-porte
  • Motor- og servostyring med Arduino
  • Funktioner, der forbinder enheder til Arduino
  • Tilslutning og programmering af Arduino til begyndere
  • Mest populære sensorer til Arduino

  •