nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

昨日の続き、苦戦

まずはオシロでVlcdを計りましたが、Vddと同じ電圧しか出ません。コマンドがうまく入っていない。ではこの間表示が出たのは何なのか・・・。

i2cのやりとりが不安定なのかもという心配も出てきたので、別途アイデアを考えることにします。


追加修正

このあと、お店の方に問い合わせたり、試行錯誤したりして2.5Vでの動かし方わかりました。閾値コマンドは結局不明なままです。次を参照してください。

http://d.hatena.ne.jp/nobcha23/20120704/1341383345


ところで、このブログにググッたり、リンクをたどったりして、いらした方で過去書き込みを参照になりたい場合、次のホームページにまとめ情報も一部ありますので、覗いてみてください。

http://chitose6thplant.web.fc2.com/

その後さらに追記次のような連続コマンドでイニシャライズするとよいようです。

/*******************************
 *  LCD初期化処理 連続バイト
 *******************************/
void lcd_init2(void) {			// PCF2119マニュアル掲載お約束 
	__delay_ms(100);		// 100mS delay 電源安定まで待つ 
	lcd_cmd(0x30);			// 8bit long IF
	__delay_ms(5);			// 5mS delay
	lcd_cmd(0x30);			// 8bit
	__delay_ms(5);			// 5mS delay
	lcd_cmd(0x30);			// 8bit
	__delay_us(40);			// 40uS delay

	i2c_writeto(LCD_AD);		// LCDアドレスをOPEN
	i2c_putbyte(0x00);		// CO:0(STOP),RS:0 コマンドです

	i2c_putbyte(0x35);		// FUNCTION_set 8bit M:1:2line H:1
	i2c_putbyte(0x41);		// voltage multi
	i2c_putbyte(0x80|VLCD);		// Vlcd Va Set
	i2c_putbyte(0xC0|VLCD);		// Vlcd Vb Set
	i2c_putbyte(0x34);		// FUNCTION_set 8bit M:1:2line H:0

	i2c_stop();			// stop

	lcd_cmd(0x01);			// Clear display
	__delay_ms(100);		// 100mS待ち
	__delay_ms(100);		// 100mS待ち
	__delay_ms(100);		// 100mS待ち
	__delay_ms(100);		// 100mS待ち

	lcd_cmd(0x0F);			// DISP on, Cursor on
	lcd_cmd(0x06);			// Entry mode I_D:1 S:0

	}