[[labs.beatcraft.com]] [[ANT]] * BC-ANT-SERIAL 使用例 - データディスプレイ [#u845c6dd] BC-ANT-SERIAL を使ったサンプルです。 LCD表示ユニットを備え、ANTモジュールの通信状態を表示します。 BC-ANT-SERIALは わずか 5ピンでマイコン等に接続することができます。 1.9〜3.3Vの電源とグランドのほかに シングルエンドの TXD, RXD, RTS という3本のラインのみです。(ほかに リセット、スリープ、サスペンドを追加することもできます) この 5ピンは広く使われている 2.54mm (0.1インチ)ピッチのピンヘッダを使うことができます。 この使用例では、CPUに Microchip Tecnology社さんの PIC24FJ64GA002 (28ピン、300mil幅のDIP品) を利用したものです。 回路図: &ref(maker-2012-0005a.pdf);~ 実装例: &ref(DSCF8198.JPG,,25%); 使用部品一覧 |No|数量|リファレンス|品名|スペック等|備考| | 1| 2|C1, C2 |積層セラミックコンデンサ| 0.1uF|汎用品でOK| | 2| 1|C3 |タンタルコンデンサ | 10uF|電解コンデンサ等、極性に注意| | 3| 1|C4 |積層セラミックコンデンサ| 10uF|積層セラミックのこと。電解コンデンサ等は不可| | 4| 4|D1, D2, D3, D4|LED | |チップタイプでも リード付 φ3〜5mmでも OK| | 5| 1|J2 |ピンヘッダ用ソケット |1列 x 5ピン|2.54mmピッチ BC-ANT-SERIALモジュールに合わせる| | 6| 1|J3 |ピンヘッダ |1列 x 6ピン|2.54mmピッチ PICKit等プログラマ接続用| | 7| 1|R1 |抵抗 1/16〜1/4W |10kΩ | | | 8| 4|R2,R3,R4,R5 |抵抗 1/16〜1/4W |1.5kΩ |330〜3.9kΩ程度。使用するLEDに応じて値を選択してください。リード付 外形5mmのLEDの場合は 330〜510Ω程度。チップLEDの場合は高い値でもOK | | 9| 1|R6 |抵抗 1/16〜1/4W |10kΩ |半固定抵抗 | |10| 4|S1, S2, S3, S4|プッシュスイッチ |モーメンタリタイプ|押すと ONになるタイプ| |11| 1|U1 |CPU |PIC24FJ64GA002|秋月電子、マルツなどで購入可能| |12| 1|U4 |LCD |SC1602BS-B(-XA-GB-K)|他のモデルにも差し替え可能ですが、一部にピン非互換があるようです。秋月電子で購入可能| |13| 1|U5 |DCDCコンバータ |昇圧型DC-DCコンバータ 5V0.2A出力 StepUP・DIP-Ver.2|秋月電子で購入可能。3.3Vから5Vへ昇圧可能なもの 3.3V対応のLCDパネルの場合は不要です| |14| 1| |BC-ANT-SERIAL | || |15| 1| |ピンヘッダ |1列 x 5ピン|2.54mmピッチのものを BC-ANT-SERIALに半田付けし、J2に接続します| LED、抵抗、コンデンサ、スイッチ、ピンヘッダ、CPUなどは 秋葉原等で購入できます。 通信販売を利用するときは、秋月電子通商さん、千石電子さん、マルツさんなどの通信販売でそろえることができると思います。 実際に、組み立てるときの注意事項については、回路図にも記載しましたが、この回路図に対する補足説明を記述します。~ C3は、電源ラインが不安定な場合に、追加します。だいたい 1〜10uF程度のタンタルコンデンサが良いでしょう。 一部を除き極性があります。 コンデンサの+端子を Vdd 側に -端子を GND側に接続します。 LEDは、出力ポートに 0 を書き込むと点灯し、 1 を書き込むと消灯します。実装するLEDのタイプによって、R2 〜 R5 に使う 抵抗の値を調整する必要があります。~ 1608サイズのチップLEDの場合、少ない電流(500μA弱)でも LEDが発光しているのを見ることができますので 回路図では 1.5kΩを 指定しています。。しかし リード線のあり、外形が 5mm程度あるLEDの場合、2〜3mA程度の電流を流さないと、発光していることが 見えませんので 抵抗値を小さくする必要があります。チップLEDでも 2〜3mA流しても問題ありませんから、抵抗の値は 330〜510Ω でも特に問題ありません。(消費電流が増加した分、明るく光りますが、明るすぎると感じているのでチップLEDを使うときは 2kΩ前後にしています)~ プッシュスイッチは CPU内蔵のプルアップ抵抗を有効にしながら、GNDに接続します。スイッチを離している状態では 1 が読み込まれ、 押している状態では 0 が読み込まれます。~ プログラムのミス等により、プルアップ抵抗を無効にしたまま動作させると、入力端子が不安定になります。多くの場合は、 1が読み込まれるようですが、動作は保証されなくなります。また、最悪の場合は CPUを熱暴走により、破壊してしまいます。 もし、プルアップ抵抗が無効になって、CPUが不安定になるのを避けたい場合は、電源に向かってプルアップ抵抗を追加してください。 開発環境には MPLAB IDE を利用しました。~ 新しいプロジェクトを作成し CPUに PIC24FJ64GA002 を選択してください。プログラマには PICKit2やPICKit3 が使えます。また、ソースコードデバッガも使うことができます。 単独で、電源を供給する場合は、3.3Vの電源を J3 の 2番ピンに +極を、 3番ピンに -極を接続します。 * サンプルプログラム [#o4def6a2] サンプルプログラムは 下記の通りです。 それぞれを 作成したプロジェクトに追加してコンパイル/プログラム(PICへダウンロード)してください。~ - ANT API -- &ref(ant.c); - LCD ディスプレイ -- &ref(C_LCD.c); - Delay 関数 -- &ref(delay.c); - 本体 -- &ref(main.c); - UART -- &ref(uart.c); - ANT APIヘッダ -- &ref(ant.h); - LCD ディスプレイ ヘッダ -- &ref(C_LCD.h); - Delay 関数 ヘッダ -- &ref(delay.h); - UART ヘッダ -- &ref(uart.h); ** 説明 [#ufec8120] このサンプルプログラムを実行すると、最初にタイトルを表示します。 SW4 を押すと、実行を始めます。~ LCDパネルの 1行目には ANTモジュールから受信したデータのうち、コマンドとペイロードの一部を 16進数表記で表示します。 2行目には、受信したデータの数を表示します。~ SW1 を押すと、チャンネルを送信モードでオープンし、データをブロードキャストします。 LED1 が点灯します~ SW2 を押すと、チャンネルを受信モードでオープンし、データを受信します。LED2 が点灯します。 ANTの電波を受信できずに タイムアウトすると、チャンネルを閉じて LED2 を消灯します。~ SW3 を押すと、ANTモジュールにソフトウェアリセットを送信し、LED1 および LED2 を消灯し、待機します。 主な処理は main() 関数の中に書かれています。 ---- 2012.11.29 初版: サンプル回路図掲載等~