前提・実現したいこと
シリアル通信で周波数と長さを送って曲を鳴らしたいです。
440,1000,e,800,1000,e,600,500,e・・・
と続けて音を鳴らしたいです。
発生している問題・エラーメッセージ
440,1000,e
とシリアル通信で送ると、440Hzの音が1秒間流れるようにはなりましたが、次の音をうまく鳴らせません。
440,1000,e,800,1000,e
の場合だと440Hzの音が一秒間鳴らずに、一瞬で次の音に移ってしまいます。
該当のソースコード
#define size 6 int i = 0; char buf[size]; int data[size]; void setup() { Serial.begin(9600); pinMode(12,OUTPUT); } void loop() { if (Serial.available()>0) { buf[i] = Serial.read(); if (buf[i] == 'e') { for(i=0;i<size;i++){ data[i] = atoi(strtok(buf, ",")); } i = 0; } else { i++; } tone(12,data[0],data[1]); } }
補足情報(FW/ツールのバージョンなど)
arduino
雑な質問で申し訳ないのですが、教えていただけると有難いです。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。