我是Arduino的新手,我想控制兩個設備:
- 可以改變顏色的RGB LED燈條
- 一盞燈可以檢測環境光水平的傳感器 ol>
我想做的是讓LED燈條連續不斷地循環通過彩虹的顏色,並且光傳感器將調整LED的亮度根據環境光線水平這是我自己單獨測試的兩段代碼,並確認它們可以正常工作:
LED燈條:
j =(j + 1 )%256; //當前光週期的迭代// //設置條帶顏色for(int i = 0; i< strip.numPixels(); i ++){strip.setPixelColor(i,Wheel((((i * 256 / strip.numPixels()) + j)& 255));} //顯示新的顏色,並在下一個周轉之前等待20ms。show(); delay(20);
光傳感器:
sensors_event_t事件; tsl.getEvent(&event); //獲得光照測量值trip.setBrightness(event.light); //設置LED燈條的亮度
問題是光傳感器需要100ms到600ms的時間來獲取讀數,並且 tsl.getEvent(&event)
是一個阻塞的調用,因此最終結果是LED燈帶的更新速度太慢。我需要將兩者並排運行,以便光傳感器讀取不會阻止LED燈條更新。知道我怎麼能做到嗎?