先のエントリー「今日も Arduino のテスト中」に書いたように、Arduino のデジタル I/O の 3, 5, 6, 9, 10, 11 ピンは、PWM(Pulse Width Modulation)による電圧コントロールが出来る。
試しに、3番ピンに LED をつなぎ、以下のようなプログラムを書いてみた。
1秒(1,000ミリ秒)毎に 3番ピンの出力(電圧)を 4.0Vと 1.0Vで交互に設定する。
4.0Vの時は明るく、
1.0Vの時は暗い。
おお、ばっちりや。
ちなみに、デジタル I/O ピンを PWM で電圧コントロールする時、出力電圧は 0~255の値で指定する。
デジタル I/O は 5V 出力なので、最大数の 5V が 255 である。つまり、51 と指定すればその 1/5 なので 1V で出力しろということだ。
4V、1V で設定をしているということをわかりやすくするために、わざわざ
としているが、これはベタに
と書いても良い。
試しに、3番ピンに LED をつなぎ、以下のようなプログラムを書いてみた。
const int V_OUT1 = (int) 4.0 * 51; // 4.0V
const int V_OUT2 = (int) 1.0 * 51; // 1.0V
void setup() {
}
void loop() {
analogWrite(3, V_OUT1);
delay (1000);
analogWrite(3, V_OUT2);
delay (1000);
}
1秒(1,000ミリ秒)毎に 3番ピンの出力(電圧)を 4.0Vと 1.0Vで交互に設定する。
4.0Vの時は明るく、
1.0Vの時は暗い。
おお、ばっちりや。
ちなみに、デジタル I/O ピンを PWM で電圧コントロールする時、出力電圧は 0~255の値で指定する。
デジタル I/O は 5V 出力なので、最大数の 5V が 255 である。つまり、51 と指定すればその 1/5 なので 1V で出力しろということだ。
4V、1V で設定をしているということをわかりやすくするために、わざわざ
const int V_OUT1 = (int) 4.0 * 51; // 4.0V
const int V_OUT2 = (int) 1.0 * 51; // 1.0V
としているが、これはベタに
const int V_OUT1 = 204; // 4.0V
const int V_OUT2 = 51; // 1.0V
と書いても良い。
さて、出力関係は何となくわかってきたので、今度はセンサーからの入力をテストするか。
電気ウナギ的○○
About Backコメント(0)
電気ウナギ的○○