You are currently reviewing an older revision of this page.
このドキュメントは「GR-SAKURAスタートガイド」に掲載している作例についてのものです。
クラウド開発環境に、ソースコードの内容をコピー&ペーストして使用して下さい。
ソースコード
#include <rxduino.h> // 基板上のピンの番号に名前をつけます // 以後、プログラム上では BUTTON1 と書けば、0番のピンを指していることになります #define BUTTON1 0 #define BUTTON2 1 #define BUTTON3 2 #define SPEAKER 8 // setup() は最初に一回だけ実行されるところです // ピンの初期化などに使います void setup() { // ボタンが押されたことを感知するためにピンを入力モードにします // PULLUP とすることで常に入力がHIGH(電気が流れている状態)になります pinMode( BUTTON1, INPUT_PULLUP ); pinMode( BUTTON2, INPUT_PULLUP ); pinMode( BUTTON3, INPUT_PULLUP ); // スピーカーは出力になりますので OUTPUT とします pinMode( SPEAKER, OUTPUT); } // loop() は繰り返し実行されるところです // ここにプログラムの本体を記述します void loop() { // ボタンが押されるとGNDに繋がります // そのため、ピンに流れていた電気がGNDに流れるのでピンはLOW(電気が流れていない状態)になります。 // ここではそれぞれのピンの状態を調べて、LOWだったらtone()を使ってスピーカーから音を出す処理をしています。 if( digitalRead( BUTTON1 ) == LOW ) { tone( SPEAKER, 262 ) ; // ド } else if( digitalRead( BUTTON2 ) == LOW ) { tone( SPEAKER, 294 ) ; // レ } else if( digitalRead( BUTTON3 ) == LOW ) { tone( SPEAKER, 330 ) ; // ミ } else { noTone( SPEAKER ) ; } // このまま loop() の最初に戻りますが、delay(10)とすることで10ミリ秒処理を止めています。 // 一見不要に見えますが、これが無いと音がきれいに鳴りません。 delay(10) ; }
配置図
#include <rxduino.h> // 基板上のピンの番号に名前をつけます // 以後、プログラム上では LED と書けば、3番のピンを指していることになります #define LED 3 #define READPIN 0 // setup() は最初に一回だけ実行されるところです // ピンの初期化などに使います void setup() { // LED は出力になりますので ピンのモードを OUTPUT とします。 pinMode( LED, OUTPUT ); } // loop() は繰り返し実行されるところです // ここにプログラムの本体を記述します void loop() { // 値を一時的の保管するための変数を定義します int val ; // センサー(圧電スピーカー)から読み込んだ値を変数に入れます val = analogRead( READPIN ); // 小さい音に反応させたいので、0から10までの値を0から255に引き伸ばします val = map( val, 0, 10, 0, 255 ); // 調整された値をLEDの出力に使います // これで音に反応して LED が光ります analogWrite( LED, val ); }