0

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

有任何想法吗?

4

1 回答 1

0

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

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

于 2012-07-10T21:26:04.233 回答