为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
回首忆惘然 2023-06-19 16:58:07
我一直在使用 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 函数将做同样的事情。
查看完整描述

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 库呈现时,它仍会按原始亮度缩放您设置的颜色。



查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信