「ホタログ5」の編集履歴(バックアップ)一覧はこちら

ホタログ5」(2007/07/29 (日) 00:57:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**2007.7.28 -&bold(){LEDの明るさ} pwm制御しているのだけど、メモ。 High:Lowで、Highの値を大きくするとクオリティ高くなると一瞬思う。 -try1 --明るめ、3:1だと見やすい。(単位msec) --暗め、3:30だともうかなり醜い。 -try2 --明るめ、10:1だと見やすい。 --暗め、10:12の時点で醜い。 どのような値だと一番美しく見えるか、研究中です。何か知ってる方いればコメントお願いします。 ここが参考になりそうな気がしている。[[Sim's blog―PWMでLEDぼわっと>http://blog.goo.ne.jp/sim00/e/33db7da499308eda8db2a8fb6646afca]] 明るさ確認用プログラム #highlight(c){{ /* Blinking LED -> firefly * ------------ */ int ledPin = 10; // LED connected to digital pin 10 int i = 0; int d = 15; int PW1,PW2; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { PW1 = 3; PW2 ++; Serial.println(PW2); for(i=0;i<=100;i++){ digitalWrite(ledPin, HIGH);// sets the LED on delay(PW1);// waits for 10-PW (PW=1000 -> 1sec) digitalWrite(ledPin, LOW);// sets the LED off delay(PW2); } } }} >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.7.27 -&bold(){違うアルゴリズム} 値を処理し、LEDを制御するための、今までのとは違うアルゴリズムを思いついたので、それをやってみようと思う。 -&bold(){そのためのメモ} 不安定なので絶対やらないが、LEDアナログ制御の方法メモ (LED 明→暗/analogWright 1→255) #highlight(c){{ /* * Code for cross-fading 3 LEDs, red, green and blue, * or one tri-color LED, using PWM * The program cross-fades slowly from red to green, * green to blue, and blue to red * The debugging code assumes Arduino 0004, * as it uses the new Serial.begin()-style functions * Clay Shirky <clay.shirky@nyu.edu> の、改版 */ // Output int redPin = 10; int greenPin = 11; int bluePin = 12; // Program variables int redVal = 255; int greenVal = 1; int blueVal = 1; int i = 0; int wait = 50; void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); Serial.begin(9600); } // Main program void loop() { i += 1; // Increment counter if (i < 255) // First phase of fades { redVal -= 1; // Red down greenVal += 1; // Green up blueVal = 1; // Blue low } else if (i < 509) // Second phase of fades { redVal = 1; // Red low greenVal -= 1; // Green down blueVal += 1; // Blue up } else if (i < 763) // Third phase of fades { redVal += 1; // Red up greenVal = 1; // Green low blueVal -= 1; // Blue down } else // Re-set the counter, and start the fades again { i = 0; } // Write current values to LED pins analogWrite(redPin, redVal); analogWrite(greenPin, greenVal); analogWrite(bluePin, blueVal); delay(wait); Serial.println(redVal); } }} -デジタル制御の方法 (LED 明→暗/digitalWright H1,L1 → H1,L20 → H0) #highlight(c){{ int ledPin = 10; int previousMillis = 0; int value = LOW; int interval = 1000; long i=0; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { // pwm操作 digitalWrite(ledPin, HIGH); // sets the LED on delay(1); digitalWrite(ledPin, LOW); // sets the LED off delay(5); digitalWrite(ledPin, value); } }} -いや、平均値計算を違う方法にしてみようかなぁ。 で、実行してみたところ、ノイズは相変わらずだったけど、&color(red){やばいくらいに操作性が高くなった}! >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.7.26 -&bold(){見切りについて} 思い切って見切りをつけたのはいいが、良い解決策が思い浮かばない。 結局LED制御もマイコン使わないと駄目なんじゃ・・・とか思いつつ。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.7.24 -&bold(){見切り} 思い切って、実装の方法を違う方法にしました。 なぜなら、プログラム実行速度の不安定さが解消されないから! #image(プログラム速度.JPG) 図7.24 プログラムの実行速度 -&bold(){今まで} ■プログラム部分 #highlight(c){{ 平均取るforループ{   平均値計算   黄色LED制御    (1)点灯 or (2)消灯   赤、青色LED制御    (3)赤色LED点灯、青色LED消灯    (4)赤色LED消灯、青色LED点灯 } 平均値を使って、温度が上昇しているか下降しているか判断{   上昇していたらLED点灯(1)へ   下降していたらLED消灯(2)へ } 平均値を使って最大値を計算 振幅幅が減少したら赤色LED点灯、青色LED消灯(3)へ 振幅幅が増加したら赤色LED消灯、青色LED点灯(4)へ }} -&bold(){これから} ■プログラム部分 #highlight(c){{ 平均取るforループ{   平均値計算 } 平均値を使って、温度が上昇しているか下降しているか判断{   上昇していたらLED点灯(1)へ   下降していたらLED消灯(2)へ } 平均値を使って最大値を計算 振幅幅が減少したら赤色LED点灯、青色LED消灯(3)へ 振幅幅が増加したら赤色LED消灯、青色LED点灯(4)へ }} ■実装部分 #highlight(c){{ 黄色LED制御    (1)点灯 or (2)消灯   赤、青色LED制御    (3)赤色LED点灯、青色LED消灯    (4)赤色LED消灯、青色LED点灯 }} >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- ---- today: &counter(today) yesterday: &counter(yesterday)
**2007.7.28 -&bold(){LEDの明るさ} pwm制御しているのだけど、メモ。 High:Lowで、Highの値を大きくするとクオリティ高くなると一瞬思う。 -try1 --明るめ、3:1だと見やすい。(単位msec) --暗め、3:30だともうかなり醜い。 -try2 --明るめ、10:1だと見やすい。 --暗め、10:12の時点で醜い。 どのような値だと一番美しく見えるか、研究中です。何か知ってる方いればコメントお願いします。 今、ここが参考になりそうな気がしている。[[Sim's blog―PWMでLEDぼわっと>http://blog.goo.ne.jp/sim00/e/33db7da499308eda8db2a8fb6646afca]] 明るさ確認用プログラム #highlight(c){{ /* Blinking LED -> firefly * ------------ */ int ledPin = 10; // LED connected to digital pin 10 int i = 0; int d = 15; int PW1,PW2; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { PW1 = 3; PW2 ++; Serial.println(PW2); for(i=0;i<=100;i++){ digitalWrite(ledPin, HIGH);// sets the LED on delay(PW1);// waits for 10-PW (PW=1000 -> 1sec) digitalWrite(ledPin, LOW);// sets the LED off delay(PW2); } } }} >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.7.27 -&bold(){違うアルゴリズム} 値を処理し、LEDを制御するための、今までのとは違うアルゴリズムを思いついたので、それをやってみようと思う。 -&bold(){そのためのメモ} 不安定なので絶対やらないが、LEDアナログ制御の方法メモ (LED 明→暗/analogWright 1→255) #highlight(c){{ /* * Code for cross-fading 3 LEDs, red, green and blue, * or one tri-color LED, using PWM * The program cross-fades slowly from red to green, * green to blue, and blue to red * The debugging code assumes Arduino 0004, * as it uses the new Serial.begin()-style functions * Clay Shirky <clay.shirky@nyu.edu> の、改版 */ // Output int redPin = 10; int greenPin = 11; int bluePin = 12; // Program variables int redVal = 255; int greenVal = 1; int blueVal = 1; int i = 0; int wait = 50; void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); Serial.begin(9600); } // Main program void loop() { i += 1; // Increment counter if (i < 255) // First phase of fades { redVal -= 1; // Red down greenVal += 1; // Green up blueVal = 1; // Blue low } else if (i < 509) // Second phase of fades { redVal = 1; // Red low greenVal -= 1; // Green down blueVal += 1; // Blue up } else if (i < 763) // Third phase of fades { redVal += 1; // Red up greenVal = 1; // Green low blueVal -= 1; // Blue down } else // Re-set the counter, and start the fades again { i = 0; } // Write current values to LED pins analogWrite(redPin, redVal); analogWrite(greenPin, greenVal); analogWrite(bluePin, blueVal); delay(wait); Serial.println(redVal); } }} -デジタル制御の方法 (LED 明→暗/digitalWright H1,L1 → H1,L20 → H0) #highlight(c){{ int ledPin = 10; int previousMillis = 0; int value = LOW; int interval = 1000; long i=0; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { // pwm操作 digitalWrite(ledPin, HIGH); // sets the LED on delay(1); digitalWrite(ledPin, LOW); // sets the LED off delay(5); digitalWrite(ledPin, value); } }} -いや、平均値計算を違う方法にしてみようかなぁ。 で、実行してみたところ、ノイズは相変わらずだったけど、&color(red){やばいくらいに操作性が高くなった}! >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.7.26 -&bold(){見切りについて} 思い切って見切りをつけたのはいいが、良い解決策が思い浮かばない。 結局LED制御もマイコン使わないと駄目なんじゃ・・・とか思いつつ。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.7.24 -&bold(){見切り} 思い切って、実装の方法を違う方法にしました。 なぜなら、プログラム実行速度の不安定さが解消されないから! #image(プログラム速度.JPG) 図7.24 プログラムの実行速度 -&bold(){今まで} ■プログラム部分 #highlight(c){{ 平均取るforループ{   平均値計算   黄色LED制御    (1)点灯 or (2)消灯   赤、青色LED制御    (3)赤色LED点灯、青色LED消灯    (4)赤色LED消灯、青色LED点灯 } 平均値を使って、温度が上昇しているか下降しているか判断{   上昇していたらLED点灯(1)へ   下降していたらLED消灯(2)へ } 平均値を使って最大値を計算 振幅幅が減少したら赤色LED点灯、青色LED消灯(3)へ 振幅幅が増加したら赤色LED消灯、青色LED点灯(4)へ }} -&bold(){これから} ■プログラム部分 #highlight(c){{ 平均取るforループ{   平均値計算 } 平均値を使って、温度が上昇しているか下降しているか判断{   上昇していたらLED点灯(1)へ   下降していたらLED消灯(2)へ } 平均値を使って最大値を計算 振幅幅が減少したら赤色LED点灯、青色LED消灯(3)へ 振幅幅が増加したら赤色LED消灯、青色LED点灯(4)へ }} ■実装部分 #highlight(c){{ 黄色LED制御    (1)点灯 or (2)消灯   赤、青色LED制御    (3)赤色LED点灯、青色LED消灯    (4)赤色LED消灯、青色LED点灯 }} >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- ---- today: &counter(today) yesterday: &counter(yesterday)

表示オプション

横に並べて表示:
変化行の前後のみ表示: