Indoor airplane world
 



 たとえばWirelessUSBなどのテストでは電源電圧が3.3Vのため、液晶モジュールも3.3Vで表示できたら便利です。そこで2.7Vから動作するという低電圧I2C液晶モジュールを使ってみました。低電圧I2C液晶モジュールのコントラストはソフトウェアで設定します。

 こちらのサイトにあるコントラスト調整用関数を利用して値を最大の15(0x0F)に設定してみたところ、3.3Vの電源電圧では表示しませんでした。データシートを調べたところ、コントラストの設定(P27)は6ビットで0から63(0x3F)の範囲で設定できることがわかりました。

 そこで最大のコントラストまで設定できるように関数を修正して0x3Fを設定したところ、3.3Vの電源電圧でうっすらと表示できる状態になりました。

 次にフレーム周波数をデフォルトの約182Hzから最大の347Hzに設定しなおしたところ、なんとか実用になるレベルのコントラストで表示(タイトル画像)できるようになりましたが、欲を言えばもう少しコントラストがほしい感じです。

LCD_I2C_WriteCmd(0x1F); // 3.3V時のフレーム周波数設定

LCD_I2C_SetContrast(0x3F); // 3.3V時のコントラスト設定


// LCDへコマンドを送信
BYTE LCD_I2C_WriteCmd(BYTE cbCmd)
{
I2Cm_fSendStart(LCD_I2C_ADDR,I2Cm_WRITE);
I2Cm_fWrite(0x00);
I2Cm_fWrite(cbCmd);
I2Cm_SendStop();

return (BYTE)1;
}


// コントラスト設定 6bit値:0~63(0x3F)
BYTE LCD_I2C_SetContrast(int nValue)
{
if(nValue >= 0x3F)
nValue = 0x3F;

return LCD_I2C_WriteCmd(0x70 | nValue);
}

低電圧I2C液晶モジュールを3.3Vで使う場合にお試しあれ。

コメント ( 3 ) | Trackback (  )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする


« ギターのスケール 2.4GHz送信機... »
 
コメント
 
 
 
これは (kojima)
2009-08-26 23:11:23
さっそくやってみます。

LCDの電源だけLiPOから直接供給してました。
 
 
 
イロイロ変更してみました (kojima)
2009-09-13 11:02:04
おはようございます。

こちらでもコントラストを6ビット全て設定できるようにしてみたのですが、電源電圧3.3Vでは何とか読み取れるレベルなのですが、3.0Vにするとまったく読み取れません。そこで他のレジスタの設定も変えてみました。

一番効果があったのはフォロワーの増幅率設定の変更で、コマンドコード0x6Aを書いている箇所を0x6Fにした所、コントラスト0x3Fでは真っ黒で何も読み取れない位にコントラストが変化しました。(フォロワーの増幅率を2倍から7倍に変更)

それとコントラスト値の設定は2箇所のレジスタに分かれているので、"LCD_I2C_SetContrast"を以下のようにしました。

// コントラスト設定 6bit値:0~63(0x3F)
BYTE LCD_I2C_SetContrast(int nValue)
{
if(nValue >= 0x3F)
nValue = 0x3F;

return LCD_I2C_WriteCmd(0x70 | (nValue & 0x0F));
}

さらに上位2ビットを設定するために、”LCD_I2C_Init”の4行目を下記のようにしました。

LCD_I2C_WriteCmd(0x5C + ((nContrast>>4) & 0x03));


 
 
 
コントラスト設定 (toko)
2009-09-14 11:39:22
kojimaさん、情報ありがとうございます。今度試してみます。
 
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。