無線モジュールnrf24le1のプログラミングのトピックを継続します-今回は
COOLRF調光器の
動作を教えます。 無線モジュールのプログラミング
に関する記事を
公開した後、ファームウェアの開発に参加するよう申し出られ、この調光器を実験用に提供しました。
その結果、中央モジュール
Arduino + Ethernet-nRF24L01(W5100)または
USBaspからnRF24L01 + USBを介して調光器を制御し、ローカルボタンを使用するオプションがありました。
調光アルゴリズム
ゼロクロッシング信号はタイマーを起動します。タイマーの時間は、設定電力レベル0..100%に依存します。これは0.01 .... 0秒に対応します。 タイマーはトライアックをオンにします。
さらに、約10ミリ秒後(私が正しく理解できた場合)、トライアックイネーブル信号は削除されますが、ゼロを通過するまでトライアックは開いたままになります。 次に、サイクルが繰り返されます。
おそらく、habrの読者は、トライアックの制御のより正確なオプションも提供します...
ファームウェアコード
現時点では、ファームウェアは次のことができます。
- スイッチ上のボタンによるオン/オフ制御。
- 長い(1.5秒以上)ボタンを押すと明るさを制御できます。
- 設定された輝度の状態とレベルのリモート制御。
- リモートコントロールのオン/オフと明るさ。
電力制御間隔を報告するには、タイマー1を使用します。
バウンスやその他の一時停止を抑制する間隔を設定するには、32768 Hz内部発振器のRTCタイマーが使用されます。
ファームウェアをコンパイルするに
はSDKが必要です。
調光器ビデオデモ
私たちは何を持っています:
- COOLRF調光器。
- nrf24le1無線モジュールの形式が間違っているため、元の設置場所に収まりません。これが配線に表示される理由です。
- プルアップ抵抗器付きのボタンが接続されている取り付けプレート。
- 60W電球
すべてを順番にペイントしてみます。
まず、ビデオはボタンを介して電球を制御する方法を示しています。
短く押すと電球がオンまたはオフになり、長く押すと明るさが変わります。電球がオフになっている場合は電球がオンになり、明るさが変わります。 ボタンを放すたびに、明るさの方向が変わります。
次に、電球をコンピューター(より正確にはラップトップ)から制御する方法を確認します。 このテストでは、Arduino + Ethernet-nRF24L01を使用して調光器をリモート制御します。
26秒で、arduinoのWEBページが表示され、ワイヤレスデバイスのステータスが表示されます。
1行目は調光器で、Analog変数は現在インストールされている電力を示し、test_data変数は点灯または消灯の状態を示します。
2行目はワイヤレスセンサーであり、テストのためにここに追加されました。
調光器コントロールは、自家製のWebページ(ラップトップのWebサーバー)に表示されます。このページには、所定の明るさ10.20.50および100%のボタン、オン/オフボタン、および無線デバイスに手動でデータを送信するフィールドがあります。
このテストページはPHPで記述されており、GETリクエストをarduinki Webサーバーに送信します。 同様に、nRF24L01 + USBを介して制御できます。
私が理解しているように、COOLRFは工場で別のバージョンの調光器を設計し、デバイスダイアグラムを変更する予定ですが、ファームウェアのこの例は、おそらく小さな変更を加えても動作します。
コメントに批判や提案を受け入れます。 ありがとう
nrf24le1の以前の記事:
無線モジュールNRF24LE1をプログラムします。 レディワイヤレスクライアントRaspberry PIおよびUSBaspを介してnRF24LE1をプログラムします