【发布时间】:2022-01-14 19:12:49
【问题描述】:
我正在做一个小项目,我希望看到使用带有 PI 4 的 NEOPIXEL WS2812B 来实现。我想我可能会遇到硬件限制,我很好奇它周围是否有任何问题。这是我正在使用的代码
void send1()
{
//T1H
digitalWrite(DATA, HIGH);
//usleep(0.85);
//T1L
digitalWrite(DATA, LOW);
//usleep(0.4);
}
如您所见,我已经注释掉了 usleep 的内容,因为我遇到了时间问题,我想看看我可以获得的最大切换速度。
这样我得到了大约 1.200us 的切换速度。 Neopixels 需要 0.4 和 0.85us 的切换速度才能正常工作。有没有人有任何建议可以帮助降低这个数字?我只是使用普通的 gpio pin。我对玩 pi 比较陌生,所以我不知道所有的技巧。
我确实在 pinout.xyz 上看到了这个
GPIO 18 的 PWM0 输出特别有用,结合 一些快速、直接的内存访问技巧,用于驱动具有 非常具体的时间。 Unicorn HAT 上的 WS2812 LED 非常好 实际操作中的示例。
这似乎很有希望,因为我使用的 LED 型号相同。但它并没有真正说明更多的技巧。
【问题讨论】:
-
我自己没有测试过这个,但我很确定neopixels可以与树莓派一起使用。由于以上是您可以获得的最快速度(我假设您正在使用wiringpi?),这应该没问题。你能分享提到所需切换速度的部分吗?
-
第一步是转到内核驱动程序,以防您在此硬件上运行操作系统。如果没有帮助,您需要确保您的操作系统支持实时操作。
标签: raspberry-pi gpio raspberry-pi4