#include <LedControl.h> //引用 LedControl 程式庫
LedControl lc(12, 11, 10, 1); //宣告 LedControl 物件
bool go = true;
int X, Y;
int count = 0;
int a = 0, b = 0;
int Ma = 0, Mb = 0;
int dira = 0, dirb = 0;
void setup() {
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), my_ISR, FALLING);
Serial.begin(9600);
randomSeed(analogRead(A5));
lc.shutdown(0, false); // 關閉省電模式
lc.setIntensity(0, 0); // 設定亮度為 0 (介於0~15之間)
lc.clearDisplay(0); // 清除螢幕
}
void loop() {
X = analogRead(A0);
Y = analogRead(A1);
if (X > 700)
dira = -1;
else if (X < 300)
dira = 1;
else
dira = 0;
if (Y > 700)
dirb = 1;
else if (Y < 300)
dirb = -1;
else
dirb = 0;
if (count % 20 == 0)
{
move();
}
if (Ma==a && Mb==b)
{
newone();
}
if (count >= 10000)
count = 0;
delay(10);
count++;
}
void my_ISR()
{
go = !go;
}
void showXY()
{
Serial.print("X: ");
Serial.print(X);
Serial.print(" Y: ");
Serial.print(Y);
Serial.print(" Go: ");
Serial.println(go);
}
void newone()
{
a = random(0, 7);
b = random(0, 7);
lc.setLed(0, a, b, 1);
}
void move()
{
lc.setLed(0, Ma, Mb, 0);
Ma = Ma + dira;
Mb = Mb + dirb;
if (Ma>7)
Ma=7;
if (Ma<0)
Ma=0;
if (Mb>7)
Mb=7;
if (Mb<0)
Mb=0;
lc.setLed(0, Ma, Mb, 1);
}