代码逻辑感觉没有问题,但是代码运行之后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"); // 串口输出温度单位
}
}
感谢大家!解惑! 本帖最后由 云天 于 2023-6-14 10:13 编辑
wxDGyLq0sSE6 发表于 2023-6-13 15:00
感谢大家!解惑!
硬件也拍一下,发上来。及运行时串口输出情况。
页:
[1]