迷走の果て・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

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

DABP発振回路を使ってキャパシタのESRを測定する構想(2)断念 2018/02/15
Androidアプリ:Resonance Calculator LC共振回路の計算に便利 2018/02/03
DABP発振回路を使ってキャパシタのESRを測定する構想(1)追記あり 2018/01/27
スマホとmicro:bitをBluetoothでつなぎたいのだが・・・。 2018/01/27
Androidアプリ:Signal Generator 2017/12/31
エレコム EHP-AHR192 を試す。(1) 2017/12/17
AliExpressでお買い物:TPS60403テスト 2017/12/02
AliExpressでお買い物:スイッチトキャパシタ電圧コンバータ三種(1) 2017/11/29
ATmega328 Maximum Frequency vs. VCC 2017/11/26
AC電力計(2) 2017/11/19

全記事表示リンク

全ての記事を表示する

リンク

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

月別アーカイブ

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  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)
電子工作 (434)
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)
Android (1)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

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

検索フォーム

アクセス

RSSリンクの表示

ブログリンク

FC2Ad

まとめ

Template by たけやん