日曜大工の無線制御スイッチ。 パート2-テストと準備

この投稿は、ペイロードを自分で切り替える方法に関する一連のストーリーの続きです。







最初の部分では、「ハードウェア」コンポーネント、つまり設計と生産の機能について説明しました。



本日の投稿では、Arduino開発環境を準備する手順と、製造されたモジュールの完全なテストについて説明します。



製造されたモジュールを使用するには、ISPプログラマーが必要です。 既存のUSBtinyISPを使用します。同じまたは他のUSBtinyISPを使用できます(たとえば、既存のArduinoボードからArduinoISPを作成します)。


前回の投稿の最後に、完全に組み立てられたデバイスを受け取ったことを思い出させてください。すべてのコンポーネントが配置されています。



次に、パフォーマンスを確認する必要があります。



MKチェック



これを行う最も簡単な方法は次のとおりです。プログラマを接続し、ヒューズの値を読み取ります。



この投稿は初心者を対象としているため、視覚的なツールを使用して、できるだけ簡単に行う方法を示します。Avrdude-GUIグラフィカルシェルを使用します。



  1. リンクからAvrdude-GUIパッケージをダウンロードします。
  2. 結果のアーカイブをフォルダーに解凍します。
  3. avrdude-GUIを開始します。


これらの簡単なアクションの後、次の種類のウィンドウが表示されます。











ここで、最小限の設定を行う必要があります。使用するプログラマ(フィールドプログラマ)、使用するポート(ポート)、使用するMK(デバイス)を指定します。



次に、プログラマーをコンピューターに接続し、プログラマー自体をボードに接続します。



[ヒューズ]セクションで、[読み取り]ボタンをクリックします。 すべてが正しく行われると、適切なフィールドに融合値が表示されます。







何かがうまくいかなかった場合
次のエラーが最も可能性が高いです。



1.どこかで飲まない(またはその逆、「鼻水」)。 次に、ヒューズを読み取ろうとした結果、このエラーに関するメッセージが表示されます。









状況を修正するには、ボードをプログラマーから切り離し、はんだ付けの品質を非常に注意深くチェックします。

  • 細い針を使用して、すべてのMK脚がはんだ付けされているかどうかを確認し
  • 虫眼鏡を通して疑わしい場所を覗き、
  • テスターをISPコネクターからMKに呼び出し、
  • 電源回路を確認してください。




2.間違ったタイプのMK。 エラーメッセージは次のようになります。









私の場合、まさにそのようなエラーが発生しました。 これは、ATmega168 pを使用したという事実と、プログラムでATmega168を選択したために発生しました。

これらのチップは可能な限り近接していますが、異なるシグネチャがあり、システムが慎重に報告しています。 プログラムのプロンプトと問題の解決策 - チェック適切に選択されたチップや署名の無効スキャン(キーフィールドを追加«コマンドラインオプション»「-F」)。



私は2番目のソリューションを使用しました(この場合、それはまったく正常です)。



それは、より良い、もちろん、ファイルを開いて、情報ATmega168p avdude.confそれを追加しますが、私の良心にそれを残すことになります。



同じシェルを使用して、必要なヒューズを記録できます。



この場合、8 MHzの周波数で内部発振器からMCを確実に動作させる必要があります。 これを行うには、上記のスクリーンショットに示されているATmega168pの値を使用できます。



FyuzyがMKを「説明」し、どのモードで機能するか。 どの値を登録する必要があるか(または上記の値を理解するか)については、たとえばこのリンクで利用可能な「AVR Fusion Calculator」を使用できます。


これで、次の段階に進むことができます。MKのプログラミングの可能性を確認し、ボード上の残りの「周辺」をテストします。



開発環境の準備



このために、もう1つの準備手順を実行する必要があります。Arduino環境で適切な「ボード」を作成する必要があります。 これは次のように行われます。boards.txtファイルを、\ ARDUINO \ hardware \ arduinoフォルダ内にあるテキストエディタで開く必要があります。ここで、「ARDUINO」は開発環境が置かれているルートフォルダです。



このファイルに次の行を追加する必要があります。



