// 常量
#define COUT 3
// led 引脚
int ledPins[COUT] = {13,10,2};
// 0 1 2
// lc
void setup() {
// 串口类
Serial.begin(115200);
// 按钮 8 输入模式
pinMode(8,INPUT);
// for
for(int i=0; i<COUT; i++){
pinMode(ledPins[i],OUTPUT);
}
}
// 0:led 灭 1: led 亮
// int ledState = 0;
// 按钮上一次、当前值
int btnLastVal = 0;
int btnVal = 0;
// 记录上一次和当前亮 数组 下标
int ledLastIndex = COUT-1;
int ledIndex = COUT-1;
// 数组
void loop() {
btnLastVal = btnVal;
// 读取按钮 数字量 值 1: 按下
btnVal = digitalRead(8);
Serial.print("btnVal: ");
Serial.println( btnVal );
if(btnLastVal == 0 && btnVal == 1){ // 按钮按下
// ledPins[0]
digitalWrite(ledPins[ledLastIndex], LOW); // 上一次亮过的 led ,现在需要灭
digitalWrite(ledPins[ledIndex], HIGH); // 当前 led 亮
ledLastIndex = ledIndex; // 下标更新
if(ledIndex <= 0){ // 边界判定
ledIndex = COUT-1;
}
else{
ledIndex--;
}
}
delay(30);
}