「ホタログ5」の編集履歴(バックアップ)一覧はこちら
ホタログ5 - (2007/07/27 (金) 15:55:44) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
**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);
}
}}
-デジタル制御の方法
(未)
>&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.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);
}
}}
-デジタル制御の方法
(未)
>&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)