2012-07-09 75 views
0

我正在構建硬盤POV時鐘。 (谷歌它,它們很酷) 我正在爲它的代碼工作,現在我想要做的就是讓它使用RGB LED做簡單的模式。我想知道如果任何人有任何想法如何做一些簡單的事情,比如在盤子上​​做一條紅線旋轉。硬盤POV時鐘

現在我所擁有的是觸發函數的中斷。

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

你有*特定*問題嗎?簡單地徵求意見不太可能得到很多回應。此外,這是C還是C++? – bta 2012-07-10 21:22:51

+0

它既不是標準的C也不是C++。 Arduino的語言基本上是AVR-g ++目前支持的語言(http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_cplusplus)... – 2012-07-10 21:38:55

回答

0

嘗試在開啓LED之前在ledPattern開始處添加一個延遲,並在每次調用中斷時增加該延遲。要以特定角度顯示一條線,您需要測量後續中斷之間的時間間隔(LED所需的一整圈時間),並使該程序中的所有延遲與此時間成比例。請注意,如果添加了太多延遲,則在下一個中斷被調用時,程序將不會返回;否則,程序將不會返回到下一個中​​斷。你可能需要緩解這個問題,或者至少弄清arduino環境在這種情況下所做的。