2017-07-11 75 views
-1

我試圖按照out1中的公式來更改LED的亮度。我很確定有什麼地方出了問題,因爲它並沒有真正改變它的亮度,它從來沒有停止過亮。它應該基本上做一樣的比罪惡的波浪,但不是罪,我嘗試使用我的等式!LED亮度的多項式變化

const int LED = 11; 
const int LED1 = 10; 
const int LED2 = 9; 

void setup() 
{ 
} 

void loop() 
{ 
    float in1, out1, out2, out3; 

for (in1 = 0; in1 < 10; in1++) 
{ 
out1 = 8.8 * pow(10,-4) * pow(in1,4) - 0.0034 * pow(in1,3) +0.37 * pow(in1,2) -6.7 *in1 +1.7 *pow(10,2); 
//out2 = 1.207*pow(in1,4)-0.0011*pow(in1,3)+0.16*pow(in1,2)-5.5*in1+2,0763; 
//out3 = 4.829*pow(in1,4)-0.034*pow(in1,3)+0.37*pow(in1,2)-6.7*in1+2,076; 

analogWrite(LED,out1); 
//delay(1); 
//analogWrite(LED1,out2); 
//analogWrite(LED2,out3); 

} 

analogWrite(LED,LOW); 

/*analogWrite(LED,out1); 
analogWrite(LED1,out2); 
analogWrite(LED2,out3); 
//analogWrite(LED1,LOW);*/ 
delay(500); 
+2

另外檢查[圖](http://www.wolframalpha.com/input/?i=8.8e-4+*+x^4+-+0.0034+*+x^3+%2B+ 0.37 + * + x^2 + - + 6.7 + * + x +%2B + 1.7e2,+ x +%3D + 0 + to + 10) - 我不確定在140-170的輸出範圍內人們可以看到LED亮度的差異。 – Lyth

+0

這可能是可能的,但我如何操作我的功能,以便我可以看到差異。我也想知道爲什麼它永遠不會減輕。 – gamma

+0

out1,out2和out3連接到RGB LED的三個引腳? – TomServo

回答

1

儘管您的循環使用浮點,但從人類角度而言,它仍將運行得非常快。在每次更改之後建議延遲開始。

for (in1 = 0; in1 < 10; in1++) 
{ 
    out1 = 8.8 * pow(10,-4) * pow(in1,4) - 0.0034 * pow(in1,3) +0.37 * pow(in1,2) -6.7 *in1 +1.7 *pow(10,2); 
    analogWrite(LED,out1); 
    delay(2000); 
} 

如果這是一個RGB主導,我們只是改變一個引腳的值,以延遲是明顯的你可能會在這裏看到一個小的改變人的眼睛。儘管170和140的亮度仍然很難辨別。