avrに収集されないものが、最終的にはまだ時計を取得します
アマチュアフォーラムから
![画像](https://habrastorage.org/files/8a4/702/281/8a47022811af455aae5b973785b93d3d.jpg)
ハブでは、Wi-Fi制御を備えたさまざまなリモート制御ソケットと電球がよく言及されますが、このプロジェクトでは、IR制御によって同様の問題が解決されます。
![画像](https://habrastorage.org/files/46c/fcf/1ab/46cfcf1ab8834def8c50594749de598b.jpg)
アイデアは次のとおりでした-AVRマイクロコントローラーでアラームを収集し、IRコマンドを送信して音声信号を送信する前にこのランプの輝度をスムーズに上げます。 同時に、頭上のシャンデリアの通常のランプの代わりに、ランプがねじ込まれています。 設定時間の30分前に、ライトは最小輝度で点灯し、その後、輝度は徐々に100%に増加します。
仕事の結果として、私は傑作ではなく、少なくともまともなケースの何かを見たいと思っていました。タッチコントロール付きの部分的にガラスのケースに目覚まし時計を作ることが決定されました。 Atmelは、マイクロコントローラー用のQTouchライブラリを提供します。これにより、最小限のコストでデバイスにタッチボタンを実装できます。 このプロジェクトでは、この素晴らしいライブラリを試してみたかっただけです。
最終的な設計は次のとおりでした-LEDインジケータ、IR LED、フォトセンサー、電源コネクタが片側(前面)に取り付けられ、他の要素が反対側の表面実装(トラック)ではんだ付けされている片面プリント基板です。 その後、インジケータは色付きのガラス板で閉じられ、その背面には適切な場所にタッチボタンが接着されています。 背面では、ボードはケースで閉じられています。ケースは、適切なサイズのプラスチックの箱です。 同時に、メカニカルボタンがない場合でも、見た目の美しさがあります。
それでは、設計を始めましょう。 まず、マイクロコントローラーを決定します-指示とタッチボタンの実装について十分な数の結論を持たなければならず、また、手作業によるはんだ付けがそれほど難しくない必要があります。 これらの要件は、ATMEGA324P(44フィートおよび0.8 mmピッチ)で満たされています。 ディスプレイを選択します-そのため、大きな数字(1.8インチ)のLEDディスプレイを使用することにしました。 ディスプレイは、アノードが共通の4つの1桁のインジケータで構成されています。 通常、大型ディスプレイセグメントは複数の直列接続されたLEDで構成されているため、5ボルトの電源が不可欠であり、時計に電力を供給するには少なくとも9 Vのクロック電圧が必要です。
![画像](https://habrastorage.org/files/d74/fe6/34a/d74fe634a0a948dd94b76cc6b0bfddf7.jpg)
このようなディスプレイを制御するには、ドライバーが必要です。 ディスプレイには共通のアノードがあるため、次のように進めます-ディスプレイのカソードは電流制限抵抗を介してULN2803チップに接続され、アノードに個別のトランジスタスイッチを提供します。 ULN2803チップは、ベース回路に抵抗を備えた8トランジスタであるため、このようなアプリケーションに非常に便利です。
次に、時計自体、より正確には、RTCチップ。 そのため、DS3231が選択されました-内蔵の水晶振動子と最小限の数の外部コンポーネントを備えたチップ。 メーカーは、年間数秒のオーダーの精度を約束しています。 また、クォーツ周波数ドリフトの温度補償用の内蔵温度計により、ケース内の温度を表示する「無料」の温度計が得られます。
呼び出しには、圧電トランスデューサZP-19が使用されます。
目覚まし時計を何百万もの類似の時計と区別する「実行要素」として、回路には電球用のコマンドを形成する赤外線LEDが含まれています。
安定化されていない12 V電源を使用してネットワークからクロックに電力を供給しますマイクロコントローラに電力を供給するには、回路に別の電源を供給する必要があります-よく知られているリニアソースLM7805を使用します。
最後に、目覚まし時計の状態を示す2色のLEDと、照明のレベルに応じてインジケーターの明るさの変化を実現する光センサーを回路に提供します。 フォトセンサーはコンパレータに接続されるため、しきい値を調整するためにトリミング抵抗を提供する必要があります。
回路の準備ができたら、プログラミングと製造を開始できます。 製造する前に、プログラムのほとんどはプロテウスシミュレーターでテストされ、すべての設計が実行されました。
残念ながら、プロテウスでQTouchライブラリの動作をシミュレートすることは不可能だったため、最初に回路の一部をブレッドボードに組み立て、容量センサーで個別に「再生」する必要がありました。 ライブラリは完全に表示されました-すべてのケースで明確な応答。
実験的なテストが必要な次の要素は、電球の実際のリモートコントロールです。 フォトダイオードをオシロスコープに接続し、リモートコントロールボタンを押して信号を確認します。
![画像](https://habrastorage.org/files/6cd/7ba/86d/6cd7ba86d6f04b2795e9685431306f40.png)
写真は、NECプロトコルが使用されていることを示しています。これは、よく知られている赤外線制御プロトコルの1つであり、情報はパルス間の休止時間によってエンコードされます。 論理1-1.7ミリ秒の一時停止、論理0-0.6ミリ秒の一時停止 開始シーケンス(9ミリ秒のパルスと4.5ミリ秒の一時停止)の後、32ビットが送信されます:アドレス、逆アドレス、コマンド、逆コマンド。 プロトコルは十分に文書化されており、インターネット上で詳細な説明を簡単に見つけることができます。
オシロスコープを使用して、送信周波数も決定します-38 KHzに等しいことが判明しました。 したがって、目的のリモコンボタンコードは次のとおりです。
![画像](https://habrastorage.org/files/075/003/9c0/0750039c025f40b595e96ccb08cb780e.png)
IRコマンドを形成する関数を作成し、ブレッドボードの助けを借りて確認します-ライトが点灯し、明るさが調整されます-これは、すべてがほぼ準備完了であることを意味し、クロックを収集できます。
ボードはLUT方式で作成されました。 私はこの方法を使用した回路基板の製造においてかなり控えめな経験を持っていますが、かなり耐えることができました。 ジャムがないわけではありません-回路のプログラミングコネクタにRESET出力を提供するのを忘れていたため、個別にはんだ付けする必要がありました。 写真では、ボードは組み立てられたばかりで、フラックスはまだ洗い流されていません。
![画像](https://habrastorage.org/files/d47/401/f6f/d47401f6f6394a7991b834f342dc7bd1.jpg)
もう一度、確認し、電源を入れ、ファームウェアを入力して、デバッグプロセスを開始します。 すべてが機能した後、ケース内のすべてを閉じることができます。
エラーをキャッチし続けます。 すでに述べたように、ケースの主要な要素として、機械加工されたエッジと、ボードに取り付けられる4つの穴を備えた着色ガラスプレートを注文することが決定されました。 誰かが同様のデザインを作りたい場合は、プレートを注文した後にボードをデザインすることをお勧めします。 スケッチに従ってガラスを使って、高精度の近代的な機械などを使って作業することを約束している会社を見つけました。実際には、スケッチから1センチメートルの差で取り付け穴が開けられました。 しかし、私は苦情を申し立て始めませんでした、私はちょうど料金を少し調整しました。 もう1つの間違いは、ガラスの穴の直径の選択が間違っていたことです。最初は、固定のために、平らな表面の装飾ナットを使用したかったのです。 これらは、金属製のアクセサリー店のebayで見つかりました-ベルト上のリベット(いわゆるChicago Screws )をシミュレートするために使用されているようです。 しかし、ナットが到着すると、ねじ部の直径が5 mmであり、ガラス板の穴が4 mmであることが判明したため、アイデアを捨てて、通常の皿ボルトでガラスを固定する必要がありました。
タッチセンサーはガラスの背面にあります。これにはアルミニウムテープを使用します。 発泡ポリエチレンの小片(ebayのパッケージから)は、ボードからのワイヤによってセンサーに押し付けられます。 アラームボタンの下にインジケータLEDがあります-操作のロジックは次のとおりです:アラームが次の24時間で鳴る場合-緑、鳴らない-赤、すべてのアラームがオフ-LEDが点灯しない 目覚まし時計のシンボル(ベル)も、LUTメソッドによってテープに転写され、慎重に切り取られてガラスに接着されます。
着色ガラスは、タッチボタンの操作およびディスプレイの審美的なデザインで優れた性能を示しましたが、赤外線放射を非常に大幅に減衰します。 1つのIR LEDは確実に機能しないため、トラックの破損に加えて、もう1つがはんだ付けされ、ケースの上壁の穴から光ります。 その結果、通常のリモートコントロールよりも悪くない自信のある応答があります。
目覚まし時計の動作の結果によると、このアイデアは完全に報われたと言えます-暗い冬の朝にそのようなデバイスで目覚めるのは本当に簡単です。 さらに、ベッドサイドのリモート照明スイッチがあります。
この記事は、最小限の労力でこれを実装する方法のアイデアを共有したいという願望から書かれましたが、誰かがこの形式でデバイスを繰り返したい場合は、ファームウェアを提供して質問に答える準備ができています。
更新:
Proteus形式のファームウェアソース、回路、およびボードへのリンク:
clock.zip