#include #define LIGHT 0 #define DARK 1 #define MAP 21 #define BT 500 //蛇的移動速度 #define AT 100 //左邊動畫速度 const char L = 7; const char SEG[]={6,7,8,9,10,11,12}; const char com[]={2,3,4,5}; const char dirSeg[MAP][2]={ //定義 3 個7段, 每一顆 led 應該驅動的 com 及 SEG 0,0,1,0,2,0, 0,1,0,5,1,1,1,5,2,1,2,5, 0,6,1,6,2,6, 0,2,0,4,1,2,1,4,2,2,2,4, 0,3,1,3,2,3}; const byte dir[MAP][2][6]={ //7段每一小段所能到達位置 2,1,4,0,0,0, 1,3,0,0,0,0,//0 2,2,6,0,0,0, 2,0,5,0,0,0,//1 1,8,0,0,0,0, 2,1,7,0,0,0,//2 2,9,12,0,0,0, 1,0,0,0,0,0,//3 2,9,13,0,0,0, 1,0,0,0,0,0,//4 2,10,14,0,0,0, 1,1,0,0,0,0,//5 2,10,15,0,0,0, 1,1,0,0,0,0,//6 2,11,16,0,0,0, 1,2,0,0,0,0,//7 2,11,17,0,0,0, 1,2,0,0,0,0,//8 3,4,10,13,0,0, 2,3,12,0,0,0,//9 3,6,11,15,0,0, 3,5,9,14,0,0,//10 2,8,17,0,0,0, 3,7,10,16,0,0,//11 1,18,0,0,0,0, 2,9,3,0,0,0,//12 1,18,0,0,0,0, 2,4,9,0,0,0,//13 1,19,0,0,0,0, 2,5,10,0,0,0,//14 1,19,0,0,0,0, 2,6,10,0,0,0,//15 1,20,0,0,0,0, 2,7,11,0,0,0,//16 1,20,0,0,0,0, 2,11,8,0,0,0,//17 2,13,19,0,0,0, 1,12,0,0,0,0,//18 2,15,20,0,0,0, 2,14,18,0,0,0,//19 1,17,0,0,0,0, 2,16,19,0,0,0//20 }; const byte dirP[MAP][MAP]={ //定義每個 led 點到點的移動模式 //0 1 2 3 4 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 0,2,0,1,2,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0 1,0,2,0,0,1,2,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //1 0,1,0,0,0,0,0,1,2,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //2 1,0,0,0,0,0,0,0,0,2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, //3 1,0,0,0,0,0,0,0,0,2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //4 1,1,0,0,0,0,0,0,0,2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, //5 0,1,1,0,0,0,0,0,0,0, 2, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, //6 0,1,1,0,0,0,0,0,0,0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, //7 0,0,1,0,0,0,0,0,0,0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, //8 0,0,0,1,2,2,0,0,0,0, 2, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0, //9 0,0,0,0,1,1,2,2,0,1, 0, 2, 0, 1, 1, 2, 2, 0, 0, 0, 0, //10 0,0,0,0,0,0,0,1,2,0, 1, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, //11 0,0,0,1,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, //12 0,0,0,0,1,0,0,0,0,1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, //13 0,0,0,0,0,1,0,0,0,1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, //14 0,0,0,0,0,0,1,0,0,0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, //15 0,0,0,0,0,0,0,1,0,0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, //16 0,0,0,0,0,0,0,0,1,0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, //17 0,0,0,0,0,0,0,0,0,0, 0, 0, 1, 2, 2, 0, 0, 0, 0, 2, 0, //18 0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 1, 1, 2, 2, 0, 1, 0, 2, //19 0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 1, 0, //20 //0 1 2 3 4 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 }; char bug[3];//3 段蛇位置 char buf[4][7]={1,1,1,1,1,1,1, //4 個 7 段的 buf 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1}; const char sfMp[2][8][7]={0,1,1,0,1,1,1, //最左邊那個 7 段顯示動畫 (2 種模式) 1,0,1,1,0,1,1, 1,1,0,1,1,0,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 0,1,1,1,1,1,1, 1,0,1,1,1,1,1, 1,1,1,1,1,1,0, 1,1,1,1,0,1,1, 1,1,1,0,1,1,1, 1,1,0,1,1,1,1, 1,1,1,1,1,1,0, 1,1,1,1,1,0,1 }; Timer t1,t2; char go,bgo; int tt=0;//計數器 void setup() { char x,y,i,j; randomSeed(analogRead(A0)); for(i=0;i<3;i++){ bug[i]=i; y=dirSeg[i][0];x=dirSeg[i][1]; buf[y][x]=LIGHT; } //for(i=0;i