【发布时间】:2021-12-27 22:18:23
【问题描述】:
我有一条 WS2811 可寻址 RGB LED,我正在尝试使用我的树莓派来控制它们。我正在用java编程。 为了访问 GPIO,我使用了一个名为 Pi4j(版本 1.2;java 8)的 java 库。 此版本内置 PWM 控制。
我的问题如下: 如何通过 GPIO 引脚将数据发送到 LED?
(我还是个物理计算的初学者,所以请温柔)
【问题讨论】:
标签: java raspberry-pi pwm pi4j
我有一条 WS2811 可寻址 RGB LED,我正在尝试使用我的树莓派来控制它们。我正在用java编程。 为了访问 GPIO,我使用了一个名为 Pi4j(版本 1.2;java 8)的 java 库。 此版本内置 PWM 控制。
我的问题如下: 如何通过 GPIO 引脚将数据发送到 LED?
(我还是个物理计算的初学者,所以请温柔)
【问题讨论】:
标签: java raspberry-pi pwm pi4j
我之前没有在 Pi 上直接使用过 NeoPixels(尽管我曾多次使用 FadeCandy 这是一个 USB LED 控制器,它也可以进行一些不错的抖动/帧混合)。
驱动 NeoPixels 不像单个 LED 上的普通 PWM 那样简单。
有一个很好的Adafruit RaspberryPi NeoPixel wiring/coding tutorial。 关于接线/电源的说明非常有用。尽管代码是用 Python 编写的, 测试/运行仍然有用。
快速浏览一下 pi4j 文档,虽然它包含所有“成分”,但它没有内置对 NeoPixels 的支持。 快速搜索我发现the diozero library 似乎有support for NeoPixels。
我还没有测试过diozero,但值得一试。
【讨论】:
WS281x 类完成一些事情。我会先尝试最简单的构造函数 (WS281x(int gpioNum, int brightness, int numPixels) ;),然后尝试调用 setPixelColour(int pixel, int colour) 将第一个 LED 设置为绿色的“闪烁”测试,然后调用 render() 将像素数据发送到条带,设置绿色LED 关闭,render() 并重复...