zoukankan      html  css  js  c++  java
  • Arduino 跑马灯

    参考:

    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;}     //让灯轮流亮,到底换方向
    }
  • 相关阅读:
    Mybatis如何插入空字段
    为什么要将action实例设置为多例
    hibernate dynamic-update="true"属性不起作用原因(转载)
    查找到匹配的进程并关闭 linux ps -ef
    Mac 下解决修改IntelliJ IDEA 由于修改配置之后无法启动问题
    再聊移动端页面的适配
    重学前端
    前端面试
    使用Flexible实现手淘H5页面的终端适配
    vue-cli3.0 使用px2rem 或 postcss-plugin-px2rem
  • 原文地址:https://www.cnblogs.com/MCSFX/p/10323750.html
Copyright © 2011-2022 走看看