我一直在使用 Raspberry Pi 和 Golang 來制作一些 WS2812 LED 的動畫。我一直在使用 rpi-ws281x-go ( https://github.com/rpi-ws281x/rpi-ws281x-go ) 庫,它是一個圍繞 C 庫的 Go 包裝器 ( https://github.com/jgarff /rpi_ws281x)。我對 C 不是很熟悉,更不用說 C 庫的 Go 包裝器了。我可以看到在 C 代碼中,我可以訪問和更改每次調用渲染函數(shù)時應用的 LED 的亮度。但是,在 Go 包裝器庫中,我看不到訪問該變量的方法。我可以看到,當我調用 ws2811.MakeWS2811(&opt) 時,我可以在 opt 結構中設置亮度。調用 MakeWS2811() 后如何更改亮度?我知道如何在我自己的 Go 動畫函數(shù)中應用我自己的亮度,但這似乎是多余的,因為 C 函數(shù)將做同樣的事情。
1 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
確實有一個指針,但看起來它復制了 C 中的選項。
然而,返回的實例有一個Leds(nChannel)方法,可以直接訪問設置 LED 的顏色。您可以降低顏色值以降低亮度(大約)。
...
opt.Channels[0].Brightness = ... original value 0 to 255
ws, err := MakeWS2811(&opts)
...
ws.Leds(0)[0] = 0xff //bright red
ws.Leds(0)[1] = 0x7f //half as bright
ws.Render()
請注意,每次 C 庫呈現(xiàn)時,它仍會按原始亮度縮放您設置的顏色。
- 1 回答
- 0 關注
- 120 瀏覽
添加回答
舉報
0/150
提交
取消