• ARDUINO UNO 12颗LED超酷流水灯效果


    效果代码:

    #define t   30
    #define t1  20
    #define t2  100
    #define t3  50

    void setup() {
      // set up pins 2 to 13 as outputs
      for (int i = 2; i <= 13; i++) {
        pinMode(i, OUTPUT);
      }
    }
    /Effect 1
    void loop()
    {
     effect_1();
     effect_1();
     effect_2();
     effect_2();
     effect_3();
     effect_3();
     effect_4();
     effect_4();
     effect_5();
     effect_5();
     effect_6();
     effect_6();
     effect_7();
     effect_7();
      }
    //左到右右到左
    void effect_1()
    {
    for(int i=2; i<14; i++){
    digitalWrite(i, HIGH);
    delay(t1);
    digitalWrite(i+1, HIGH);
    delay(t1);
    digitalWrite(i+2, HIGH);
    delay(t1);
    digitalWrite(i, LOW);
    delay(t1);
    digitalWrite(i+1, LOW);
    delay(t1);
    }
    for(int i=13; i>1; i--){
    digitalWrite(i, HIGH);
    delay(t1);
    digitalWrite(i-1, HIGH);
    delay(t1);
    digitalWrite(i-2, HIGH);
    delay(t1);
    digitalWrite(i, LOW);
    delay(t1);
    digitalWrite(i-1, LOW);
    delay(t1);
    }
    }
    /Effect 2
    void effect_2()
    {
    int count = 13; // keeps track of second LED movement

      // 将第一个 LED 从左向右移动,第二个 LED 从右向左移动
      for (int i = 2; i < 13; i++) {
        clear();
        digitalWrite(i, HIGH);      // chaser 1
        digitalWrite(count, HIGH); // chaser 2
        count--;
        // 停止 LED ,静止在中间
        if (count != 7) {
          delay(t2);
        }
      }

      // 将第一个 LED 从右向左移动,将第二个 LED 从左向右移动
      for (int i = 13; i > 2; i--) {
        clear();
        digitalWrite(i, HIGH);      // chaser 1
        digitalWrite(count, HIGH); // chaser 2
        count++;
        // 停止 LED ,静止在中间
        if (count != 8) {
          delay(t2);
        }
      }
    }

    Effect 3

    void effect_3()
    {
    for(int i=2; i<14; i++){
      digitalWrite(i, HIGH);
      delay(t3);
    }
    for(int i=2; i<14; i++){
      digitalWrite(i, LOW);
      delay(t3);
    }


    for(int i = 14; i>=2; i--){
      digitalWrite(i, HIGH);
      delay(t3);
    }
    for(int i = 14; i>=2; i--){
      digitalWrite(i, LOW);
      delay(t3);
    }
    }
      ///Effect 4
    void effect_4()
    {
    for(int j = 2; j <= 13; j++){
      digitalWrite(j, HIGH);
      delay(t2);
      j=j+1;
      }
    for(int j = 2; j <= 13; j++){
      digitalWrite(j, LOW);
      delay(t2);
      }

      for(int k = 15; k > 2; k--){
      digitalWrite(k, HIGH);
      delay(t2);
      k=k-1;
      }
    for(int k = 15; k > 2; k--){
      digitalWrite(k, LOW);
      delay(t2);
      }
    }
    //Effect 5

    void effect_5()

    {

      clear();

      for (int i = 2; i < 13; i++) {

        for (int pin = 13; pin >= i; pin--)

        {

          digitalWrite(pin, HIGH);

          delay(t1);

          digitalWrite(pin + 1, LOW);

          delay(t1);

        }

      }

    }


      /Effect 6
    void effect_6()
    {
    for(int j=2; j<14; j++){
      digitalWrite(j, LOW);
      delay(t);
      digitalWrite(j, HIGH);
      delay(t);
      digitalWrite(j-2, LOW);
      delay(t);
      digitalWrite(j, HIGH);
    }
    for(int k = 15; k>2; k--){
      digitalWrite(k, LOW);
      delay(t);
      digitalWrite(k, HIGH);
      delay(t);
      digitalWrite(k+2, LOW);
      delay(t);
      digitalWrite(k, HIGH);
    }
    for(int k = 2; k<14; k++){
      digitalWrite(k, LOW);
      delay(t);
      digitalWrite(k, HIGH);
      delay(t);
      digitalWrite(k-2, LOW);
      delay(t);
      digitalWrite(k, HIGH);
    }
    for(int k = 15; k>2; k--){
      digitalWrite(k, LOW);
      delay(t);
      digitalWrite(k, HIGH);
      delay(t);
      digitalWrite(k+4, LOW);
      delay(t);
      digitalWrite(k, HIGH);
    }
    for(int k = 2; k<14; k++){
      digitalWrite(k, LOW);
      delay(t);
      digitalWrite(k, HIGH);
      delay(t);
      digitalWrite(k-4, LOW);
      delay(t);
      digitalWrite(k, HIGH);

    }
    ///Effect 7
    void effect_7()
    {
    for(int j=2; j<14; j++){
      digitalWrite(j, HIGH);
      delay(t);
      digitalWrite(j+2, LOW);
      delay(t);
    }
    for(int k = 15; k>2; k--){
      digitalWrite(k, HIGH);
      delay(t);
      digitalWrite(k+2, LOW);
      delay(t);
    }
    }

    // function to switch all LEDs off
    void clear(void)
    {
      for (int i = 2; i <= 13; i++) {
        digitalWrite(i, LOW);
      }
    }

  • 相关阅读:
    前端框架Vue学习 ——(四)Axios
    numpy的基础操作
    字体的基础知识:英文字体的特征及结构(终于找到了)
    百度隐藏“快照”功能:原因未知
    Windows操作系统下用vmware虚拟ubuntu系统测试USB IC卡读写器的说明
    猿创征文 |【C++】面向对象之微观部分——类的组成(下)
    哈夫曼压缩算法-Python实现
    Elasticsearch使用实战以及代码详解
    JQuary---获取文本内容,正则表达式
    检测docker内存状态脚本
  • 原文地址:https://blog.csdn.net/sxstj/article/details/134482578