wxDGyLq0sSE6 发表于 2023-6-13 14:59:36

代码逻辑感觉没有问题,但是代码运行之后ws2812灯带不按

//共生
#include <Adafruit_NeoPixel.h>

#define LED_PIN    8// ws2812引脚设置
#define LED_COUNT 576//灯珠数量

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

float sinVal;            
int toneVal;
unsigned long tepTimer ;   

void setup(){
    Serial.begin(9600);      //设置波特率为9600 bps
    strip.begin();
    strip.show();
}

void loop(){
    int val;            //用于存储LM35读到的值
    double data;      //用于存储已转换的温度值
    val=analogRead(0);   //LM35连到模拟口,并从模拟口读值
    data = (double) val * (5/10.24);// 得到电压值,通过公式换成温度

    if(data>37){      //如果温度大于27,led亮
          for (int i = 0; i < strip.numPixels(); i++) {
            strip.setPixelColor(i, strip.Color(4, 5, 10));
            strip.show();
            delay(0.05);
          }

    } else {          // 如果温度小于27,关闭蜂鸣器
          for(int i = 0; i < LED_COUNT; i++) {
            strip.setPixelColor(i, 10, 11, 20); // 设置蓝色
            strip.show(); // 更新LED状态
            delay(0.5); // 延迟50ms
            strip.setPixelColor(i, 0, 0, 0); // 关闭当前LED
          }
    }

    if(millis() - tepTimer > 500){   // 每500ms,串口输出一次温度值
             tepTimer = millis();
             Serial.print("temperature: ");   // 串口输出“温度”
             Serial.print(data);         // 串口输出温度值
             Serial.println("C");         // 串口输出温度单位
       }
}

wxDGyLq0sSE6 发表于 2023-6-13 15:00:51

感谢大家!解惑!

云天 发表于 2023-6-14 10:11:19

本帖最后由 云天 于 2023-6-14 10:13 编辑

wxDGyLq0sSE6 发表于 2023-6-13 15:00
感谢大家!解惑!
硬件也拍一下,发上来。及运行时串口输出情况。
页: [1]
查看完整版本: 代码逻辑感觉没有问题,但是代码运行之后ws2812灯带不按