电位编码器常用于功放和汽车内饰的旋钮上,长的和一个普通的电位器差不多,一个编码器可以左旋转、右旋转和按钮。
一共有5个引脚,GND接地,+接5V电源,CLK接3号引脚,DT接4号引脚,SW接5号引脚。
代码部分`:
int pinA = 3; //CLK接 pin3
int pinB = 4; //DT接pin4
int button = 5; //按键接pin5
int ButtonState; //按键状态
int pinALast;
int aVal;
bool buttonVal = false;
void setup()
{
pinMode(pinA, INPUT);
pinMode(pinB, INPUT);
pinMode(button, INPUT_PULLUP);
pinALast = digitalRead(pinA);
Serial.begin(9600);
}
void loop()
{
aVal = digitalRead(pinA);
ButtonState= digitalRead(button );
///旋钮事件
if (aVal != pinALast)
{
if (digitalRead(pinB) != aVal)
{ // 顺时针旋转
Serial.println("Next");
}
else
{ // 逆时针旋转
Serial.println("Last");
}
}
pinALast = aVal;
///按钮事件
if (ButtonState == LOW) //按钮按下时
{
Serial.println("Input");
}
}
需求是使用编码器控制视频的上下切换和暂停播放,实际使用中还运用了按钮消抖,请参考按钮消抖的几种方法。