クリエイティブ・制作

【Arduino制作】メロディーを鳴らすならNewTone!IRremote併用時の注意点まとめ

20年間エンジニアとして働いた後、フリーランスを経て現在は1人社長として活動しているユウイチです。

プログラミング講師やIT教育を中心に発信しながら、趣味でゲーム開発やシナリオ作成にも挑戦しています。

「創造と教育を通じて、自分らしく生きたい人の“自由な一歩”を支援する」――そんな想いを込めて、このブログを書いています。

今回は趣味の電子工作についてなのですが、Arduinoで圧電スピーカーを用いてメロディーを鳴らす際の注意点を紹介します。

IRremoteライブラリとToneライブラリは同時に使えないので、その際はNewToneライブラリを使いましょうっていうお話です。

IRremoteライブラリとToneライブラリは同時使用できない!

Arduinoと圧電スピーカーでマリオやらゼルダを奏でてみたいと思い、リモコンの「1」を押したらマリオのメロディー、「2」を押したらゼルダのメロディーみたいな仕様にして作ってみたのですが、「Tone」ライブラリを使用してプログラムを作成したところ、まったくうまく動きませんでした。

具体的にはリモコンの信号を1回でも受信すると、その後正常にリモコン信号を受信できなくなりました。こういった意味不明な動きをするときは自分の実装レベルでバグらせているというより深いところに原因があることが多いので、いろいろ調べました。そして発見しました。

「IRremote」ライブラリと「Tone」ライブラリが同じタイマーを使用していることを!

ライブラリの中を詳しくは見ていないのですが、同じタイマーを使用しているのであればそれぞれのライブラリで好き勝手にタイマークリアとかするはずなので、うまく動くはずがありませんね。。。

Arduinoはタイマー0、タイマー1、タイマー2とタイマーを3本持っているので、どちらかのライブラリの中を変更して使用するタイマーを変更すればよいのですが、ライブラリの中を変更して、また入れなおすのは手間です。。。「誰か、作ってくれてないかなぁ」と思って探したら、[Timer1]を使って音を鳴らすライブラリ、「NewTone」ライブラリがありました!

やはり、困ったときはだれかがやってくれてることを期待して探すに限る笑

世の中の優秀な方々はけっこういろいろやってくださっています^^

ということで、「NewTone」ライブラリを使用して解決です。

NewToneライブラリをインストール

NewToneライブラリは以下のサイトからダウンロードできます。簡単にインストール手順を説明します。

まず、上記のサイトからNewTone_v1.0.zipをダウンロードします。

Arduino IDEからダウンロードしたzipファイルを読み込みます。「スケッチ」→「ライブラリをインクルード」→「.ZIP形式の・・・」から読み込みます。

以上でインストールは完了。ソースコードにて「#include <NewTone.h>」を記述することでライブラリの関数が使用できるようになります。

以上、とても簡単ですが、今回はNewToneライブラリについて紹介させていただきました。

まとめ

今回はNewToneライブラリについて紹介させていただきましたが、IRremoteライブラリなどを使用しないのであれば、「Tone」ライブラリで問題ありません。

余談ですが、タイマーを使用しているライブラリ使用時にそのタイマーを使用して割り込みなどは作れません。(当然ですが)

例えば、今回の記事の例だとIRremoteライブラリでタイマー1、NewToneライブラリでタイマー1を使用しておりますので、もし定期的に割り込みを作りたい処理が出てきたら、残っているタイマー0を使うことになります。またタイマーの制御については別の記事で紹介したいと思います。

ちなみに、今回の記事で紹介したメロディープログラムの完成形は以下で紹介しております。

こちらもCHECK

【Arduino制作】圧電スピーカーでマリオとゼルダを演奏してみた!

20年間エンジニアとして働いた後、フリーランスを経て現在は1人社長として活動しているユウイチです。 プログラミング講師やIT教育を中心に発信しながら、趣味でゲーム開発やシナリオ作成にも挑戦しています。 ...

続きを見る


✅ ITキャリアを育てるコミュニティ「ITキャリアラボ」

未経験からIT業界に挑戦したい方、資格学習、プログラミング学習が続かない方、転職に不安がある方へ。

僕自身、未経験からエンジニアになり、フリーランス、そして起業へと進んできました。

だからこそ、同じように悩んでいる人たちに寄り添い、サポートしたいという想いで、

LINE公式アカウント「ITキャリアラボ」 を開設しました。

🔹 こんな方におすすめです!

こんな方におすすめ

  • IT業界へ未経験からチャレンジしたい方
  • ITパスポート・基本情報技術者などの資格勉強中の方
  • プログラミング学習でつまずいている方
  • 転職・キャリアチェンジを検討中の方
  • モチベーションを保つために仲間がほしい方
  • 将来的な独立に興味がある方

📌参加は無料・匿名OK・LINEだけで完結!

こちらで詳しく紹介してますので、まずは気軽にのぞいてみてくださいね👇

ITキャリアラボ

ITキャリアを育てるコミュニティ「ITキャリアラボ」|自分らしい働き方を目指す人へ

20年間エンジニアとして働いた後、フリーランスを経て現在は1人社長として活動しているユウイチです。 プログラミング講師やIT教育を中心に発信しながら、趣味でゲーム開発やシナリオ作成にも挑戦しています。 ...

続きを見る

  • この記事を書いた人
  • 最新記事

ユウイチ

20年間ソフトウェアエンジニアとして働いた後、フリーランスを経て現在は1人社長として活動。 プログラミング講師やIT教育を中心に活動しながら、趣味でゲーム開発やシナリオ作成にも挑戦中。どちらも「創ることを通じて人を笑顔にしたい」という想いから始めた、大切なライフワーク。 「創造と教育で、人生に迷う人の“自由な一歩”を支援」を理念に発信中。

-クリエイティブ・制作