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をつなげてそっちに出力するように設定

#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
}

コードをいじって、光らせることに成功

ついでなんで、可変抵抗の値を読んで間隔を調整するようにしてみた

#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
}

これでLEDの点滅間隔の調整に成功。
あとはこれをLEDじゃなくてモータードライバに出力すれば簡易コントローラーのできあがりかな。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください