見よう見まねのラズベリーパイ (9) ~音を出す~

LEDの次はスピーカーから音を出してみます。
以下は Wiring Pi サイトで紹介されている Software Tone Library の説明要約です。

[ Software Tone Library ]
1. WireringPi にはRaspberry Pi の任意のGPIO にソフトウェアで単純な矩形波を出力することのできる ハンドラを含んでいます。
2. これにはいくつかの制限があります。
(1) cpuの使用率を低く維持するために最小のパルス幅は100μsです。その結果、最大周波数は 1/0.0002 = 5000Hz です。
(2) ルーチーンプログラム中で実行する場合、より高い優先順のプログラムやリアルタイム処理などにより、周波数の精度は影響を受けることに注意してください。
3. 以上の制限はあるものの、ハイインピーダンススピーカー、圧電発声器などを使う事で単純な信号の発生が可能です。

SoftTone を使用する為にSoftTone のヘッダーファイルをインクルードします。

#include <wiringPi.h>
#include <softTone.h>

SoftTone の機能は次の2つです。

softToneCreate (int pin);
Softwere Tone を使用するピンを決めます。

softToneWrite (int pin, int freq);
出力するピンと信号の周波数を指定して出力を開始します。
出力は次の命令が来るまで継続します。
出力を停止するには周波数に0を指定します。

2.スピーカ1つの回路配線はLED点滅回路の抵抗とLEDを圧電スピーカに置き換えただけのものです。
使用するGPIOはGPIO4 で変わりません。
GPIO端子の出力はハイインピーダンスで受けてやる必要があります。通常の8Ωや6Ωのインピーダンスのスピーカーを接続しても音は出ないどころか、GPIO端子の設計規格では出力電流16mAのようですので、過電流になり、破損の危険があります。

 

高い音を1KHz、低い音を500Hzとして交互に10回繰り返します。
1-buz
LED 点滅と同様にコンパイルします。

pi@raspberrypi:~/clang $ cc -o 1-buz 1-buz.c  -lwiringPi

sudoで実行します。

pi@raspberrypi:~/clang $ ./1-buz

圧電スピーカーからは雑音混じりのような高低2種類の音が10回繰り返されます。

カテゴリー: Raspberry Pi タグ: , , , , , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です