- 概要
- Arduinio IDE配下のATtiny85からI2C-LCDを使う方法については先行事例が沢山ありますが,配線接続やライブラリの使用について肝心なところの記述が抜けている記事が多いです。
- 複数の先行事例を参照した「あわせ技」でATtiny85からI2C-LCDを使えるようになりました。
- これは,その成果をまとめた記事です。以下の記述をトレースすればI2C-LCDを簡単に動かすことができます。
- I2C-LCDはST7032コントローラを使用したものを想定しています。
- ハードウェア
- ライブラリ
- TinyWireM
ATtinyをI2Cのマスターとして動かすためのライブラリです。 - Arduino-ST7032改
I2CライブラリのWireやTinyWireMを利用してI2C-LCDを動かすためのライブラリです。- 下のURLをクリックしてarduino_ST7032-master.zipをダウンロードします。
https://github.com/kimio-kosaka/arduino_ST7032/archive/master.zip - Arduino IDEのメニュー「スケッチ」→「ライブラリをインクルード」→「.zip形式のライブラリをインストール」と進みます。
- ファイル選択画面になるのでダウンロードしたarduino_ST7032-master.zipを選択します。
- ライブラリにarduino_ST7032-masterが追加されます。
- インストールが終ったらArduino IDEを再起動します。
(再起動しないとインストールしたライブラリは使えません)
- 下のURLをクリックしてarduino_ST7032-master.zipをダウンロードします。
- ライブラリ Arduino-ST7032改 は オリジナルArduino-ST7032 をWireライブラリとTinyWireMライブラリの両方に対応するよう改編したものです。
- ATtinyを用いる場合はTinyWireMを,ATtinyでないときはWireを利用するようプリプロセッサの#if〜#else〜#endifで記述しています。
- I2C制御メソッドの接頭句がWire.で記述されているので,TinyWireMの場合は#define Wire TinyWireMの記述で接頭句の置換をしています。
- 詳細は下のURLのソースコードで。
https://github.com/kimio-kosaka/arduino_ST7032/blob/master/ST7032.cpp
- TinyWireM
- スケッチ
ATtiny85 から 小型I2C-LCD AQM0802A に”hello” を表示します,
#include <TinyWireM.h> #include <ST7032.h> ST7032 lcd; void setup() { // set up the LCD's number of columns and rows: lcd.begin(8, 2); lcd.setContrast(40); // Print a message to the LCD. lcd.print("hello"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000); } ※ 先頭行の #include <TinyWireM.h> を省略しても動きます。
- 参考
ATtiny85をArduino IDEで使う方法→「Arduino IDEでATtiny他の開発」