Подключаем валкодер (Rotary Encoder) к Arduino
Вывод данных реализуем на LCD1602
Скетч:
Код:
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27); // SDA - A4 // SCL - A5 // 5v - Vcc // GND - GND // Валкодер int pinA = 8; // CLK int pinB = 9; // DT int encoderPosCount = 0; int pinALast; int aVal; boolean bCW; void setup() { pinMode (pinA,INPUT); // CLK pinMode (pinB,INPUT); // DT pinALast = digitalRead(pinA); Serial.begin (9600); lcd.begin(16,2); lcd.backlight(); lcd.setCursor(2,0); // строка 1, со 2 знака lcd.print("VOLUME:"); } void loop() { aVal = digitalRead(pinA); if (aVal != pinALast){ if (digitalRead(pinB) != aVal) { if (encoderPosCount<100) encoderPosCount ++; // предел 100 bCW = true; } else { bCW = false; if (encoderPosCount>0) encoderPosCount--; // предел 0 } lcd.setCursor(4,1); // строка 2, с 4 знака lcd.print(encoderPosCount); lcd.print(' '); } pinALast = aVal; }