Мазмұны:

Айналмалы кодер - оны түсініңіз және қолданыңыз (Arduino/басқа ontrolконтроллер): 3 қадам
Айналмалы кодер - оны түсініңіз және қолданыңыз (Arduino/басқа ontrolконтроллер): 3 қадам

Бейне: Айналмалы кодер - оны түсініңіз және қолданыңыз (Arduino/басқа ontrolконтроллер): 3 қадам

Бейне: Айналмалы кодер - оны түсініңіз және қолданыңыз (Arduino/басқа ontrolконтроллер): 3 қадам
Бейне: Одессалық әйелге бару. Менің арманым орындалды!!! Одессада серуендеу. 2024, Қараша
Anonim
Айналмалы кодер - оны түсініңіз және қолданыңыз (Arduino/басқа Μконтроллер)
Айналмалы кодер - оны түсініңіз және қолданыңыз (Arduino/басқа Μконтроллер)

Айналмалы кодер-айналмалы қозғалысты сандық немесе аналогтық ақпаратқа түрлендіретін электр механикалық құрылғы. Ол сағат тілімен немесе сағат тіліне қарсы бұрыла алады. Айналмалы кодерлердің екі түрі бар: абсолютті және салыстырмалы (қадамдық) кодерлер.

Абсолютті кодер біліктің ағымдық бұрышына пропорционалды мәнді шығарса, өспелі кодер біліктің қадамын және оның бағытын шығарады. (Бұл жағдайда бізде қосымша кодер болады)

Ротари -кодерлер танымал бола бастады, себебі сіз бір электрлік модульде екі функцияны қолдана аласыз: операцияларды растайтын қарапайым қосқыш және шарлау үшін айналмалы кодер, мысалы. мәзір арқылы.

Қосымша айналмалы кодер білігі айналған кезде екі шығыс сигналын шығарады. Бағытқа байланысты сигналдардың бірі екіншісіне әкеледі. (төменде қараңыз)

1 -қадам: Шығу деректерін түсіну

Шығу мәліметтерін түсіну
Шығу мәліметтерін түсіну

Көріп отырғаныңыздай, кодер білігі сағат тілінің бағытымен айнала бастағанда, А шығысы алдымен LOW мәніне түседі, содан кейін В шығысы. Сағат тіліне қарсы бағытта жұмыс қарама-қарсы бұрылады.

Енді біз мұны µController -ге енгізуіміз керек (мен Arduino Nano қолдандым).

2 -қадам: Схеманы құрыңыз

Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз

Жоғарыда айтқанымдай, шығыстар жоғары және төмен қанат жасайды. ΜКонтроллердің А және В түйреуіштерінде таза ЖОҒАРЫ алу үшін бізге тартылатын резисторларды қосу керек. Кәдімгі C түйреуіші LOW қапталына тікелей жерге түседі.

Ішкі қосқыш туралы ақпарат алу үшін (түйме) біз басқа екі түйреуішті қолданамыз. Олардың біреуі VCC -ке, екіншісі µController -дің деректер пиніне өтеді. Таза LOW алу үшін бізге деректер түйреуішіне төмен түсетін резисторды қосу керек.

ΜController ішкі тартылатын және тартылатын резисторларын қолдануға болады!

Менің жағдайда түйін келесідей көрінеді:

  • +3, 3В => +3, 3В (Arduino) (сонымен қатар +5В мүмкін)
  • GND => GND (Arduino)
  • A => түйреуіш 10
  • B =>

    Бекіту

    11

  • C => GND
  • БҚ =>

    Бекіту

    12

3 -қадам: кодты жазу

int pinA = 10; // ішкі қосқыш A int pinB = 11; // ішкі қосқыш B int pinSW = 12; // switch (басылған Encoder) int encoderPosCount = 0; // нөлден басталады, қаласаңыз өзгертіңіз

int positionval;

bool ауыстыру; int mrotateLast; int mrotate;

жарамсыз орнату () {

int mrotateLast = digitalRead (pinA); Serial.begin (9600); кешіктіру (50); }

void loop () {readencoder (); if (readwitch () == 1) {Serial.println («Switch = 1»); }}

int readencoder () {

mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// тұтқасы айналады, егер (digitalRead (pinB)! = mrotate) {// қосқышы A алдымен өзгерді -> сағат тілінің бағытымен encoderPosCount ++ айналады; Serial.println («сағат тілімен бұрылған»); } else {// В қосқышы алдымен өзгертілді-> сағат тіліне қарсы айналдыратын encoderPosCount--; Serial.println («сағат тіліне қарсы бұрылған»); }

Serial.print («Encoder Position:»); Serial.println (encoderPosCount); Serial.println («»); } mrotateLast = mrotate; encoderPosCount қайтару; } bool readwitch () {

if (digitalRead (pinSW)! = 0) {// қосқышы басылады

while (digitalRead (pinSW)! = 0) {} // қосқыш қазіргі уақытта switchval = 1 басылады; } else {switchval = 0;} // коммутатор - қайтарылмаған ауысу; }

Енді сіз кодерді айналдыра аласыз, ал егер сіз сағат тілімен бұрылсаңыз encoderPosCount айнымалы есептеледі, ал егер сіз сағат тіліне қарсы бұрылсаңыз кері санау.

Міне бітті! Қарапайым және пайдалы.

Кодты өзгертуге және орындауға еркін болыңыз. Сіз оны жобаңызға енгізе аласыз.

Мен сондай -ақ светодиодтардың жарықтығын орнату үшін кодерді қолданған LED жобасын жүктеймін.

Ұсынылған: