有没有办法在调用 MakeWS2811() 后修改 rpi-ws281x-go

我一直在使用 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 代码中,我可以访问和更改每次调用渲染函数时应用的 LED 的亮度。但是,在 Go 包装器库中,我看不到访问该变量的方法。我可以看到,当我调用 ws2811.MakeWS2811(&opt) 时,我可以在 opt 结构中设置亮度。调用 MakeWS2811() 后如何更改亮度?

我知道如何在我自己的 Go 动画函数中应用我自己的亮度,但这似乎是多余的,因为 C 函数将做同样的事情。


回首忆惘然
浏览 79回答 1
1回答

MMTTMM

确实有一个指针,但看起来它复制了 C 中的选项。然而,返回的实例有一个Leds(nChannel)方法,可以直接访问设置 LED 的颜色。您可以降低颜色值以降低亮度(大约)。...opt.Channels[0].Brightness = ... original value 0 to 255ws, err := MakeWS2811(&opts)...ws.Leds(0)[0] = 0xff //bright redws.Leds(0)[1] = 0x7f //half as brightws.Render()请注意,每次 C 库呈现时,它仍会按原始亮度缩放您设置的颜色。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go