Подключаем валкодер (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;
}