我正在构建一个硬盘POV时钟。 (谷歌,他们很酷) 我正在研究它的代码,现在我想要做的就是让它用RGB LED做简单的模式。我想知道是否有人对如何做一些简单的事情有任何想法,比如让红线在盘子周围旋转。
现在我所拥有的是一个触发函数的中断。
int gLED = 8; // pins for RGB led strip
int rLED = 9;
int bLED = 10;
attachInterrupt(0, ledPattern, FALLING);
void ledPattern(){
digitalWrite(gLED, HIGH); // This will make a stable image of slice of the
delayMicroseconds(500); // platter, but it does not move.
digitalWrite(gLED, LOW);
}
这是代码的主要部分(显然我删除了一些arduino要求的东西) 我想弄清楚的是如何使切片围绕盘片旋转。 最后,我会通过添加其他颜色来使图案更有趣。
任何想法?
答案 0 :(得分:0)
尝试在打开LED之前在ledPattern
的开头添加延迟,并在每次调用中断时增加延迟。要以特定角度显示直线,您需要测量后续中断之间的时间(LED整转一周所需的时间),并使ledPattern
例程中的所有延迟与此时间成比例。 / p>
请注意,如果添加了太多延迟,则在调用下一个中断时,ledPattern
例程将不会返回;您可能需要缓解这个问题,或者至少解决arduino环境在这种情况下正在做的事情。