楽々PIC

水田除草と言うブログを書いていますが、PIC関連の記事が意外に人気で驚いています。 PICを使った電子工作に興味を持つ方が多いことを知って、一緒にPICを学ぶブログを作りたいと思いました。 「楽々PIC」は教材と言うよりも少し実用性?のある楽しい道具を作りながら学ぶブログを目指します。

LCD

16文字x2行LCD

 「RRP1320-1-01 概要」で「16文字x2行のLCDも使えると思う」と書きながら未確認でした。 今回、16文字x2行のLCDを入手したので確認してみました。 動作確認に使ったハード、ソフトは RRP1320-1-04-2 です。

結果は、下図の通り期待した通り動作します。

DSC00225


16桁あれば、上図の右側に赤外線リモコンの受信コードを温度制御と分けて表示することも出来そうです。

今回試したLCDは Sunlike Display Tech. Corp. 製  SC1602BS-B(-XA-GB-K) です。 以前に使った8文字x2行LCD( AZ Displays, Inc 製 ACM0802C-NLW-BBH )及び20文字x4行LCD( SUNLIKE 製 SC2004C )に対して電源のピンに配置が逆になっていますから注意が必要です。

確認用に下図のアダプターを作って電源端子を入れ替えました。

DSC00226


LCDは表示可能な文字数が多い方が表現力があって良いのですが、価格や組み込み機器(操作部)の大きさとのバランスもありますから同じプログラムで柔軟に対応出来る方が良いように思います。

ともあれ、16文字x2行が無事に動作して一安心です。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



RRP1320-2 回路案

LCD と 赤外線リモコン受信機能を備えた温度制御装置 RRP1320-1 を紹介してきましたが、新しいシリーズとして RRP1320-2 を作り始めたいと思います。 RRP1320-1 は汎用タイマーと赤外線リモコンの設定機能を追加したら終了の予定です。

RRP1320-2 は赤外線リモコン及び(または)焦電センサー入力をトリガーに音声合成や RC サーボを動かす装置にしたいと考えています。

回路案は下図の通りですが、現時点では動作確認を済ませていません。

RRP1320-2回路案

以前に購入して手持ちがあると言う理由で、左上にシャープ製の測距センサーを書きましたが、安定供給が期待できるのか不明な為、「お試し」の範疇に成りそうです。

赤外線リモコン受信モジュールは、以前のものより安価な PL-IRM2161-C438 に代えてみました。 資料を見る限り出力信号の極性が逆のようですし、動作未確認なのでご注意ください。
上図で動作します。 2012/11/09

18番ピンに接続した LED を赤外線リモコンの送信側に使えれば複数の装置(PIC)が連携するシステムが出来るのではないかと楽しみにしています。

「楽々PIC」はこれからも様々な電子工作に挑戦します。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



RRP1320-1-02 概要

赤外線リモコン受信について感心が高いようなので、先に紹介した RRP1320-1-01 に赤外線リモコン受信機能を追加して、RRP1320-1-02 を作りました。 <PICデバイス=18F1320>

赤外線リモコン受信」で紹介したプログラムと同じ仕組みで、赤外線リモコンを受光するとLCDの2行目に受信コードを表示します。 1行目の右端に見える N は NECフォーマットを示します。 予め登録したコードと一致すれば、1行目 Code の文字列の右に2桁の中間コードを表示します。 登録コードと一致しない場合は N の左に ! (感嘆符 021H)を表示します。

DSC00148

登録できる赤外線コードは16個、これに登録外の場合も合わせて17個のサブルーチンを準備して、赤外線リモコン受信の都度、17個の中のどれかをサブルーチン・コールします。
各サブルーチンの中で、中間コード(上図では 15 )や感嘆符を仮想 V-RAM に書き込んで表示させています。

各サブルーチンを書き換えれば、表示内容を変更可能です。 各サブルーチンに加筆することで、中間コード毎に異なる機能を作り出すことが出来ると思います。

1行目左の文字列( Code )表示と、2行目及び1行目右端の表示サブルーチンは「楽々PIC」が提供していますが、これをコールしないことでユーザー独自の表示を作ることが出来ます。

お手持ちの赤外線リモコンを登録する場合は、登録するボタンを押して2行目に表示される値を記録し、プロジェクト内にある所定のデータテーブルを書き換えてビルドすることで対応可能です。 ただし、NECフォーマとの赤外線リモコンに限ります。

RRP1320-1-02 は LCD に対して一方的にデータ出力しているだけですから、LCDを接続しない状態でも赤外線リモコン受信機能をご利用いただけます。 LCD を準備しなくても MPLAB で Halt と Run を繰り返しながら、下図のように File Registers ウィンドウで表示内容を確認して赤外線コードを記録すれば、お手持ちの赤外線リモコンを登録できると思います。

File_Registers_LCD


プロジェクトとドキュメント一式を以下のサイトでダウンロード販売中です。

以下を含む ZIP ファイルです。
 (1)全てのアセンブラ・ソースを含むプロジェクト一式
 (2)回路図 PDF
 (3)部品表 PDF
 (4)ブレッドボード配線図 PDF
 (5)取扱説明書 PDF


楽々PIC ダウンロード・コーナー
 RRP1320-1-02-1-Z  ← こちらで販売中です。

rrpdlc


赤外線リモコン受信の関連記事インデックスはこちら → 「赤外線リモコン受信


以下は関連記事のインデックスにします。

赤外線リモコン受信動作確認 
 赤外線リモコンの受信動作を確認しました。 下図のリモコン2機種を入手して動作確認しました。  (左 ELPA RC-29D 、 右 Victor RM-A215 )

EEPROM 初期設定 
 EEPROM に初期値を書き込む方法について説明してみます。

RRP1320-1 コンフィグレーションビット 
 当ブログやダウンロードコーナーで入手したプロジェクトをビルドしても正常に動作しない場合は、 Configuration Bits set in code のチェックを外してビルドし直してください。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。




RRP1320-1-01 概要

 「RRP1320-1 回路図」の一部をブレッドボードに実現して、所定のデーター・メモリーの内容をLCDに自動転送するプログラムを作りました。 <PICデバイス=18F1320>


秋月電子通商さんで入手できるLCDの中で一番小さな(8文字 x 2行)の AZ Displays, Inc 製 ACM0802C-NLW-BBH を使っていますが、「LCDに自動転送」で使った(20文字 x 4行)の SUNLIKE 製 SC2004C も使えます。 他のLCDは試していませんが、PICマイコンで制御するキャラクターLCDなら中サイズ(16文字 x 2行)も使えると思います。

プロジェクトをダウンロードしてPICに書き込めば、下図のように表示します。(2行目はブリンク)

DSC00141

上図は、LCDとブレッドボード間の配線をスッキリさせる為に、間にユニバーサル基板で作ったアダプタを接続しています。 半田付け出来ない場合は、「RRP1320-1 回路図」の写真のようにジャンパーワイヤーで接続して実現します。 上図のように黒字に白色表示のLCDはバックライト無しでは見難いようです。 PICkit3から電源供給する場合はバックライト無しの(白地に黒色表示)LCDの方が良さそうです。

上図の表示はデモ用に作った部分ですから不要の方は書き換えて使って下さい。 表示する ASCII コードは 0A0H から8文字(1行目)、0C8H から8文字(2行目)に書くことで表示されます。 文字を消す時にはスペース( 20H )を書きこんで下さい。 16文字x2行や、20文字x4行の場合も所定の範囲に ASCII コードを書くだけです。

18F1320はデータ・メモリー・サイズが 256byte で全てバンク0に配置されています。 提供するプログラムは 090H より後ろのデータ・メモリーを使います。 アクセスバンクで使う時にはSFRと重複する少々不便なエリアを使い、使いやすいエリアをユーザー用に解放しています。

他に TIMER1 を使う以外にユーザー・プログラムに制限はありません。 TIMER0 をイベントタイマーとして設定し、デモ用に使っていますが、LCDの動作には影響を与えません。 TIMER0 は自由に設定を変えて御利用頂けます。

下図は、LCDと配線用手作りユニバーサル基板を外した状態です。

DSC00142


このブログの記事を参考にすれば自作可能な内容だと思いますが、お忙しい方の為にプロジェクトとドキュメントを、デジマーケットのシステムを使って(可能な範囲でお安く)ダウンロード販売しています。

以下を含む ZIP ファイルです。
 (1)全てのアセンブラ・ソースを含むプロジェクト一式
 (2)回路図 PDF
 (3)部品表 PDF
 (4)ブレッドボード配線図 PDF
 (5)取扱説明書 PDF


 楽々PIC ダウンロード・コーナー
 RRP1320-1-01-1-Z  ← こちらで販売中です。

rrpdlc


以下は関連記事のインデックスにします。(ドキュメントの補足もあります。)

ブレッドボード 3 配線図 
 ドキュメントの一つにブレッドボード配線図があります。 U3 の向きを表現し忘れました。
ブレッドボードの穴のアドレスで F31 が U3 の1番ピンです。

RRP1320-1 コンフィグレーションビット 
 当ブログやダウンロードコーナーで入手したプロジェクトをビルドしても正常に動作しない場合は、 Configuration Bits set in code のチェックを外してビルドし直してください。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