############################################################## s168po8.name=Sensor168p (int8MHz, 1.8V) s168po8.upload.protocol=arduino s168po8.upload.maximum_size=14336 s168po8.upload.speed=19200 s168po8.bootloader.low_fuses=0xe2 s168po8.bootloader.high_fuses=0xde s168po8.bootloader.extended_fuses=0x00 s168po8.bootloader.path=atmega s168po8.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex s168po8.bootloader.unlock_bits=0x3F s168po8.bootloader.lock_bits=0x0F s168po8.build.mcu=atmega168p s168po8.build.f_cpu=8000000L s168po8.build.core=arduino s168po8.build.variant=standard ##############################################################
      
      





最初の行はボードの名前を示しており、プログラミング環境で選択します(好きなものを指定できます)。

ヒューズ、MKのタイプ、およびデバイスが動作する周波数を記述するパラメーターに特に注意してください。



これらの簡単な操作の後、Arduino環境を起動し、利用可能なボードのリストに「新しいボード」が表示されることを確認できます(「サービス-ボード」メニューで、Sensor168p(int8MHz、1.8V)を選択します)。



ボタンおよびリレーテスト



回路設計では、リレーを制御するためのキーはデジタルピンD3とD4に、ボタンはアナログA1とA0に接続されていることを思い出してください。



ボタンとリレーの正常な機能を確認する簡単なテストを作成してみましょう。



 //  int r1 = 3; // D3 int r2 = 4; // D4 //  int b1 = 15; // A1 int b2 = 14; // A0 void setup() { //  pinMode(r1, OUTPUT); pinMode(r2, OUTPUT); //  pinMode(b1, INPUT); pinMode(b2, INPUT); //      digitalWrite(b1, HIGH); digitalWrite(b2, HIGH); } void loop() { //    b1 -   r1 if (digitalRead(b1) == LOW) { digitalWrite(r1, HIGH); } else { digitalWrite(r1, LOW); } //    b2 -   r2 if (digitalRead(b2) == LOW) { digitalWrite(r2, HIGH); } else { digitalWrite(r2, LOW); } }
      
      





このテストをデバイスにダウンロードします。



ダウンロードする前に、メニュー「サービス」-「プログラマー」で使用するプログラマーを選択することを忘れないでください。



プログラマーが使用されるため、手順はわずかに異なります。「ファイル」メニューの「プログラマーを使用してダウンロード」項目を選択する必要があります(または単にCtrl + Shift + Uのキーの組み合わせを押します)。



すべてが正しく行われた場合、ボタンが閉じられると、対応するリレーがクリックされます。



上記のテストスケッチは「バウンス」を解決せず、ボードのクイックチェックにのみ必要です。


何かがうまくいかなかった場合
2つの典型的な問題があります。

  1. Arduino環境で何かが間違って行われました(MKへのロードに関する問題に関するメッセージが表示されます)。
  2. ハードウェアの問題(ダウンロードは成功するが、リレーはクリックしない)。


最初のケースでは、前に説明したすべての手順を確認する必要があります(boards.txtファイル、正しく選択された結果のボードとプログラマーを操作する)。



2番目のケースでは、回路図、虫眼鏡、鋭利な針、テスターが最適なヘルパーになります。





その後、nRF24L01 +コネクタですべてが正常かどうかを確認するだけです。



nRF24L01のインターフェイステスト+



この段階では、コードを書くのではなく、単に電気回路をチェックします:プログラマー(または5V電源)が接続されているとき、RF24コネクタの1ピンと2ピンの間の電圧を測定します-3.3Vでなければなりません。



次に、プログラマー(または電源)をオフにして、すべてのコネクター回路を呼び出して、隣接する回路間の短絡がなく、対応するMKピンとの接続が存在するようにします( 前の投稿の図を参照)。



高電圧試験



デバイスはその後高電圧負荷を切り替えるので、この部分は非常に細心の注意を払ってチェックする必要があります。

  1. ボード(負荷を接続するためにリレーと端子台が配置されている部分)を非常に慎重に検査し、疑わしい場所をすべて取り除き、はんだ付けは非常に信頼性が高いはずです。 「余分な」接続があってはなりません。
  2. テスターに​​すべての回路を呼び出して、同時に端子ブロックのどの端子で、通常は閉じている(NC)および通常は開いている(NO)接点があるかを判断します。




結果



あなたの手ですべてのチェックの後-完全に機能し、後続のプログラミングモジュールのために完全に準備ができています。 プログラミング環境も次のステップに備えています。



継続するには ...



便利なリンク




All Articles