鱼C论坛

 找回密码
 立即注册
查看: 2122|回复: 2

[已解决]警灯电控

[复制链接]
发表于 2023-4-1 21:31:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
刚加协会的电控组,没接触过电控,这警灯代码谁能给我讲讲🤔感谢🙏
#include <FastLED.h>
#define LED_PIN     4        //arduino串口,可自行修改
#define NUM_LEDS    10        //灯珠的数量,可自行修改
CRGB leds[NUM_LEDS];

void setup() {
  Serial.begin(9600);  
  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);    //初始化状态
  
}
void loop() {

for(int i=10;i>0;i--){
  for(int a=0; a<NUM_LEDS/2; a++){
  leds[a] = CRGB(255, 0, 0);
  FastLED.show();
  }
  delay(150);
  FastLED.clear();
  for(int b=NUM_LEDS/2; b<NUM_LEDS; b++){
  leds[b] = CRGB(0, 0, 255);
  FastLED.show();

  }
  delay(150);
  FastLED.clear();
}

for(int j=25;j>0;j--){
  for(int c=0; c<NUM_LEDS/2; c++){
  leds[c] = CRGB(255, 0, 0);
  FastLED.show();//显示灯

  }
  FastLED.clear();//关闭所有灯
  
  for(int d=NUM_LEDS/2; d<NUM_LEDS; d++){
  leds[d] = CRGB(0, 0, 255);
  FastLED.show();
  
  }
  FastLED.clear();
}
for(int k=10;k>0;k--){
  for(int h=3;h>0;h--){
  for(int e=0; e<NUM_LEDS/2; e++){
  leds[e] = CRGB(255, 0, 0);
  FastLED.show();
  //delay(150);
  }
  FastLED.clear();
  }

  for(int h=10;h>0;h--){
  for(int g=NUM_LEDS/2; g<NUM_LEDS;g++){
  leds[g] = CRGB(0, 0, 255);
  FastLED.show();
  //delay(150);
  }
  FastLED.clear();
  }
}
}
最佳答案
2023-4-1 21:38:59
这段代码是用于驱动一个双色(红色和蓝色)警灯的Arduino程序。程序使用FastLED库来控制一个WS2812 LED灯珠阵列。这里简要介绍一下代码的功能。

  • 导入FastLED库,这是一个用于驱动LED灯珠的库。
  • 定义LED_PIN为4,这是连接Arduino的数据线的引脚。
  • 定义NUM_LEDS为10,表示灯珠的数量。
  • 创建一个数组leds,用于存储LED灯珠的颜色信息。
  • 在setup()函数中,初始化串口通信和FastLED库,设置好LED灯珠的类型和引脚。
  • 在loop()函数中,有三个循环,每个循环分别表示不同的警灯闪烁模式:
    • 第一个循环:10次,红色灯珠和蓝色灯珠交替闪烁,延迟150毫秒。
    • 第二个循环:25次,红色灯珠和蓝色灯珠快速交替闪烁,没有延迟。
    • 第三个循环:10次,红色灯珠闪烁3次,蓝色灯珠闪烁10次,没有延迟。


通过调整循环次数、延迟时间以及颜色设置,你可以实现更多的警灯闪烁效果。希望这能帮助你理解这段代码的功能。如果有任何问题,请随时提问!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-1 21:38:59 | 显示全部楼层    本楼为最佳答案   
这段代码是用于驱动一个双色(红色和蓝色)警灯的Arduino程序。程序使用FastLED库来控制一个WS2812 LED灯珠阵列。这里简要介绍一下代码的功能。

  • 导入FastLED库,这是一个用于驱动LED灯珠的库。
  • 定义LED_PIN为4,这是连接Arduino的数据线的引脚。
  • 定义NUM_LEDS为10,表示灯珠的数量。
  • 创建一个数组leds,用于存储LED灯珠的颜色信息。
  • 在setup()函数中,初始化串口通信和FastLED库,设置好LED灯珠的类型和引脚。
  • 在loop()函数中,有三个循环,每个循环分别表示不同的警灯闪烁模式:
    • 第一个循环:10次,红色灯珠和蓝色灯珠交替闪烁,延迟150毫秒。
    • 第二个循环:25次,红色灯珠和蓝色灯珠快速交替闪烁,没有延迟。
    • 第三个循环:10次,红色灯珠闪烁3次,蓝色灯珠闪烁10次,没有延迟。


通过调整循环次数、延迟时间以及颜色设置,你可以实现更多的警灯闪烁效果。希望这能帮助你理解这段代码的功能。如果有任何问题,请随时提问!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-1 22:10:01 | 显示全部楼层
谢谢醍醐灌顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 00:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表