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

MMTTMM
TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
確實(shí)有一個(gè)指針,但看起來它復(fù)制了 C 中的選項(xiàng)。
然而,返回的實(shí)例有一個(gè)Leds(nChannel)方法,可以直接訪問設(shè)置 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)時(shí),它仍會按原始亮度縮放您設(shè)置的顏色。
- 1 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報(bào)
0/150
提交
取消