kategorier: Mikrokontrollkretsar
Antal visningar: 16 299
Kommentarer till artikeln: 0

Hur man ansluter inkrementell kodare till Arduino

 

Ofta i enheter på mikrokontroller måste du organisera hanteringen av menyalternativ eller genomföra några justeringar. Det finns många sätt: använd knappar, variabla motstånd eller kodare. Den inkrementella kodaren låter dig styra något med den oändliga rotationen av handtaget. I den här artikeln kommer vi att titta på hur man gör inkrementell kodare och Arduino fungerar.

Hur man ansluter inkrementell kodare till Arduino

Inkrementella kodningsfunktioner

Den inkrementella kodaren, som alla andra typer av kodare, är en roterande handtagsenhet. På samma sätt liknar den en potentiometer. Den största skillnaden från potentiometern är att kodarhandtaget roterar 360 grader. Han har inga extrema bestämmelser.

Kodare finns i många typer. Inkrementellt skiljer sig åt att det med sin hjälp är omöjligt att känna till handtaget, utan bara rotationsfaktorn i någon riktning - till vänster eller till höger. Med antalet signalpulser kan du redan beräkna i vilken vinkel den vred.

Kodare och Arduino

På så sätt kan du passera mikrokontroller kommando, hantera menyn, volymnivå, till exempel, och så vidare. I vardagen kunde du se dem i bilradio och annan utrustning. Det används som ett multifunktionellt nivåjusteringsorgan, utjämnare och menynavigering.

Ljudnivåknopp

Arbetsprincip

Inuti den inkrementella kodaren finns en disk med etiketter och reglage som kommer i kontakt med dem. Dess struktur liknar en potentiometer.

Demonterad kodare

I figuren ovan ser du en skiva med märken, de behövs för att avbryta den elektriska anslutningen med den rörliga kontakten, som ett resultat får du data om rotationsriktningen. Produktens design är inte så viktig, låt oss förstå principen om drift.

Kodarkonstruktion

Kodaren har tre informationsutgångar, en gemensam, de andra två kallas vanligtvis "A" och "B", i figuren ovan ser du kodarstiftet med en knapp - du kan få en signal när du klickar på dess axel.

Vilken signal kommer vi att få? Beroende på rotationsriktningen visas den logiska enheten först på stift A eller B, så vi får en fasförskjuten signal, och denna växling gör att vi kan bestämma vilken riktning. Signalen erhålls i form av en rektangulär form, och mikrokontrollern styrs efter bearbetning av data för rotationsriktningen och antalet pulser.

Arbetsprincip

Figuren visar symbolen för disken med kontakterna, i mitten är grafen för utsignalerna och till höger är statustabellen. Den här enheten dras ofta som två tangenter, vilket är logiskt, eftersom vi i själva verket får en signal "framåt" eller "bakåt", "upp" eller "ner" och antalet åtgärder.

Kodarkrets

Här är ett exempel på en verklig kodare-pinout:

Exempel på en verklig kodar-pinout

Jag undrar:

En felaktig kodare kan ersättas med två knappar utan låsning, och vice versa: hemmagjord kontroll där två av dessa knappar kan slutföras genom att ställa in kodaren.

I videon nedan ser du växlingen av signalen vid terminalerna - under jämn rotation tänds lysdioderna i den sekvens som återspeglas i föregående graf.

Inte mindre tydligt illustrerat i följande animation (klicka på bilden):

Enheten och principen för drift av kodaren

Kodaren kan både vara optisk (signalen genereras av emittrar med fotodetektorer, se bilden nedan) och magnetisk (den fungerar på Hall-effekten). I det här fallet har han inga kontakter och längre livslängd.

Vinkelsensor

Som redan nämnts kan rotationsriktningen bestämmas av vilken av utsignalerna som tidigare har förändrats, men det är så det ser ut i praktiken!

Mekaniska fixeringspunkter

Kontrollens noggrannhet beror på kodarens upplösning - antalet pulser per varv. Antalet pulser kan vara från enheter till tusentals bitar. Eftersom kodaren kan fungera som en positionssensor, desto fler pulser, desto mer exakt kommer bestämningen att ske.Denna parameter kallas PPR - puls per varv.

Men det finns en liten nyans, nämligen en liknande beteckning LPR är antalet etiketter på disken.

Och antalet bearbetade pulser. Varje etikett på disken ger en rektangulär puls på var och en av de två utgångarna. Impulsen har två fronter - den bakre och den främre. Eftersom det finns två vägar ut får vi totalt 4 pulser från var och en av dem, vilka värden du kan bearbeta.

PPR = LPRx4


Anslut till Arduino

Vi räknade ut vad du behöver veta om inkrementell kodare, låt oss nu ta reda på hur du ansluter den till Arduino. Tänk på anslutningsdiagrammet:

Anslutningsdiagrammet för positionssensorn till Arduino

En kodningsmodul är kortet på vilket inkrementell kodare och uppdragningsmotstånd är belägna. Du kan använda valfri stift.

Kodaranslutningsdiagram

Om du inte har en modul utan en separat kodare behöver du bara lägga till dessa motstånd, kretsen kommer inte att skilja sig i princip. För att kontrollera rotationsriktningen och dess användbarhet i samband med Arduino vi kan läsa information från serieporten.

Programexempel

Låt oss analysera koden mer i detalj i ordning. Vid en ogiltig inställning () meddelade vi att vi skulle använda kommunikation genom serieporten och sedan ställa in stift 2 och 8 i ingångsläget. Välj pin-nummer själv baserat på ditt anslutningsschema. INPUT_PULLUP-konstanten ställer in ingångsläget, arduino har två alternativ:

  • INPUT - ingång utan dragmotstånd;

  • INPUT_PULLUP - anslutning till ingången till pull-up-motstånd. Det finns redan motstånd i mikrokontrollern genom vilken ingången är ansluten till power plus (pullup).

Om du använder motstånd för att dra åt kraften plus som visas i diagrammen ovan eller använder kodningsmodulen - använd INPUT-kommandot, och om du av någon anledning inte kan eller inte vill använda externa motstånd - INPUT_PULLUP.

Huvudprogrammets logik är som följer: om vi har en på ingång "2", matar den ut port H till monitorn, om inte, L. Således, när du roterar i samma riktning på seriell portmonitorn, kommer du att få något liknande: LL HL HH LH LL. Och vice versa: LL LH HH HL LL.

Om du läser noggrant raderna, märkte du förmodligen att det första tecknet i ett fall fick ett värde, och i det andra förändrade det andra tecknet först.


slutsats

Inkrementella kodare har hittat bred praktisk tillämpning i förstärkare för akustiska system - de användes som en volymkontroll, i bilradioer - för att justera ljudparametrar och menynavigering, i datormöss med det rullar du sidor dagligen (ett hjul är installerat på dess axel) . Och även i mätverktyg, CNC-maskiner, robotar, selsyn inte bara som kontroller, utan också mätvärden och bestämning av position.

Se även på elektrohomepro.com:

  • Metoder för att läsa och hantera Arduino I / O-portar
  • Motor- och servokontroll med Arduino
  • Har anslutningar till Arduino
  • Ansluta och programmera Arduino för nybörjare
  • Mest populära sensorer för Arduino

  •