|
我需要帶寫一個(gè)用溫度控制ws2812燈帶顏色的程序。
主要功能:
1.根據(jù)不同的現(xiàn)場(chǎng)溫度顯示漸變(比如從末端綠到頂端紅)。同時(shí)可以講溫度數(shù)值上傳至云端。
程序效果:
比如60個(gè)燈珠,第一個(gè)開始根據(jù)溫度慢慢點(diǎn)亮燈珠數(shù)量,類似溫度計(jì)。
程序我寫了一部分,上傳出現(xiàn)問題,是我的程序有問題還是其他問題
程序部分:
#include <FastLED.h>
#include "DHT.h"
#define DHTPIN 4 //溫濕度傳感器接4號(hào)引腳
#define DHTTYPE DHT11 //DHT11
DHT dht(DHTPIN,DHTTYPE);
#define NUM_LEDS 30 //lED燈珠數(shù)量
#define LED_DT 12 //Arduino輸出控制信號(hào)引腳
#define LED_TYPE WS2812 //LED燈帶型號(hào)
#define COLOR_ORDER GRB //RGB燈珠中紅色、綠色、藍(lán)色LED的排列序號(hào)
#define light 20 //設(shè)置亮度步長(zhǎng)
uint8_t colorR,colorG,clorB,colorW; //RGB,亮度
uint8_t openState =1; //等效模式,默認(rèn)關(guān)燈
CRGB leds[NUM_LEDS]; //建立光帶leds
//RGB方法定義顏色
CRGB myRGBColor(255,255,255); //myRGBcolor (rValue,gValue,bValue)
//rValue:紅色數(shù)值0-255
//gValue:綠色數(shù)值0-255
//bValue:藍(lán)色數(shù)值0-255
//HSV方法定義顏色
CHSV myHSVcolor(80,255,200); //HSV方法定義顏色 myHSVcolor(色調(diào),飽和度,明亮度)
//自定義色盤
CRGBPalette16 myColorPalette = CRGBPalette16(
CRGB::Green, CRGB::Green,CRGB::Black,CRGB::Black,
//0-15 GREEN, 16-31GREEN, 32-47BLACK, 48-63BLAK,
CRGB::Purple, CRGB::Purple,CRGB::Black,CRGB::Black,
//64-79 Purple, 80-95Purple, 96-111BLACK,112-127BLAK,
CRGB::Green, CRGB::Green,CRGB::Black,CRGB::Black,
//128-143 GREEN,144-159GREEN,160-175BLACK,176-191BLAK,
CRGB::Purple, CRGB::Purple,CRGB::Black,CRGB::Black);
//192-207 GREEN,208-223GREEN,224-239BLACK,240-255BLAK,
CHSVPalette16 myHSVColorPalette =CHSVPalette16(
CHSV(0,255,200),CHSV(15,255,200),CHSV(31,255,200),CHSV(47,255,200),
CHSV(0,255,0), CHSV(15,255,0), CHSV(31,255,0), CHSV(47,255,0),
CHSV(0,255,200),CHSV(15,255,200),CHSV(31,255,200),CHSV(47,255,200),
CHSV(0,0,200), CHSV(15,0,200), CHSV(31,0,200), CHSV(47,0,200));
const TProgmemPalette16 myProgmemPalette PROGMEM ={
CRGB::Red,CRGB::Gray,CRGB::Blue,CRGB::Black,
CRGB::Red,CRGB::Gray,CRGB::Blue,CRGB::Black,
CRGB::Red,CRGB::Red,CRGB::Gray,CRGB::Gray,
CRGB::Blue,CRGB::Blue,CRGB::Black,CRGB::Black};
void setup() {
Serial.begin (9600);
LEDS.addLeds<LED_TYPE,LED_DT,COLOR_ORDER>(leds,NUM_LEDS); //初始化光帶
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
delay(20);
uint8_t i;
float Hum = dht.readHumidity();//濕度
float Tem = dht.readTemperature();//溫度
i = Tem/3;
//uint32_t color = strip.Color(RGB[ i][0], RGB[ i][1], RGB[ i][2]);
//for (uint16_t j = 0; j < MAX_LED; j++)
//{
//strip.setPixelColor(j, color);
//}
//strip.show();
}
錯(cuò)誤信息:
Arduino:1.8.13 (Windows 10), 開發(fā)板:"Arduino Uno"
項(xiàng)目使用了 5198 字節(jié),占用了 (16%) 程序存儲(chǔ)空間。最大為 32256 字節(jié)。
全局變量使用了471字節(jié),(22%)的動(dòng)態(tài)內(nèi)存,余留1577字節(jié)局部變量。最大為2048字節(jié)。
上傳項(xiàng)目出錯(cuò)
在文件 -> 首選項(xiàng)開啟
“編譯過程中顯示詳細(xì)輸出”選項(xiàng)
這份報(bào)告會(huì)包含更多信息。
那位大俠幫忙看下程序是否有錯(cuò)誤,方便的話幫我指正優(yōu)化一下,感謝無(wú)私您的無(wú)私奉獻(xiàn)!
|
|