HOME > natural science メンバー > 八重樫 和之 > 八重樫製作所

PICマイコンの制御プログラムの考案

文責:遠藤 理平 (2007年11月23日) カテゴリ:八重樫製作所(6)

今日はPICマイコンの制御するプログラムを以前よりも構造化することを目指しました。
具体的には、PICマイコンの複数のピンに同時に異なるパルスを送る。
具体例として、メロディ回路で和音を作るためのプログラムを考えました。

問題点

・PICマイコンは単位時間ごとに一つの命令をすることしかできない。
したがって、複数のピンに同時に異なるパルスを発生させることはできない。
例えば
①スピーカー1にドの信号を5秒間出力
②スピーカー2にミの信号を5秒間出力
③スピーカー3にソの信号を5秒間出力
④①へ戻れ
すなわち、ド→ミ→ソ→ド→・・・の繰り返しのようなプログラミングや
☆スピーカー1,2,3に同時にドの信号を出力
というプログラミングは可能である。
しかし、PICマイコンは一度に一つの命令しか出力できないので
☆スピーカー1にはド、
 スピーカー2にはミ、
 スピーカー3にはソ
 の信号を同時に5秒間出力
すなわち、ド・ミ・ソを同時に出して和音を出せ。
という①~④の異なる命令を同時に行うことは、プログラムの性質上できない。

解決策

今回は信号を出す間隔を短くすること問題を解決した。
そもそも、ド、レ、ミなどの音階は以下の図のように電圧による周期の制御で決まる。
以前は赤い囲いの部分、すなわち1周期を繰り返すことで音波の波長を決めていた。
よって、下図の赤い囲みのように異なる周期の信号、すなわち異なる時間間隔の信号を同時に出力することはできない。
その一方で、青い囲みのように周期が同じ、すなわち時間間隔の同じ信号ならば同時に出力することができる。
そこで、この信号の切り替え方に着目した。
1周期ではなく、それよりも短い時間を一単位として定義する。この定義した時間を何回繰り返すかを指定することで、一見異なる信号でも同時に出力することができる。
あとは出力したい周波数に合わせて、緑の囲みを繰り返すパターンを指定するプログラミングを考えるだけでよい。
これを応用することでド、ミ、ソの音階を同時に出力し和音を作り出すことができる。



▲このページのトップNPO法人 natural science トップ

▲このページのトップNPO法人 natural science トップ




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました