#include <LedControl.h>
LedControl lc = LedControl(5, 7, 6, 1); // DIN=5, CLK=7, CS=6
int x = 3; // 初始位置
int y = 3;
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
pinMode(A0, INPUT); // 搖桿 X 軸
pinMode(A1, INPUT); // 搖桿 Y 軸
pinMode(2, INPUT_PULLUP); // 搖桿 SW 按鈕
}
void loop() {
int joyX = analogRead(A0);
int joyY = analogRead(A1);
int sw = digitalRead(2);
// 左右方向保持不變
if (joyX < 400) x--;
else if (joyX > 600) x++;
// 上下方向反過來
if (joyY < 400) y++;
else if (joyY > 600) y--;
// 邊界限制
x = constrain(x, 0, 7);
y = constrain(y, 0, 7);
// SW 按下 → 清除畫面並回到原點
if (sw == LOW) {
lc.clearDisplay(0);
x = 0;
y = 0;
}
// 顯示光點(留下軌跡,不清除)
lc.setLed(0, y, x, true);
delay(150); // 控制移動速度
}
留言
張貼留言