はんだ付けなしで簡単な回路を作る 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