Arduinoを触ってみた

前にarduinoで楽しむ鉄道模型の本と実験基板を買ってたけど、昨日電源ケーブルを買ってきたので触ってみた。

まずはarduinoのホームページから開発環境をダウンロードしてインストール。
USBライタを基板とつなげてPCに挿したら、電源が入った……
arduino側は電源いらなかったかな?PCから切り離した後起動するのには必要だけど。
とりあえず書籍に従ってBlinkのプログラムをビルドして書き込もうとしたけど、

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8d

というエラーが出て書き込めない。
いろいろ調べたところ、IDEはCOM1に書き込もうとしてるけど、実際にはCOM3にするべきだったという話。
で、COM3を見るように設定したところ、書き込みには成功したんだけど、基板に反応がない。
というか、LED_BUILTIN自体、なさそう……
というかこの本、連動企画と言いつつ基板には一切触れないんだよなぁ……普通のarduinoはよく出てくるんだけど、実験基盤が全く出てこない……
しょうがないので、実験基板のLEDをつなげてそっちに出力するように設定
[c]
#define LED_PIN 2
void setup() {
// initialize digital pin LED_BUILTIN as an output.
//pinMode(LED_BUILTIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_PIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
[/c]
コードをいじって、光らせることに成功


ついでなんで、可変抵抗の値を読んで間隔を調整するようにしてみた
[c]
#define LED_PIN 2
void setup() {
// initialize digital pin LED_BUILTIN as an output.
//pinMode(LED_BUILTIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}
// the loop function runs over and over again forever
void loop() {
float value = analogRead(A1) / 100.0f; // 可変抵抗読み取り
Serial.println(value);
if (value < 1.0f) {
digitalWrite(LED_PIN, LOW);
delay(1);
return;
}
digitalWrite(LED_PIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000.0f / value); // wait for a second
digitalWrite(LED_PIN, LOW); // turn the LED off by making the voltage LOW
delay(1000.0f / value); // wait for a second
}
[/c]
これでLEDの点滅間隔の調整に成功。
あとはこれをLEDじゃなくてモータードライバに出力すれば簡易コントローラーのできあがりかな。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です