[][mobile][Homepage][BBS][Blog][YouTube][asablo]

過去の記事の検索が簡単にできるよ (・∀・) 例 ランチャー9
カスタム検索

有名I2CのキャラクターLCDの互換品を個別部品で作る2012/09/28 16:35:48



I2Cで制御できるキャラクターLCDがメジャーな物といえば、ストロベリーリナックスのSB1602BSB1602E、そして最近出てきたのが秋月電子通商から発売されているACM1602NIが有名だ。
ACM1602NIは既に解析を済ませ、互換ファームまで製作した。

ACM1602NI単体で利用しても面白いのだが、せっかくなので個別部品による構成で、ハードウェア互換を作ってみようと思う。

使用するマイコンはPIC16F689pdf)。当初は16F1827なども考えたのだが、互換モードで動かすにはLCDに接続するのに8ビット必要である事と、ACM1602NIに同じPICマイコンが搭載されているので、これを採用。値段も130円と手頃で手に入りやすいPICである。

LCDは一般的な5V駆動のキャラクターLCDを使う。これは500円で手に入る。PICで発振部分を設け、負電圧を生成することで、3.3Vでも対応できる。5VのキャラクターLCDを簡単に3.3Vに改造もできるので、3.3V専用で実験程度ならこれでも良いだろう

回路図構成はPIC、LCD、ダイオードが2つに0.1uFコンデンサが4つ、半固定抵抗10KΩ、あとは抵抗2本。電子工作をやっている人なら手持ちの物が代用できる。I2Cの抵抗は、状況に応じて取り付ける。



プログラムの作成を開始。最近出てきたMPLABXの勉強がてらにプログラムを組んでいく。新しいツールは最初は何でも煩わしいものだが、慣れてくるとその便利な特徴が見えてくる。

負電圧用の発振は、いつもであればTIMER1を使用してCCPピンに出力させるだけなのだが、今回は互換を保つ事が優先なので、TIMER0によるソフトウェア割り込みで約6KHzの発振を出力とした。カウンターオーバーフローを利用するので、割り込み処理時のオーバーヘッドが出て誤差とか出るだろうが、この用途では問題ない。


I2CキャラクタLCD互換

ある程度プログラムが出来上がったので、ブレッドボードでチマチマ回路を作っていく。配線が混雑しているが、使用している部品は実に少ない。arduinoで動くストリナ駆動のプログラムを利用してデバッグをしている。



LCDとPICでは自作のリボンケーブル治具で接続。リボンケーブルを利用する時、よく間違えてしまうのだが、数え方が2,1,4,3,6,5,・・・と2本ずつ奇数と偶数がひっくり返るので注意して行なっている。先端はヘッダーピンをはんだづけして熱収縮チューブで処理。これを一つ作っておくと、こういう実験には便利である。



他のストリナI2C LCDにも繋いでみる。前に作ったインターネットラジオ(前半後半)。これに繋いでみる。



3.3Vでなんの違和感もなく普通に表示。これで動作的に互換品が出来上がった。



互換品であるが、最初の電源投入時はこういう表示になっている。種別とI2Cのアドレス表示を行った。私がデバッグで混乱しないようにという事もあるのだが、外部からLCDが初期化されると消えるので大きな問題にはならないだろう。色々なカスタマイズは、ソースを公開しているので、printfの記述をREMしてビルドすれば良い。

I2Cアドレスについては、空きピンであるRB5の部分をGNDに落として電源を落とせば、別のアドレスに定義される。ACM1602のアドレスが0x50とEEPROMと被ってしまっているが、アドレスが変更できるのでACM1602NIのファームウェアを入れ替える価値はあるだろう。



コメント

_ yuki ― 2013/07/06 14:19:49

このプログラムは20x4行キャラクタLCDでも使用可能ですか?

変更が必要な個所がある場合はメールで教えていただけたら嬉しいです。

_ air_variable ― 2013/07/07 11:35:04

互換I2C LCDのプログラムは、I2Cデータを直接LCD駆動LSIに送っているだけですので、そのまま利用は可能と思われます。
ただ、試したわけではありませんのであしからずご了承下さい。
http://www.ne.jp/asahi/air/variable/picmel/applications/ACM1602NI/index.html

参考として、以前、SC2004用のLCDプロジェクトを公開しているので、そのソースコードが参考になると思います。
http://www.ne.jp/asahi/air/variable/picmel/applications/lcd_serial/16f1827/index.html
http://www.ne.jp/asahi/air/variable/picmel/applications/lcd_serial/16f1827/lcd_serial8x2_20110615-154216.zip

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
全角で「あ」をタイプしてください。Japanese language only.

コメント:

トラックバック





Google
www Blog HP BBS


air_variableサイトをまとめて検索 
カスタム検索
[][admin][mobile][Homepage][BBS][Blog][YouTube][asablo]