近接、Arduinoにサウンドエフェクトを備えた光スイッチ





みなさん、こんにちは!



今日は、9年前、正確には2012年1月に作ったサウンドエフェクト付きの近接スイッチについての記事です。



それ以来、スイッチは9年間24時間体制で私と協力してきました。最も興味深いのは、この間ずっと、失敗したことも、電話を切ったこともありません。また、誤検知もありませんでした。一般的に、それはそれ自体がよく証明されており、私は自信を持って自己組み立てのためにそれをあなたに推薦することができます。

詳細に興味のある方は、猫の下でお願いします。



廊下に7つのランプを取り付けています。







そして、美しい視覚効果を実現するために、ランプを順次切り替えて使用しました。このため、各照明ポイントからコントローラーボードまで個別のワイヤーを伸ばす必要がありました。







十分なスペースがあるので、ボード自体をドライウォールと天井の間のスペースに隠しました。







IRレシーバーとLEDをソケットに配置しました。誤ったアラームを回避するために、それらを互いに分離する必要があります。このために、シュリンクカンブリックを使用しました。この光学センサーをコントローラーボードに接続するには、壁に埋め込まれたワイヤーを使用します。







スイッチのデザインが他のインテリアに取り付けられた装飾オーバーレイと変わらないように、同じシリーズのテレビコンセントを使用して、そこからすべての内部を捨て、紫色のアクリルで切り取った丸い窓を穴に接着しました。







すべてのコンポーネントは1つのボードに配置され、ランプからのワイヤーを接続するためのスクリューコネクターも取り付けられました。







私は通常の電話充電器でこのボードに電力を供給しました。







デバイス全体の基本はarduinoNano V.3コントローラーですが、Atmega328マイクロコンピューターで他のボードを使用することもできます。







障害物センサーからフォトトランジスター付きのIRLEDを取り出すことができますが、はんだ付けする必要はありません。余分なトラックを切断し、3本のワイヤーをはんだ付けするだけで十分です。これらの部品を以前にどこかにはんだ付けしている場合は、使用する前に、まず操作性を確認することをお勧めします。赤外線LEDは、120オームの電流制限抵抗を介して5 Vの電圧に接続し、電話のカメラを通して見る必要があります。紫色のライトで点灯するはずです。フォトトランジスタをテストするには、導体導通機能を備えたテスターが必要です。テスターをダイヤリングモードに移行し、フォトトランジスタのリード線をテスタープローブに接続します。その後、家電製品からのリモコンをしっかりと持ってきて、ボタンを押す必要があります。それに応じて断続的なきしみ音が聞こえます。







9年前、適切なソリッドステートリレーが見つからなかったため、無線コンポーネントから自分で組み立てる必要がありました。しかし、現時点では、これらのコンポーネントを探す時間を無駄にするよりも、写真のように8チャンネルのソリッドステートリレーモジュールを購入する方が簡単です。







スイッチは次のように機能します



Arduinoは、約977Hzの周波数でD5出力から一定のPWM信号を出力します。赤外線範囲の信号を発するLEDは、82オームの電流制限抵抗を介してこの出力に接続されます。D2入力に接続されたフォトトランジスタは、手から反射したIR信号を検出して妥当性をチェックし、連続20周期以上の信号が977 Hzの周波数に対応する場合、コントローラは7つのランプすべてを順番にオンにし、PWM出力を介してサウンドエフェクトの再生を開始します。 D11。オフにしても同じことが起こります。







音を鳴らす



サウンドエフェクトを再現するために、周波数16000 Hz、深さ8ビットの非圧縮WAVE形式が使用されますが、この形式をPWMを使用して再生すると、オーディオパスに不快なヒスノイズが発生します。そのため、再生品質を向上させるために、コードで線形補間を使用しました。この場合、サンプルのサンプリングは62.5 kHzの周波数で行われ、元のサンプルの間に、線形補間の方法で計算された3つの追加サンプルが挿入されます。したがって、出力での量子化ノイズが減少し、ホイッスルが消え、音質が向上し、再生に追加のRCフィルターが不要になります。







スピーカーの代わりに、アンプを内蔵していない古い小型のコンピュータースピーカーを使用しました。







WaveファイルをCコードに変換するには、オンラインコンバーターを使用できます



スキーム



図では、ソリッドステートリレーに灰色の長方形でマークを付けました。混乱したい人のために、遠い昔と同じように、回路を完全に組み立てることができます。







組み立て用のコンポーネント



1-Arduino Nano V.32-

障害物センサー 3--8

チャンネルリレーモジュール

4-抵抗82オームおよび1kオーム

5-スピーカー 0.5-3W6-

許容電流が500mA以上のNPNトランジスタ



Arduinoコード



すべてのファイルを1つのアーカイブに ダウンロードする

今回は、使用するすべてのライブラリをスケッチのあるフォルダに追加することにし、スケッチ自体にローカルでの使用を登録しました。これで、初心者がコンパイル時に発生するエラーについての質問が少なくなることを願っています。



コードには、フラッシュする前に変更できるいくつかの定数が含まれています。



power_ir定数は、ブレーカーの動作距離を決定します。最小20から最大200までの値を取ることができます。必要な値は実験的に決定できます。



lamp_num-使用しているランプの数を決定します。ランプの最小数は1以上、最大数は7以下です。コードを修正すると、15に増やすことができます

。lamp_delayは、ランプの連続スイッチオン間の遅延で、ミリ秒単位で表され、0〜4 294 967295ミリ秒で開始できます。こんなに大きな遅れが必要になるとは思いませんが。



ビデオ



ビデオを見るには、画像をクリックしてください。





結論



結論として、WDTのないマイクロシステムが9年間ハングアップしたことがないことに非常に驚いていることを付け加えたいと思います。同じ理由で、古いブートローダーを備えたArduinoは使用できないため、コードを編集してWDTを追加しませんでした。



最後まで読んでくれてありがとう!



私の記事が気に入ったら、いいねとサブスクリプションでサポートしてください。



ご不明な点がございましたら、コメント欄でお尋ねください。



All Articles