はんだ付けなしで簡単な回路を作る Part2 ~ Arduino LV5 ~



前回のより多少だが複雑になる。

といってもまだまだLV5のレベルだ。 ガンガン行こう。

 

勇者Arduinoの前に がいこつ が現れた。

 

LV5で、がいこつ と遭遇。

果たして勝てるのか!? と思うが

LV5の勇者は攻撃系呪文のギラと回復系呪文のホイミを使える。

 

さぁっ 2つの呪文を駆使してがいこつとバトルだっ! 

 

 

 

そう、今回もそこまで難しくない。

以下の回路をArduinoを使って作る。

 

 

使用する部品は、Arduino Uno、LED x 2、抵抗510Ω x 2、ジャンパワイヤー3本。

 

完成図はこんな感じになる。

 

 

 

LEDが交互に点滅するスケッチを書いてみる。

 

 

#define LED_PIN1 9
#define LED_PIN2 10

// 初期化
void setup(){

  // LEDのピンを出力に
  pinMode(LED_PIN1, OUTPUT); 
  pinMode(LED_PIN2, OUTPUT); 

}

// メインループ
void loop() {

  // LED1を点灯
  digitalWrite(LED_PIN1, HIGH);

  // LED2を点灯
  digitalWrite(LED_PIN2, LOW);

  // 500ミリ秒遅延
  delay(500);

  // LED1を消灯
  digitalWrite(LED_PIN1, LOW);

  // LED2を消灯
  digitalWrite(LED_PIN2, HIGH);

  // 500ミリ秒遅延
  delay(500);

}

 

スケッチの内容をマイコンボードに書き込んだら、LEDが交互に点滅するはずだ。

どうだろう? 今回も難なくクリアー出来たはずだ。

 

では、スケッチの内容を少し変更してLEDの明るさを制御してみよう。

同じ回路で動作するので回路はそのままでよい。

 

#define LED_PIN1 9
#define LED_PIN2 10

// 初期化
void setup(){

  // LEDのピンを出力に
  pinMode(LED_PIN1, OUTPUT); 
  pinMode(LED_PIN2, OUTPUT); 

}

// メインループ
void loop() {

  // LED1を点灯
  digitalWrite(LED_PIN1, HIGH);

  // LED2を点灯
  digitalWrite(LED_PIN2, HIGH);

  // 1ミリ秒遅延
  delay(1);

  // LED1を消灯
  digitalWrite(LED_PIN1, LOW);

  // LED2を点灯
  digitalWrite(LED_PIN2, HIGH);

  // 15ミリ秒遅延
  delay(15);

}

 

実行してみると判る。

LED1がLED2に比べて暗いはずだ。

 

スケッチを見ても分かるようにLED1は点灯と消灯を短時間で繰り返している。

 

15ミリ秒という短い間隔で繰り返し処理(Loop)を行っているので、高速で点滅しているLED1は常時点灯しているLED2に比べて暗く見える。我々の肉眼では点滅しているようには見えないのだ。(ちなみに30ミリ秒あたりからチカチカしているのが肉眼で見えました)

 

ちなみに、このようなON/OFFの周期を変化させてアナログ的量を変化させる方法をPWM(Puls Width Modulation:7パルス幅変調)と呼ぶ。Arduino UnoでPWM出力に対応しているピンは、3、5、6、9、10、11になる。

 

次にPWMに関する スケッチを紹介する。 次のミッションをクリアーしてレベルアップせよ。










Leave a comment

Your email address will not be published.


*


(Spamcheck Enabled)