このページの本文へ

前へ 1 2 3 次へ

秋の夜長に楽しむ電子工作 “Lチカ”から1歩先へ

40代、Arduinoをイチから始めてみる【Arduinoいまさら超入門】

2016年09月09日 09時00分更新

文● 宮里圭介 編集●北島幹雄/ASCII STARTUP

  • この記事をはてなブックマークに追加
  • 本文印刷

ステップ3:3分経ったらブザーで通知するよう改造

 ステップ2でかなりタイマーらしいものになってきましたが、LEDを見ていないと、いつカウントダウンが終わったのかわからないというのは不便です。そこでもう少し改造して、カウントダウンが終わったらブザーを鳴らすようにしてみましょう。今回使うブザーは、電圧をかけると「ビー」と鳴るだけのシンプルなものです。

 まずはハードの改造です。ステップ2のスイッチとほぼ同じで、ブザーを7番ピンとGNDとに接続します。

 続いてソフトの改造です。今回はブザー「BZ」を出力として追加しました。

// 使用するピンを設定
int LED_1 = 13;
int LED_2 = 12;
int LED_3 = 8;
int SW = 2;
int BZ = 7;

void setup() {
  // ピンのモードを設定
  pinMode(LED_1, OUTPUT);
  pinMode(LED_2, OUTPUT);
  pinMode(LED_3, OUTPUT);
  pinMode(SW, INPUT_PULLUP);
  pinMode(BZ, OUTPUT);
}

void loop() {
  while (digitalRead(SW) == HIGH){}
                             //スイッチが押されるのを待つ
  digitalWrite(LED_1, HIGH);  //LED_1を光らせる
  digitalWrite(LED_2, HIGH);  //LED_2を光らせる
  digitalWrite(LED_3, HIGH);  //LED_3を光らせる

  delay(60000);              //1分待つ
  digitalWrite(LED_1, LOW);   //LED_1を消灯

  delay(60000);              //1分待つ
  digitalWrite(LED_2, LOW);   //LED_2を消灯

  delay(60000);              //1分待つ
  digitalWrite(LED_3, LOW);   //LED_3を消灯

  digitalWrite(BZ, HIGH);     //ブザーを鳴らす
  delay(3000);               //3秒待つ
  digitalWrite(BZ, LOW);      //ブザーを消す

  delay(3000);              //終了後、3秒待つ
}

 BZはブザーを接続している7番ピン、ピンのモードは「OUTPUT」に設定。あとは3分のカウントダウンが終わった後でブザーを鳴らすという、簡単な改造です。ブザーを鳴らすのはLEDを光らせる場合と同じなので、詳しく解説するまでもないでしょう。

 1分経つごとに短時間ブザーを鳴らすといった改造も簡単にできますので、試してみると面白いと思います。

ステップ4:ブザー音ではなくメロディーを流す

 これでほぼ3分タイマーとしては十分な動作になったかと思いますが、ブザーで知らせるだけではあまりにもシンプル過ぎて、ちょっとつまらないですよね。ということで、最後の改造として、ブザーではなくメロディを鳴らすようにしてみましょう。

 まずはハードの改造ですが、これはブザーを圧電スピーカーに変更しているだけです。

 続いてソフトを改造しましょう。ブザーとは違い、ドやレ、ミといった音の高さまで指定できるのがポイントとなります。

// 使用するピンを設定
int LED_1 = 13;
int LED_2 = 12;
int LED_3 = 8;
int SW = 2;
int SPK = 7;

void setup() {
  // ピンのモードを設定
  pinMode(LED_1, OUTPUT);
  pinMode(LED_2, OUTPUT);
  pinMode(LED_3, OUTPUT);
  pinMode(SW, INPUT_PULLUP);
  pinMode(SPK, OUTPUT);
}

void loop() {
  while (digitalRead(SW) == HIGH){}
                               //スイッチが押されるのを待つ
  digitalWrite(LED_1, HIGH);    //LED_1を光らせる
  digitalWrite(LED_2, HIGH);    //LED_2を光らせる
  digitalWrite(LED_3, HIGH);    //LED_3を光らせる

  delay(60000);                //1分待つ
  digitalWrite(LED_1, LOW);     //LED_1を消灯

  delay(60000);                //1分待つ
  digitalWrite(LED_2, LOW);     //LED_2を消灯

  delay(60000);                //1分待つ
  digitalWrite(LED_3, LOW);     //LED_3を消灯

  while (digitalRead(SW) == HIGH){
                               //スイッチがオンになるまでメロディーをループ
    tone(SPK, 784, 250);          //メロディーを流す
    delay(250);
    tone(SPK, 698, 250);
    delay(250);
    tone(SPK, 784, 250);
    delay(500);
  }

  delay(3000);              //終了後、3秒待つ
}

 改造した部分はブザー(BZ)をスピーカー(SPK)にしたことと、最後のブザーを鳴らすところです。ステップ3ではブザーを鳴らして終わりでしたが、今回はスイッチが押されるまでメロディーを流し続ける、というものに変更しました。

 音の高さは「tone()」で指定できます。例えば「tone(SPK, 784, 250)」では、スピーカーの接続されたピンに対し、785Hzの音(ソ)を250ミリ秒出力する、というものになります。

 続くdelay()は、音が鳴っている間待つためのものです。これがないとスピーカーから次々音が再生されてしまい、何の音か聞き取れません。LEDを点滅させるときの間と同じようなものですね。

 これを動かすと、某店アルバイト経験者なら心をかき乱されるメロディが流れるはずです。

改造を繰り返すことで楽しく続けられる!

 単純にLEDを光らせるだけというLチカですが、これを元に改造していくだけで3分タイマーのような実用的なものが作れるのですから、バカにできません。ここからさらに改造して、たとえばGenuino 101であれば搭載されている加速度センサーを利用し、スイッチのかわりに本体を振ることでタイマーをスタートさせるとか、入力を強化して3分以外の時間も設定できるキッチンタイマーにするとか、表示を7セグメントLEDにするとか、目覚まし時計にするとか、夢はどんどん広がっていきます。

 Arduinoのいいところは、ハード・ソフトともに多くの情報が公開されていることです。今回の3分タイマーもそうですが、まず簡単なものを真似して作り、そこから自分好みに改造していくというのが再入門に最適な方法といえるでしょう。イチから作るのは難しくても、改造ならハードルが低くなりますからね!

Image from Amazon.co.jp
intel Genuino 101 Bluetooth開発ボード、Arduinoの互換性 6軸センサ

■関連サイト
Arduino.org

提供:インテル

前へ 1 2 3 次へ

カテゴリートップへ

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
2
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥660
3
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
4
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
5
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,780
6
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
¥18,980
7
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
8
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
9
Amazon Kindle - 目に優しい、かさばらない、大きな画面で読みやすい、6週間持続バッテリー、6インチディスプレイ電子書籍リーダー、ブラック、16GB、広告なし
Amazon Kindle - 目に優しい、かさばらない、大きな画面で読みやすい、6週間持続バッテリー、6インチディスプレイ電子書籍リーダー、ブラック、16GB、広告なし
¥13,980
10
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,645

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン