このプロジェクトでは、ARDUINO UNOでADC(アナログ-デジタル変換)の概念を使用してクラッパー回路を作成します。MICとUnoを使用して音を感知し、応答をトリガーします。この クラップオンクラップオフスイッチは、 基本的にクラップ音をスイッチとして使用して、デバイスのオン/オフを切り替えます。以前、555タイマーICを使用して、クラップスイッチとクラップオンクラップオフスイッチを構築しました。
拍手すると、MICに通常よりもはるかに高いピーク信号があり、この信号はハイパスフィルターを介してアンプに送られます。この増幅された電圧信号はADCに供給され、ADCはこの高電圧を数値に変換します。したがって、UNOのADC読み取り値にピークがあります。このピーク検出では、拍手ごとにボード上のLEDを切り替えます。このプロジェクトについては、以下で詳しく説明します。
MICまたはマイクは、基本的に音エネルギーを電気エネルギーに変換する音感知トランスデューサーであるため、このセンサーを使用すると、電圧を変化させる音が得られます。私たちは通常、このデバイスを介して音を録音または感知します。このトランスデューサーは、すべての携帯電話とラップトップで使用されています。典型的なMICは次のようになります。
コンデンサーマイクの極性の決定:
MICには2つの端子があり、1つは正で、もう1つは負です。マイクの極性は、マルチメーターを使用して見つけることができます。マルチメーターの正のプローブを取り(メーターをダイオードテストモードにします)、MICの一方の端子に接続し、負のプローブをMICのもう一方の端子に接続します。画面に読み取り値が表示された場合、正の端子(MIC)はマルチメーターの負の端子にあります。または、端子を見るだけで見つけることができます。マイナス端子には、マイクの金属ケースに接続された2本または3本のはんだ付けラインがあります。マイナス端子から金属ケースまでのこの接続性は、導通テスターを使用してテストし、マイナス端子を見つけることもできます。
必要なコンポーネント:
ハードウェア:
ARDUINO UNO、電源(5v)、コンデンサーマイク(上記説明)
2N3904 NPNトランジスタ、
100nFコンデンサ(2個)、100uFコンデンサ1個、
1KΩ抵抗、1MΩ抵抗、15KΩ抵抗(2個)、1つのLED、
そしてブレッドボード&接続線。
ソフトウェア: ArduinoIDE-毎晩Arduino。
回路図と動作説明:
クラッパー回路の回路図を下図に示します。
作業を4つの部分に分割しました。つまり、ろ過、増幅、アナログ-デジタル変換、およびLEDを切り替えるプログラミングです。
音があるときはいつでも、MICはそれを拾い上げ、音の大きさに比例して電圧に変換します。したがって、高い音の場合は高い値になり、低い音の場合は低い値になります。この値は、最初にろ過のためにハイパスフィルターに送られます。次に、このフィルタリングされた値は増幅のためにトランジスタに供給され、トランジスタはコレクタで増幅された出力を提供します。このコレクター信号は、アナログからデジタルへの変換のために、UNOのADC0チャネルに供給されます。そして最後に、Arduinoは、ADCチャネルA0が特定のレベルを超えるたびに、PORTDのPIN7に接続されたLEDを切り替えるようにプログラムされています。
1.ろ過:
まず、ノイズを除去するために使用されてきたRCハイパスフィルターについて簡単に説明します。設計は簡単で、単一の抵抗と単一のコンデンサで構成されています。この回路では、詳細はあまり必要ないので、単純にしておきます。ハイパスフィルターは、入力から出力への高周波通過の信号を可能にします。言い換えると、信号の周波数がフィルターの規定周波数よりも高い場合、入力信号が出力に現れます。ここではオーディオアンプを設計していないため、今のところ、これらの値について心配する必要はありません。ハイパスフィルターが回路に示されています。
このフィルタの後、電圧信号が増幅のためにトランジスタに供給されます。
2.増幅:
MICの電圧は非常に低く、ADC(アナログ-デジタル変換)用のUNOに供給することができないため、トランジスタを使用した単純なアンプを設計します。ここでは、MIC電圧を増幅するためのシングルトランジスタアンプを設計しました。この増幅された電圧信号は、ArduinoのADC0チャネルにさらに供給されます。
3.アナログからデジタルへの変換:
ARDUINOには6つのADCチャネルがあります。それらの中で、それらのいずれかまたはすべてをアナログ電圧の入力として使用することができます。UNO ADCの分解能は10ビットです(したがって、(0-(2 ^ 10)1023)の整数値)。これは、0〜5ボルトの入力電圧を0〜1023の整数値にマッピングすることを意味します。 (5/1024 = 4.9mV)/ユニット。
ここで、UNOがアナログ信号をデジタル信号に変換するには、以下の機能を使用して、ARDUINOUNOのADCチャネルを使用する必要があります。
1. AnalogRead(pin); 2. AnalogReference();
UNOADCチャネルのデフォルトの基準値は5Vです。これは、任意の入力チャネルでのADC変換に5Vの最大入力電圧を与えることができることを意味します。一部のセンサーは0〜2.5Vの電圧を提供するため、5Vのリファレンスでは精度が低下するため、このリファレンス値を変更できるようにする命令があります。したがって、参照値を変更するために、「analogReference();」があります。
この回路では、この基準電圧をデフォルトのままにしているため、関数「analogRead(pin);」を直接呼び出すことにより、ADCチャネル0から値を読み取ることができます。ここで「pin」は、アナログ信号を接続したピンを表します。この場合は「A0」になります。ADCからの値は、「int sensorValue = analogRead(A0);」のように整数に変換できます。」、この命令により、ADCからの値は整数「sensorValue」に格納されます。これで、UNOのメモリにデジタル形式のトランジスタ値があります。
4.各クラップのLEDを切り替えるようにArduinoをプログラムします。
通常の場合、MICは通常の信号を提供するため、UNOには通常のデジタル値がありますが、MICによって提供されるピークを拍手すると、UNOにピークのデジタル値があり、UNOをプログラムして切り替えることができます。ピークがあるときはいつでもLEDがオンとオフになります。したがって、最初の拍手でLEDがオンになり、オンのままになります。2回目の拍手で、LEDはオフになり、次の拍手までオフのままになります。これでクラッパー回路ができました。以下のプログラムコードを確認してください。