码迷,mamicode.com
首页 > 其他好文 > 详细

Arduino 跑马灯

时间:2019-01-26 17:13:10      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:运行   溢出   tle   forever   lis   https   html   ++   sig   

参考:

1. https://blog.csdn.net/hunhun1122/article/details/70254606

2. http://www.51hei.com/arduino/3924.html

 

记录:

1.最简单的跑马灯程序 一个for循环

IDE 代码:

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
}
 
// the loop function runs over and over again forever
void loop() {
for(int i=13;i>=10;i-- ){
digitalWrite(i, HIGH);
delay(1000);
digitalWrite(i, LOW);
}
}
 
记录2
比较复杂的跑马灯程序,loop中调用了函数,以及millis()此函数用于返回Arduino板开始运行当前程序时的毫秒数。这个数字在大约50天后溢出,即回到零。
代码:
byte ledPin[ ] = {2, 3, 4, 5, 7, 8, 9, 10, 11};     //以LED引脚创建数组
int ledDelay(250);    //变换灯之间的延时,你爱多少写多少(毫秒)
int dir = 1;
int currentLED = 0;
unsigned long changeTime;
void setup() {
    for (int x=0; x<9; x++)    //设置所有引脚为输出模式
    {
      pinMode(ledPin[x], OUTPUT);
    }
    changeTime = millis();
}
void loop()  
{       
  if((millis() - changeTime) > ledDelay)    //如果过了ledDelay毫秒,执行以下程序
  {
    changeLED();
    changeTime = millis();
  }
}
 
void changeLED() {  
  for (int x=0; x<9; x++) {   //关闭所有灯
    digitalWrite(ledPin[x], HIGH);
  }
digitalWrite(ledPin[currentLED], LOW);    //开一个灯
currentLED+=dir;
if (currentLED == 8) {dir = -1;}
if (currentLED == 0) {dir = 1;}     //让灯轮流亮,到底换方向
}

Arduino 跑马灯

标签:运行   溢出   tle   forever   lis   https   html   ++   sig   

原文地址:https://www.cnblogs.com/MCSFX/p/10323750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!