RRP1320-1 回路図

 以前、「楽々PICとは」と言う記事に、このブログを通して進めるPICの学習方針のようなものを次のように書いています。

 学習ツールのような基板と開発環境を動かしながら、一部のプログラムを変更してみて、思い通りの変化が得られるかを確かめて勉強する方が近道だと思います。 このブログは「教える」程の知識の無い私が書き進める都合上、「学習ツール」のように広く学べる基板を使うのではなくて、「楽しんで使える道具」を作りながら勉強することを狙います。

これまでに幾つかの機能を試して、私自身ある程度PICが使えることを確かめ、「楽しんで使える道具」を構成するパーツとしてのプログラムを作って来ました。 USB など、まだまだ勉強が必要なこともありますが、そろそろ「楽しんで使える道具」を具体化したいと考えていました。

様々なキーワードでブログを訪れてくれる様子を見ながら、ゼロから学ぶからこそ目に見える成果が少なく、退屈な作業の中で挫折しかねないアセンブラ初心者の方々を支援したいと思います。 そして、工夫次第で使える道具を作り、応用例を紹介する予定です。 応用例はマイコンを勉強中の方でなくても興味を持って貰えるものを目指します。 道具を構成するハードウェアはブレッドボードで作ります。 特に気に入ったり、繰り返し使いたい場合はユニバーサル基板等でより小型軽量に作ることも可能です。

その回路に名前を付けてシリーズ化します。 シリーズ最初の回路 RRP1320-1 は下図の予定です。

RRP1320-1_回路図


表示器としてLCDを採用し、タイマーやスイッチ、温度センサー、赤外線リモコンと言った入力をトリガーに FET 出力を作り出します。 LCD制御や、赤外線リモコンなどの制御をゼロから学ぶのではなくて、初めは動作確認されたプログラムを使い、その機能と他の入出力を結びつけるプログラムを自作するだけで「目に見える成果を出せる環境」を提供することで支援したいと思います。 そして、公開されているソースを見て、あるいは一部を変更して結果を確かめながらLCD制御や赤外線リモコンの制御も自作できるようになると思います。 

アセンブラは他の人が作ったソフトウェア資産を活用し難いと思いますが、同じハードウェアであれば再利用可能な形で提供できると思います。 例えばLCD制御はデータ・メモリーの所定の範囲(仮想V-RAM)に ASCII コードを書くだけで(見かけ)自動的にLCDに表示される機能を提供ます。 この仮想V-RAMは PIC18F1320 には無いけれど RRP1320-1 にはある SFR のような存在と言えそうです。 既に「LCDに自動転送」と言う記事で機能を確認済みですが、少しでも利用しやすいように調整中です。

RRP1320-1_1

以下のサイトでは、部品表やブレッドボード配線図、プログラムの使い方など詳細なドキュメントと一緒にプロジェクト一式をダウンロード可能な形で提供しています。

rrpdlc



以下は関連記事のインデックスにします。

RRP1320-1-01 概要 
 一部をブレッドボードに実現して、所定のデーター・メモリーの内容をLCDに自動転送するプログラムを作りました。 データ・メモリーの所定の範囲(仮想V-RAM)に ASCII コードを書くだけで(見かけ)自動的にLCDに表示される機能を提供ます。

RRP1320-1-02 概要 
  RRP1320-1-01 に赤外線リモコン受信機能を追加して、RRP1320-1-02 を作りました。 赤外線リモコンを受光するとLCDの2行目に受信コードを表示します。 登録できる赤外線コードは16個、これに登録外の場合も合わせて17個のサブルーチンを準備して、赤外線リモコン受信の都度、17個の中のどれかをサブルーチン・コールします。

RRP1320-1-03 概要 
 「汎用タイマーの構想」に基づいて、RRP1320-1-03 を作りました。 内臓クロックを使ったタイマーですから、3%程度の誤差があるとは思いますが、使える場面が多いと思います。 プレタイマー、イベントタイマー、イベントピッチと言った時間や、繰り返し回数と言った定数は所定の範囲内で変更可能です。

RRP1320-1-04 概要 
 RRP1320-1-03 に温度制御機能を追加しました。 パン作りのイースト発酵などに応用出来そうです。 温度制御用に加温用と冷却用の出力を準備しました。 各々 EEPROM に保存した温度を超えると動作します。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。





ダウンロードコーナー
記事検索
アンケートに御協力下さい


アーカイブ
楽々PIC 宛てBlogMail


--- ご了承下さい ---

注意して記事を書いていますが、記事及びリンク先の情報による不利益について、一切責任を負い(負え)ません。
QRコード
QRコード
アクセスカウンター

    Atsuhiro Imai

    バナーを作成


    プロフィール

    jyosou_robot

    • ライブドアブログ