「ホタログ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)