вторник, 1 марта 2011 г.

Arduino и энкодер: дубль 2.

Я уже писал в своем блоге, как подружить Arduino и энкодер. Сегодня покажу вам еще один вариант скетча для Arduino:

  1.  int val;
  2.  int encoder0PinA = 3;
  3.  int encoder0PinB = 4;
  4.  int encoder0Pos = 0;
  5.  int encoder0PinALast = LOW;
  6.  int n = LOW;
  7.  void setup() {
  8.    pinMode (encoder0PinA,INPUT);
  9.    pinMode (encoder0PinB,INPUT);
  10.    Serial.begin (9600);
  11.  }
  12.  void loop() {
  13.    n = digitalRead(encoder0PinA);
  14.    if ((encoder0PinALast == LOW) && (n == HIGH)) {
  15.      if (digitalRead(encoder0PinB) == LOW) {
  16.        encoder0Pos--;
  17.      } else {
  18.        encoder0Pos++;
  19.      }
  20.      Serial.print (encoder0Pos);
  21.      Serial.print ("/");
  22.    }
  23.    encoder0PinALast = n;
  24.  }

Сам энкодер подключаем средним контактом на GND, контакт A - напрямую к пину №3 платы и через 10КОм резистор к +5В, контакт B - к пину №4 платы и аналогично через 10КОм резистор к +5В. Включаем плату, крутим ручку энкодера и мониторим порт - в него плата посылает значения.

1 комментарий: