質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

0回答

395閲覧

arudinoを使った音楽と数字の変化

kakakaaka

総合スコア17

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2018/07/19 16:53

編集2022/01/12 10:55

音を鳴らして「ド」のときは「0」、「レ」のときは「1」と表示させたいです。
・今作っているドレミファソラシドは1、2...となっているでしょうか。
・音楽を鳴らしたとき同期するにはどうしたらよいでしょうか?

const char SPK = 2; //sound void setup() { pinMode(SPK, OUTPUT); //sound //h1052g pinMode(3, OUTPUT);//左 pinMode(4, OUTPUT);//真ん中 pinMode(5, OUTPUT);//右 pinMode(6, OUTPUT);//E pinMode(7, OUTPUT);//D pinMode(8, OUTPUT);//C pinMode(9, OUTPUT);//DP pinMode(10, OUTPUT);//B pinMode(11, OUTPUT);//A pinMode(12, OUTPUT);//F pinMode(13, OUTPUT);//G } //sound /*ド 261.6 1911microsec //0番 *レ 293.7 1702microsec //1番 *ミ 329.6 1517microsec //2番 *ファ349.2 1432microsec //3番 *ソ 392.0 1276microsec //4番 *ラ 440.0 1136microsec //5番 *シ 493.9 1012microsec //6番 *ド 523.3 955microsec //7番 */ //float T=1/440; ラの音 1秒440Hz 0.002272/2 = 0.00113636 *1000000 =1136microsec float len[10] = {262 ,294 ,330 ,349 ,392 ,440 ,494 ,523, 220, 247}; float sec[10] = {261.6,293.7,329.6,349.2,392.0,440.0,493.9,523.3,220, 247}; int sound(int t, int c, int d){ for(int j=0; j<=len[t]; j++){ digitalWrite(SPK, HIGH); delayMicroseconds(1/sec[c]/2*1000000L); digitalWrite(SPK, LOW); delayMicroseconds(1/sec[c]/2*1000000L); } delayMicroseconds(d); } //h1502g char LED[8] = {6,7,8,9,10,11,12,13}; char data[10][8] = {{0,0,0,1,0,0,0,1}, //0 {1,1,0,1,0,1,1,1}, //1 {0,0,1,1,0,0,1,0}, //2 {1,0,0,1,0,0,1,0}, //3 {1,1,0,1,0,1,0,0}, //4 {1,0,0,1,1,0,0,0}, //5 {0,0,0,1,1,0,0,0}, //6 {1,1,0,1,0,0,0,1}, //7 {0,0,0,1,0,0,0,0}, //8 {1,1,0,1,0,0,0,0}}; //9 void printLED(int num){ //()内に入る数字を表示する for(int i=0; i<8; i++){ digitalWrite(LED[i], data[num][i]); } } void loop() { //sound(len[],len[],delay)を指定 for(int k=0; k<8; k++){ //ドレミファソラシド for(int j=0; j<50; j++){ sound(k, k, 100); printLED(k); digitalWrite(5,1); delay(1); digitalWrite(5,0); printLED(k); digitalWrite(4,1); delay(1); digitalWrite(4,0); printLED(k); digitalWrite(3,1); delay(1); digitalWrite(3,0); delay(5); } } /* //曲 さくら sound(6, 6, 50); sound(6, 6, 50); sound(7, 7, 100); sound(6, 6, 50); sound(6, 6, 50); sound(7, 7, 100); sound(6, 6, 50); sound(7, 7, 50); sound(8, 8, 50); sound(7, 7, 50); sound(6, 6, 50); sound(7, 7, 25); sound(6, 6, 25); sound(5, 5, 100); */ } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/07/19 23:12

このコードではどうなるんでしょうか。
kakakaaka

2018/07/19 23:52

二重for文にしてドがなると数字は0を表すようになっていると思います。
can110

2018/11/08 22:23

どう「思っている」かではなく、どう「なっている」かを聞いています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問