2015年07月19日

Arduino で液晶

 ちょっと思うところがあって、Arduino で液晶表示のテストをした。だいぶ前に秋月で買った「I2C接続小型LCDモジュールピッチ変換キット」をハンダ付けで組み立てた。

 Arduino Duemilanove の 3.3V, A4, A5, GND をそれぞれ液晶基板の Vdd+Reset, SDA, SCL, GND に接続した。

 「オレ工房」さんの「I2C液晶のArduinoライブラリ」をいただいて、「書類/Arduino/libraries」フォルダに入れ、Arduino 1.0.6 を立ち上げた。スケッチは下の通り。

#include <Wire.h> #include <ST7032.h> ST7032 lcd; void setup(){ lcd.begin(8, 2); lcd.setContrast(30); lcd.print("LCDTest"); } void loop(){ int8_t cont, inc; cont = 30; inc = -5; while (1) { lcd.setCursor(0, 1); lcd.print("cont="); lcd.print(cont); if (cont < 10) lcd.print(" "); lcd.setContrast(cont); cont += inc; if (cont == 0 || cont == 30) { inc = -inc; } delay(500); } }

 表示できました。コントラストの値が 5 ぐらいになると急に見えなくなる。

 5V でも動作することを確かめた。この場合、液晶コントローラのコマンドで "booster circuit"(昇圧回路)をオフにする必要がある。「オレ工房」さんのライブラリでは、昇圧回路のビット(Power/ICON control/Contrast set レジスタの bit 2)が1で決め打ちになっているので、これを設定できるように改造しないといけない。このパッチを当てたあと、上のスケッチの lcd.begin(8, 2)lcd.begin(8, 2, 0, 0); に変更する。液晶基板の Vdd/Reset を Arduino の 3v3 の代わりに 5V に接続して、変更後のスケッチをダウンロードすると、無事動いた。今度はコントラストの値が 20 ぐらいで見えなくなってしまう。たぶん電源電圧にもよると思うので、現場で調整が必要。

タグ:マイコン
Posted at 2015年07月19日 20:49:50
email.png