32
23

More than 3 years have passed since last update.

Arduino MEGA2560買ったから遊んだ

Last updated at Posted at 2019-09-18

2019/9/20 訂正:writing_hand::Arduino MEGA2560だと思っていたのですがどうやらArduinoではなく互換機だったようです。本家よりも安価なのと色が違うらしい…?

先日ノリと勢いでArduino MEGA2560という開発ボードのスターターキットを購入したのでレポートです。
iOS の画像 (1).jpg
パッケージがかわいい。

Arduino MEGA2560はArduino Unoの上位互換で、メモリやI/Oを増量したものらしいですが私はArduino Unoも全く触れたことがないので違いはあまりよくわかってないです。

中身はこんな感じで色々はいってました。
iOS の画像 (5).jpg

とりあえず開発環境を整えてみる

Arduino MEGA2560を使うのはArduino IDEというものをダウンロードしてこなければならないらしいです。
Arduino IDEはELEGOOの公式サイトからダウンロードできました。
チュートリアルも同じページにあります。親切。

Arduino IDEをインストールして開くとこんな感じのアプリが起動します。
スクリーンショット 2019-09-18 9.38.55.png
ツールから自分の使う開発ボードに合ったものを選択します。
スクリーンショット 2019-09-18 9.40.39.png

開発ボードをパソコンにUSBで接続します。
iOS の画像 (3).jpg
接続するとすぐに緑色のランプが点灯します。
これで開発環境は整ったはず。

動作確認をしてみる

Arduino IDEにはいくつかコードのテンプレートが用意されています。
ファイルのスケッチ例からBlinkを選択してみましょう。
スクリーンショット 2019-09-18 9.45.56.png
スクリーンショット 2019-09-18 9.47.30.png
Blinkのテンプレートが表示されました。


void loop()

の部分にLEDランプが1000ミリ秒間隔でオンオフが繰り返されるというコードが書かれています。
コードはこのままで、右上の✓マークから検証、→マークで開発ボード側に書き込みを行います。
開発環境が問題なく整っていれば、これで開発ボードのオレンジ色のランプがチカチカと点滅するはずです。
delayの数字を大きくしたり小さくしたりコードを書き換えて、再度ボードに書き出してみればLEDランプの点滅の間隔が変更されます。

パッシブブザーを使って遊ぶ

開発環境が問題なく整っていることが確認できたので、次はブレッドボードを使ってみます。
ブレッドボードは電子回路の実験や試作をする時に使う板で、はんだ付けをしなくても回路が作れちゃうすごいやつです。便利。
初心者らしく、今回はパッシブブザーを使ってコードに書いた音を鳴らしてみようかなと思います。

使う道具はこちら。
iOS の画像.jpg
ブザー思ったよりだいぶちっちゃい。
小指の先くらいのサイズです。なくさないように気をつけましょう。

こんな感じで回路を組みました。
Untitled Sketch_ブレッドボード.png
iOS の画像 (4).jpg

とても簡単でいかにも初心者向けでいいですね。パッシブブザーはプラスとマイナスが明確に決まってるやつととくに決まってないやつの二種類があるみたいですが、スターターキットに付属されていたやつはちゃんと極性があるようでした。

ブザーの開始ピンはどこからでも問題ないですが、この後コードを書く時に指定してあげないといけないのでどこにピンを刺したのかきちんと見ておきましょう。(今回は13ピンからスタートしてます。)
GNDに接続して準備完了です。

コードを書いていきます。
ブザーは

tone( 開始ピン番号 ,  周波数(鳴らす音) ,  音の長さ)

という感じで書けば鳴るらしいです。開始ピン番号は今回は13です。ドの周波数は262らしいので、ブザーからドの音を鳴らすには

void setup() {
}

void loop() {
     tone(13,262,1000) ;
}

という風に書けばいいわけです。
書き方がわかったので試しに音階を作ってみます。

Arduinoのコードでは定数は#defineで定義するらしいです。
最初にドレミファソラシドの定数を作ります。

#define C  262 //ド
#define D 294 //レ
#define E  330 //ミ
#define F 349 //ファ
#define G  392 //ソ
#define A  440 //ラ
#define B 494 //シ
#define C_high  523 //ド

作った定数を配列に入れます。

int scale[] = {C, D, E, F, G, A, B, C_high};

setup()は何も書かなくて大丈夫です。
loop()でfor文を使って一定間隔で音がなるようにコードを書きます。

最終的なコードはこのような感じになりました。

//音を定数に
#define C  262 //ド
#define D 294 //レ
#define E  330 //ミ
#define F 349 //ファ
#define G  392 //ソ
#define A  440 //ラ
#define B 494 //シ
#define C_high  523 //ド

//ピンの番号
int pin = 13;

//音階を配列に
int scale[] = {C, D, E, F, G, A, B, C_high};
//音の間隔
int duration = 200;

void setup() {
}

void loop() {

  //演奏
   for (int i = 0; i < 8; i++) {
    tone(pin, scale[i],duration);
    delay(duration);
   }

  //演奏終了後の余白
  delay(1000);
}

ボードに書き込んでみて、正しくパッシブブザーから音が出ていれば完成です。

参考

ELEGOO
Ardiuno doc
Arduino 日本語リファレンス

32
23
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
23