hw0808 2023-02-24 13:44 采纳率: 100%
浏览 35
已结题

合宙的ESP32C3开发板控制ws2812彩灯同时连接WiFi会出现彩灯显示不正常?

系统:WIN7
硬件:合宙ESP32C3 单核、160mhZ,
软件:
1、使用 FastLED ,wifi 库
2、Vscode 搭建 Platformio开发平台

场景一、合宙esp32c3单独连接wifi,能正常连接wifi。
场景二、合宙esp32c3单独控制12颗ws2812灯珠时,ws2812的颜色、亮度均正常。
场景三、连接wifi,并同时控制12颗ws2812灯珠显示蓝色,会出现灯珠闪烁,一会蓝灯、一会绿灯、一会红灯?

下面是代码,哪位有经验的朋友帮我看看。谢谢!

#include <Arduino.h>
#include <FastLED.h>
#include <WiFi.h>

/*********************以下为ws2812定义*********************/
#define DATA_PIN  18
//esp32c3驱动ws2812可用引脚 7,5,4,18,1,0
#define LED_TYPE    WS2812
#define COLOR_ORDER GRB
#define NUM_LEDS    12        //led的个数
CRGB leds[NUM_LEDS];        //建立LED光带
unsigned char max_bright=2;  //光带亮度0~255
CHSV MYHSVCOLOR(100,200,200);//自定义HSV颜色
//CRGB MYRGBCOLOR(100,200,200);//自定义RGB颜色

/*********************以下为wifi定义*********************/
const char * ID = "huawei5z";
const char * PASSWORD = "12349876";

void setup() 
{
  Serial.begin(9600);
  delay(100);   
  LEDS.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS);  //启动灯带 
  FastLED.setBrightness(max_bright);


  Serial.println("WiFi:");
  Serial.println(ID);
  Serial.println("PASSWORLD:");
  Serial.println(PASSWORD);
  
  WiFi.begin(ID,PASSWORD);
  
  while(WiFi.status()!=WL_CONNECTED)
  {
    delay(500);
    Serial.println("正在连接...");
  } 
  Serial.println("连接成功!");

}

void loop()
{
  fill_solid(leds, 12, CRGB::Blue);
  FastLED.show();
  delay(300);
}

  • 写回答

3条回答 默认 最新

  • hw0808 2023-03-11 18:42
    关注

    总算弄完了,回来做个记号
    解决方法有2种
    方法一:不更换平台,继续使用paltformio,但不使用FastLED库,而是用Adafruit_NeoPixel库驱动ws2812;
    方法二:更换平台,使用乐鑫官方的IDF。
    个人分析:FastLED库的底层代码与wifi库的底层有外设上的冲突。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 创建了问题 2月24日

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大