硬盘POV时钟

时间:2012-07-09 15:50:31

标签: arduino

我正在构建一个硬盘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要求的东西) 我想弄清楚的是如何使切片围绕盘片旋转。 最后,我会通过添加其他颜色来使图案更有趣。

任何想法?

1 个答案:

答案 0 :(得分:0)

尝试在打开LED之前在ledPattern的开头添加延迟,并在每次调用中断时增加延迟。要以特定角度显示直线,您需要测量后续中断之间的时间(LED整转一周所需的时间),并使ledPattern例程中的所有延迟与此时间成比例。 / p>

请注意,如果添加了太多延迟,则在调用下一个中断时,ledPattern例程将不会返回;您可能需要缓解这个问题,或者至少解决arduino环境在这种情况下正在做的事情。