ArduPilot:修订间差异
跳转到导航
跳转到搜索
创建页面,内容为“-- LED_LAW.lua CH7 三段:关 / 导航+低压闪 / 全白补光 -- by 大小姐 local NUM_LED = 16 local CH7 = 7 -- 7通道三段开关 local INTERVAL = 100 -- 5 Hz local V_LOW = 3.7 local chan = SRV_Channels:find_channel(94) if not chan then gcs:send_text(6, "LED: CH94 not set") return end chan = chan + 1 serialLED:set_num_neopixel(chan, NUM_LED) local flashOn = false local function update() local pwm = rc:get_pwm(C…” |
(没有差异)
|
2025年10月17日 (五) 00:26的最新版本
-- LED_LAW.lua CH7 三段:关 / 导航+低压闪 / 全白补光 -- by 大小姐 local NUM_LED = 16 local CH7 = 7 -- 7通道三段开关 local INTERVAL = 100 -- 5 Hz local V_LOW = 3.7
local chan = SRV_Channels:find_channel(94) if not chan then
gcs:send_text(6, "LED: CH94 not set") return
end chan = chan + 1 serialLED:set_num_neopixel(chan, NUM_LED)
local flashOn = false
local function update()
local pwm = rc:get_pwm(CH7) or 1500 local v = battery:voltage(0) flashOn = not flashOn
-- 三段开关逻辑
if pwm < 1200 then -- 下档:全灭
for i = 0, 15 do serialLED:set_RGB(chan, i, 0, 0, 0) end
elseif pwm > 1700 then -- 上档:全白补光
for i = 0, 15 do serialLED:set_RGB(chan, i, 255, 255, 255) end
else -- 中档:导航 + 低压红闪
if v <= V_LOW and flashOn then
for i = 0, 15 do serialLED:set_RGB(chan, i, 255, 0, 0) end
elseif v <= V_LOW then
for i = 0, 15 do serialLED:set_RGB(chan, i, 0, 0, 0) end
else
for i = 0, 3 do serialLED:set_RGB(chan, i, 255, 0, 0) end
for i = 4, 7 do serialLED:set_RGB(chan, i, 0, 255, 0) end
for i = 8, 15 do serialLED:set_RGB(chan, i, 255, 255, 255) end
end
end
serialLED:send(chan) return update, INTERVAL
end
return update()