• 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);
      }
    }

  • 相关阅读:
    2022,云大厂“猛砸”合作伙伴生态
    kudeadm 部署 k8s
    element-ui el-tabs el-tab-pane 的使用
    Linux常用命令——cksum命令
    探索古彝文的秘密,AI实现古籍传承
    NIO与BIO服务器端对比
    Python---数据序列中的公共方法
    search_everything文件搜索引擎的测试用例
    信号量实现生产消费模型
    Java 8 Time API
  • 原文地址:https://blog.csdn.net/sxstj/article/details/134482578