kategorier: Mikrokontrollkretser
Antall visninger: 16 299
Kommentarer til artikkelen: 0

Hvordan koble inkrementell koding til Arduino

 

Ofte på enheter på mikrokontrollere må du organisere styringen av menyelementene eller implementere noen justeringer. Det er mange måter: bruk knapper, variabel motstand eller kodere. Den trinnvise koderen lar deg styre noe ved hjelp av endeløs rotasjon av håndtaket. I denne artikkelen skal vi se på hvordan du får den inkrementelle koderen og Arduino til å fungere.

Hvordan koble inkrementell koding til Arduino

Trinnvise koderfunksjoner

Den inkrementelle koderen, som alle andre typer kodere, er en roterende håndtaksenhet. På lik linje ligner det et potensiometer. Hovedforskjellen fra potensiometeret er at kodehåndtaket roterer 360 grader. Han har ingen ekstreme bestemmelser.

Kodere kommer i mange typer. Trinnvis forskjellig ved at det med sin hjelp er det umulig å vite posisjonen til håndtaket, men bare rotasjonsfakta i en eller annen retning - til venstre eller til høyre. Med antall signalpulser kan du allerede beregne i hvilken vinkel den snudde.

Encoder og Arduino

På den måten kan du passere mikrokontroller kommando, administrer menyen, volumnivå, for eksempel, og så videre. I hverdagen kunne du se dem i bilradioer og annet utstyr. Det brukes som multifunksjonelt nivåjusteringsorgan, utjevner og menynavigering.

Lydnivåknott

Arbeidsprinsipp

Inne i den inkrementelle koderen er det en disk med etiketter og glidebrytere som kommer i kontakt med dem. Strukturen er lik et potensiometer.

Demontert koder

På figuren over ser du en disk med merker, de er nødvendige for å avbryte den elektriske forbindelsen med den bevegelige kontakten, som et resultat får du data om rotasjonsretningen. Utformingen av produktet er ikke så viktig, la oss forstå prinsippet om drift.

Koderdesign

Koderen har tre informasjonsutganger, en felles, de to andre kalles vanligvis "A" og "B", på figuren over ser du koderknuten med en knapp - du kan motta et signal når du klikker på akselen.

Hvilket signal vil vi motta? Avhengig av rotasjonsretningen, vil den logiske enheten først vises på pinne A eller B, slik at vi får et faseskiftet signal, og dette skiftet lar oss bestemme hvilken retning. Signalet oppnås i form av en rektangulær form, og mikrokontrolleren styres etter å ha behandlet dataene for rotasjonsretningen og antall pulser.

Arbeidsprinsipp

Figuren viser symbolet på disken med kontaktene, i midten er grafen for utgangssignalene, og til høyre er statusbordet. Denne enheten blir ofte tegnet som to taster, noe som er logisk, fordi vi faktisk får et signal "frem" eller "tilbake", "opp" eller "ned", og antall handlinger.

Koderkrets

Her er et eksempel på en ekte koderkort:

Eksempel på en ekte kodeutvikler

Jeg lurer på:

En feil koder kan byttes ut med to knapper uten å låse, og omvendt: hjemmelaget kontroll der to av disse knappene kan avsluttes ved å stille inn koderen.

I videoen under ser du vekslingen av signalet ved terminalene - under jevn rotasjon lyser lysdiodene i sekvensen reflektert i forrige graf.

Ikke mindre tydelig illustrert i følgende animasjon (klikk på bildet):

Enheten og prinsippet for betjening av koderen

Koderen kan både være optisk (signalet genereres av sendere av fotodetektorer, se figuren nedenfor), og magnetisk (det fungerer på Hall-effekten). I dette tilfellet har han ingen kontakter og lengre levetid.

Vinkelsensor

Som allerede nevnt kan rotasjonsretningen bestemmes av hvilke av utgangssignalene som tidligere har endret seg, men slik ser det ut i praksis!

Mekaniske fikseringspunkter

Kontrollnøyaktigheten avhenger av oppløsningen til koderen - antall pulser per omdreining. Antall pulser kan være fra enheter til tusenvis av stykker. Siden koderen kan fungere som en posisjonssensor, jo flere pulser, desto mer nøyaktig vil bestemmelsen skje.Denne parameteren blir referert til som PPR - puls per revolusjon.

Men det er en liten nyanse, nemlig en lignende betegnelse LPR er antall etiketter på disken.

Og antall behandlede pulser. Hver etikett på disken gir 1 rektangulær puls på hver av de to utgangene. Impulsen har to fronter - bak og foran. Siden det er to veier ute, får vi totalt 4 pulser fra hver av dem, verdiene du kan bearbeide.

PPR = LPRx4


Koble til Arduino

Vi fant ut hva du trenger å vite om den inkrementelle koderen, la oss nå finne ut hvordan du kobler den til Arduino. Tenk på tilkoblingsskjemaet:

Koblingsskjema for posisjonssensoren til Arduino

En kodermodul er brettet som den inkrementelle koderen og opptrekksmotstandene befinner seg på. Du kan bruke hvilken som helst pinne.

Koders koblingsskjema

Hvis du ikke har en modul, men en egen koder, trenger du bare å legge til disse motstandene, kretsen vil ikke være forskjellig i prinsippet. For å sjekke rotasjonsretningen og dens bruksevne i forbindelse med Arduino vi kan lese informasjon fra serieporten.

Programeksempel

La oss analysere koden mer detaljert, i rekkefølge. Ved oppsett av tomrom () kunngjorde vi at vi ville bruke kommunikasjon gjennom serieporten, og deretter sette pinner 2 og 8 i inndatamodus. Velg pin-numre selv basert på tilkoblingsskjemaet. INPUT_PULLUP-konstanten stiller inn inngangsmodus, arduino har to alternativer:

  • INPUT - inngang uten opptrekksmotstander;

  • INPUT_PULLUP - tilkobling til inngangen til opptrekksmotstander. Det er allerede motstander inne i mikrokontrolleren som inngangen kobles til strømpluss (pullup).

Hvis du bruker motstander for å stramme til strømmen pluss som vist i diagrammene ovenfor eller bruker kodermodulen - bruk INPUT-kommandoen, og hvis du av en eller annen grunn ikke kan eller ikke vil bruke eksterne motstander - INPUT_PULLUP.

Logikken til hovedprogrammet er som følger: hvis vi har en på inngangen “2”, sender den ut port H til skjermen, hvis ikke, L. Således, når du roterer en vei på serieportmonitoren, får du noe slikt: LL HL HH LH LL. Og motsatt: LL LH HH HL LL.

Hvis du har lest nøye linjene, merket du sannsynligvis at det første tegnet i det ene tilfellet skaffet seg en verdi, og i det andre tilfellet forandret det andre tegnet først.


konklusjon

Trinnvise kodere har funnet bred praktisk anvendelse i forsterkere for akustiske systemer - de ble brukt som en volumkontroll, i bilradioer - for å justere lydparametere og navigere i menyer, i datamus med den blar du sider daglig (et hjul er installert på akselen) . Og også i måleverktøy, CNC-maskiner, roboter, selsyn ikke bare som kontroller, men også måleverdier og bestemme posisjonen.

Se også på elektrohomepro.com:

  • Metoder for å lese og administrere Arduino I / O-porter
  • Motor- og servokontroll med Arduino
  • Funksjoner som kobler enheter til Arduino
  • Koble til og programmerer Arduino for nybegynnere
  • Mest populære sensorer for Arduino

  •