迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

I2CエキスパンダPCF8574を使ったキャラクタLCD表示のテスト(3)

テスト中の写真です。
LCD右側の表示はBYTE型の変数をインクリメントしながら表示させてます。
I2C_LCDアダプタ6

Arduinoならライブラリーが豊富で動かすのもラクなんでしょうが、なにせマイナーなPSoC1を使ってますので、情報が少なく苦労しました。
自前のLCDの初期化ルーチンがおかしいのか、電源をオフにしてすぐオンすると表示が出なくなることがあります。
データシートどおりの初期化をしているつもりなのですが・・・。
原因は今のところわかりません。
PSoCではキャラクタLCDが簡単に接続できるのでLCDの初期化ルーチンなどは気にしてませんでした。
HD44780のデータシートは今までまともに読んだことがなかったのでいい勉強になったと思っておきます。

追記
初期化ルーチンに不備がありました、手直ししたところ問題なく動作するようになりました、やれやれ。
スポンサーサイト

I2CエキスパンダPCF8574を使ったキャラクタLCD表示のテスト(2)

キャラクタLCDの多くは制御にHD44780および互換品が使われています。
詳しい説明ChaNさんのサイトにあります。ここは有名なサイトですのでご存知の方も多いでしょう。
キャラクタLCDとは4ビットモードで接続します。
ちょっと厄介なのがタイミングです。
HD44780のデータシートから引用します。

HD44780Timing_Chracteristics_20140830090947f10.png

RSおよびRWはEの立ち上がり前に確定していること、DBはEの立ち下り後に一定時間ホールドしていることが必要です。
このタイミングを満たすためにはPCF8574から3回出力する必要があります。
回路図を再度載せておきます。

I2C_LCDアダプタ回路図


(1)EをLレベルにしてRS、RW、DBを出力
(2)EをHレベルにしてRS、RW、DBを出力
(3)EをLレベルにしてRS、RW、DBを出力

1回で済ませる方法も考えましたが、外部に回路が必要になりますのでやめておきます。
簡単にはワンショットマルチバイブレータが使えます。

PCF8574の制御にはPSoCを使いました、ユーザーモジュールI2Cmを使い、次のようなコードでI2Cで4ビットデータと制御データを3回送ります。
一部抜き出したコードですし、おまけにマイナーなPSoCのAPIを使っているのでPSoCerでなければわかりにくいとは思いますが^^;;

void Write_LCD_Nibble(BYTE N, BYTE RS)
{
BYTE  buf[3] ;
buf[0]=N | RS ;
buf[1]=N | RS | Enable ;
buf[2]=N | RS ;
I2Cm_bWriteBytes(slaveAdr , buf  , 3 , I2Cm_CompleteXfer) ; 
}

I2CエキスパンダPCF8574を使ったキャラクタLCD表示のテスト(1)

オークションでLDCディスプレイ-I2Cアダプタを入手しました。
同種のものがアマゾンでも入手できるようです。

I2C-8ビットパラレル入出力エキスパンダPCF8574を使っています。
ピン配置が横一列のLCDモジュールと配置が合わせてあるので接続が簡単に出来るとのことです。
I2C_LCDアダプタ

裏側を見てみるとヘッダピンが半田付けされてます。
I2C_LCDアダプタ2

このままではLCDにつなげられないので無理やり外してピンソケットと交換しました。
I2C_LCDアダプタ3

回路図を調べてみました、バックライト制御用のトランジスタが載ってますが、使わないので回路図上では省略してます。というか調べてません^^;;
アマゾンの同様の品の回路が同じかどうかわかりません。
LCDのDB4~DB7を、PCF8574のP0~P3につなぐか、P4~P7につなぐかのどちらかですが、当然ソフト側で対応が必要です。
I2C_LCDアダプタ回路図

PSoCで電圧・電流計

実験中の電流計に部品を追加し電圧も測れるようにしました。
SimpleAmmeter_Voltmeter2.png


電圧_電流計実験中
写真に写っているのはだいぶ前に作ったキットの実験用電源です。
アナログメーターが付いていてスイッチで電圧と電流が切り替えられるのですが、見にくいのです。
思いついてこの電圧・電流計をつないでみました。
手持ちのセメント抵抗をつないで電圧と電流を測定してみました。
接続方法は下の図です。
SimpleAmmeter_Voltmeter2使い方
問題は電流値がマイナスになることですが、こういう使い方を考えてなかったからです。
ソフトで符号を反転させておけば問題ないです。

接続方法を変えればマイナスにはならないのですが、今度は電圧表示が負荷の電圧と電流検出抵抗のドロップ電圧を合計した値になってしまいます。

ただの思いつきで作ったものが何とか使い物になりそうです。

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

ブリッジドT発振回路(3)光るランプ Oct 16, 2017
ダイソーのかぼちゃで電飾 Oct 08, 2017
ブリッジドT発振回路(2)オペアンプとっかえひっかえ Oct 07, 2017
ブリッジドT発振回路(1) Oct 02, 2017
AD587を使った基準電源【追加有り】 Oct 01, 2017
DABPを使った発振回路(5)ランプの特性、分圧抵抗を変更、コンデンサを変更。 Sep 24, 2017
DABPを使った発振回路(4)ランプ変更(修正版) Sep 18, 2017
DABPを使った発振回路(3)LEDからランプ制御へ Sep 09, 2017
DABPを使った発振回路(2) Sep 03, 2017
DABPを使った発振回路 Aug 27, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

このブログをリンクに追加する

月別アーカイブ

10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (420)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (32)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん