周六 28 9月 2013
Arduino LEDæ•°å—å˜åŒ–å°ç¨‹åº
Posted by Semon under Arduino fun
[11] Comments
最近开始玩arduino,纪录一下。
在教程的基础上优化了一下程åºï¼Œç”¨é€šç”¨çš„æ•°ç»„控制数å—çš„å˜åŒ–,
代ç 如下:
int ledpins[] = {
3, //dpï¼Œå°±æ˜¯å°æ•°ç‚¹
8,7,5,12,13,10,11 // a~g
};//统一控制所有节点亮或暗
void digital_all(int show){
int i;
for(i=0;i<8;i++){
digitalWrite(ledpins[i],show?LOW:HIGH);
}
}//æ ¹æ®å˜é‡é€‰æ‹©æ˜¾ç¤ºçš„æ•°å—,dpl放在程åºé‡Œæ²¡ä¼˜åŒ–åˆ«æ‹æˆ‘
void digital_num(int num){
int i;
int dpl[11][8] = {
{0,1,1,1,1,1,1,0},//0
{0,0,1,1,0,0,0,0},//1
{0,1,1,0,1,1,0,1},//2
{0,1,1,1,1,0,0,1},//3
{0,0,1,1,0,0,1,1},//4
{0,1,0,1,1,0,1,1},//5
{0,1,0,1,1,1,1,1},//6
{0,1,1,1,0,0,0,0},//7
{0,1,1,1,1,1,1,1},//8
{0,1,1,1,1,0,1,1},//9
{1,0,0,0,0,0,0,0}//.
};
for(i=0;i<8;i++){
digitalWrite(ledpins[i],dpl[num][i]?LOW:HIGH);
}
}//æ ¹æ®è¾“入点亮ä¸åŒçš„èŠ‚ç‚¹ï¼Œå…‰æ˜¾ç¤ºæ•°å—æœ‰ä»€ä¹ˆå¥½çŽ©çš„
void digital_snake(int num){
int i;
for(i=0;i<8;i++){
digitalWrite(ledpins[i],(num+1) == i?LOW:HIGH);
}
}void setup(){
int i;
for(i=0;i<8;i++){
pinMode(ledpins[i],OUTPUT);
}
}void loop(){
int i;
//fresh 2 times
for(i=0;i<4;i++){
digital_all(i%2);delay(100);
}
delay(1000);//count number
for(i=0;i<10;i++){
digital_num(i);
delay(200);
}
for(i=0;i<10;i++){
digital_num(9-i);
delay(200);
}
delay(1000);//fresh 2 times
for(i=0;i<4;i++){
digital_all(i%2);
delay(100);
}//number snake
for(i=0;i<6;i++){
digital_snake(i);
delay(50);
}
for(i=0;i<6;i++){
digital_snake(5-i);
delay(50);
}
delay(1000);
}