■ I2C-LCD ACM1602NI 温度・湿度・気圧計+時計の製作 ■


 I2C接続のキャラクター液晶表示器「ACM1602NI-FLW-FBW-M01」を、BASCOM-AVRで使えないかという問い合わせがあり、手持ちがなかったので実物をお借りしてBASCOMのライブラリを作りました。
 LCDは返却不要と言うことで頂くことになり、せっかくなので何かの製作に使えないかと思案していました。
 これまでテストや製作をした、温度・湿度・気圧センサーやRTC(時計)モジュールの予備が残っており、それらも活用するために、配線の少ないI2C接続で小型にまとめた、各種センサー付きの時計を製作しました。

  ○温度と湿度センサーを搭載。
  ○気圧値を測定し、24時間前の変移から天気を予測。
  ○簡易気圧グラフ表示で、2日間の気圧変化を見ることが可能。
  ○温度・湿度・気圧の、1日の最高値と最低値を表示。



回路の解説
 
1.電源回路

 
 ・USB電源(5V)、または3.3V〜5VのACアダプターから電源を供給します。
  (それぞれのジャックを選択して取り付けして下さい)
 ・時計の時刻は、3Vのボタン電池でバックアップされます。
  (電源がOFFになっても、時刻カウントだけは継続して動き続けます)

2.AVRとクロック
 
 ・AVRマイコンはATtiny85-20PUを使用し、クロックは内蔵RC発振器の1MHzで動作します。

3.時計(時刻)カウント
 
 ・RTC-8564NBリアルタイム・クロック・モジュールを使用します。
 ・I2Cバス(SCL・SDA)で通信し、制御します。
 ・モジュールから1Hzのパルスを発生させて、時刻の更新に使用しています。
 
 ※ モジュール内の、バス・プルアップ抵抗JP1・JP2と、LED点灯用のJP3は使用しないで下さい。
  (バックアップ時に、プルアップ抵抗からAVR回路へバッテリー電流が逆流してしまいます)

4.温度・湿度センサー
 
 ・Aosong Guangzhou Electronics社の「AM2321」を使用しました。
 ・このセンサーは、1-Wireバスで通信するDHT22(AM2302)センサーに、I2C通信モードを
  追加し小型化したセンサーです。
 ・2秒間隔で、温度と湿度を測定しています。
 ・詳細は、デジタル温度・湿度センサー AM2321を制御のページを参照して下さい。

5.気圧センサー
 
 ・秋月電子の「MPL115A2使用大気圧センサーモジュール」を使用しました。
 ・I2Cで通信し、デジタルデータで気圧値を読み出します。
 ・2秒間隔で気圧を測定し、32個の移動平均を行い表示されます。
 ・このセンサーは、個々に較正用の係数データと温度センサーを持っており、それらを既定の
  数式を使用して、多少複雑な計算をする必要があります。
 ・日本語マニュアルと使い方は、小型のデジタル気圧計 MPL115A2・MPL115A1を制御
  参照して下さい。

6.LCD表示器
 
 ・「ACM1602NI-FLW-FBW-M01」 16文字×2行の白色バックライト付きキャラクター表示
  モジュールを使用します。
 ・使用する電源電圧によって、LCDのバックライト電流(約12mA)を変更する必要があります。
  ジャンパーピン(J1)で、5Vと3.3Vを選択して下さい。
 ・このLCDは、パネルの制御基板にPICマイコンが搭載されており、I2C通信で表示制御します。
 ・電源を投入した状態でLCD表示がクリアに見えるように、5KΩの半固定抵抗器でコントラストを
  調整して下さい。
 
 ・BASCOM-AVRで制御する際には、専用のライブラリを組み込む必要があります。
 ・専用ライブラリ「Lcd_ACM1602NI.lib」を、
  C:\Program Files\MCS Electronics\BASCOM-AVR\LIB\ に保存してからコンパイルして
  下さい。
 
 ※専用ライブラリを使用して各自でプログラムを作るときは、下記を記載して下さい。
  (プログラムの一例です。このページの製作(装置)には関係がありません。)
 
Config Scl = Portb.2
Config Sda = Portb.1
I2cinit
Config Lcd = 16 * 2
$lib "Lcd_ACM1602NI.lib"
Initlcd
'I2CバスのSCLラインを接続するポートピンを設定する。(任意)
'I2CバスのSDAラインを接続するポートピンを設定する。(任意)
'I2Cバスを初期化する。
'LCD表示を16文字×2行に設定する。
'LCD [ACM1602NI-FLW-FBW-M01]用のライブラリを組み込む。
'LCDを初期化する。
 
  これ以降は、通常のLCD命令が使用できるようになります。

7.操作スイッチ
 
 ・押しボタン式の汎用タクトスイッチを、基板上に取り付します。
 ・ケースに合わせて、任意のスイッチを選択して下さい。



回 路 図  PDF版 ACM1602NIclkCir.pdf (132KB)

部品配置図  GIF版 ACM1602NIclkPcb.gif (143KB) 部品表
 
   
注意! この図面を使用した、いかなる損害にも責任を負いません。

プログラム  テキスト形式 ソースファイル  ACM1602NI101.TXT (60KB)
 BASCOM-AVR用 ソースファイル
 (BASCOM-AVR(製品版)が必要です)
 ACM1602NI101.bas (60KB)
  
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。

       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)


 
左側面

右側面
 底面

 

基板 部品面

 
基板 ハンダ面

 
基板 前面

 
基板 後面


AVRマイコン ATtiny85-20PUの、ヒューズ ビット書き換え
 
◎BASCOM-AVRでコンパイルして、「AVRISPmkII」の書き込みウィンドウを使用する場合は、
  ヒューズ ビットが自動で変更されますから、以下の操作は不要です。


HEXファイルを使用する場合は、下記ページの書き換え方法 「6.」を、以下の様に変更して、ヒューズ ビットの書き換えを行って下さい。
    ヒューズ ビット書き換え
 
 6.[ Fusebit High 543 ] の右欄 [ 111:BOD disabled ] をクリックすると、プルダウン
   メニューが現れますから、 [ 101:BODLEVEL 2.7 V ] を選択します。
 7.右側の [ Write FSH ] ボタンをクリックすると書き換えが完了します。

「AVRWRT」 ライターの場合は、 AWRTf_ACM1602NIclk.gif



製作について
 
・ユニバーサル基板をLCDのサイズに合わせてカットしてありますが、ケースに合わせて基板の
 大きさを決めて下さい。
・部品表は、部品の背が低い順に記載してありますので、この順番に取り付けて行きます。
 
・AM2321は、2.54mmピッチに足を広げて取り付けるか、リード線を継ぎ足して加工して下さい。
・電池ホルダーの高さがLCDと干渉するため、電池ホルダーの3本の固定足を0.5mmカットして
 下さい。
・ISPコネクターにL型のピンヘッダを使用する場合は、コネクターが刺さるように基板から0.5mm
 浮かせて取り付て下さい。
・LCDバックライトのジャンパーピンは、使用する電圧が固定の場合は不要です。
 また、バックライトを点灯/消灯する場合は、スイッチを使用して下さい。
・操作用のタクトスイッチは、ケースに合わせて任意に選択して下さい。
・USB電源、または5VのACアダプターに合わせて、それぞれのジャックを選択して取り付けて
 下さい。



操作方法
 
1.電源投入
 
 ・初めて電源を入れたとき、またはボタン電池を交換したときは、2014年1月1日0:00から時刻が
  スタートします。
 ・電源を入れてもリセット動作しない場合は、ISP端子の5ピンと6ピンを一瞬だけショートさせて
  下さい。 (ハードウェアの強制リセットが働きます)
 
 ・通電した状態で24時間が経過すると、天気予報が表示されるようになります。
  電源を切ると、再度24時間経過するまで、予報は表示されません。
 ・同様に簡易グラフ表示も、電源を切るとそれまでの記録が消去されます。
 ・また、最高値/最低値も、電源を入れた時からの記録になります。

 
2.LCD表示の操作
 
 ○ [SW1] 画面選択
 
  ・スイッチを押すたびに、下記の内容で表示が切り替わります。
 
表示順序 画 像 表示内容
上段 時:分 (秒)  温度
下段 気圧値 天気予報 湿度
上段 時:分 (秒)  温度
下段 (年) 月/日 曜日  湿度
簡易気圧グラフ
3時間の平均気圧値、左が2日前で右が現在値
上段 最高値 温度 湿度 (気圧)
下段 最低値 温度 湿度 (気圧)

  ・時刻は1秒間隔、測定値は2秒間隔で更新されます。
  ・の日付表示は、5秒後に自動で気圧表示へ戻ります。
   プログラム冒頭の「Const Datedisptime = 5」で、戻りの秒数を変更することができます。
  ・天気予報は、「晴れ」、「晴-時々曇り(曇り-時々晴)」、「曇り」、「雨」、の4種類です。
   (電源を入れてから24時間経過しないと、予報は表示されません)
  ・電源を入れた直後の「簡易気圧グラフ」は、下矢印(下限値)が並びます。



 ○ [SW2] 設定 (+)
 
  ・「SW1]で選択された画面により、[SW2]の動作が変わります。
 
表示順序 画 像 表示内容
上段 AM/PM 時:分  温度
[SW2]で12時間制 表示
上段 時:分 秒  温度
[SW2]で24時間制 表示
[SW2]を長押し
[気圧値]と[日付]の自動切り替え
[SW2]を長押し
[気圧値]を固定表示
 
  ・[気圧値]と[日付]の自動切り替えは、5秒間隔で交互に表示されます。
  ・この設定は内蔵EEPROMに記憶されますので、電源を切った後も残されています。



表示順序 画 像 表示内容
[SW2]で日付表示変更
下段 月/日 曜日 湿度
[SW2]で日付表示変更
下段 年/月/日 湿度
 
 ・この設定は内蔵EEPROMに記憶されますので、電源を切った後も残されています。



表示順序 画 像 表示内容
簡易気圧グラフ
[SW2]を長押し
グラフのベース位置を設定
[SW2]でベース位置を10hPaマイナス
[SW1]で設定終了
 
  ・[X]軸は、バー1文字(キャラクタ)が3時間の平均気圧値で、左が2日前、右が現在値です。
  ・[Y]軸は、1ドット2.5hPaで、下が990hPa、上が1029hPaの40hPaレンジです。
  ・気圧値が表示の上限値または下限値を越えると、上矢印と下矢印で範囲外を表します。
  ・[Y]軸のベース値(デフォルト990hPa)を変更できますから、高所にお住まいの方は変更して
   下さい。 (990hPa 〜 500hPa) (約100m高で-10hPa)
  ・表示の上限値または下限値を越えた場合も、[Y]軸のベース値を調整することで、オフセット
   を付けて表示することができます。 (上限は1029hPaまで)
  ・この設定は内蔵EEPROMに記憶されますので、電源を切った後も残されています。



表示順序 画 像 表示内容
上段 最高値 温度 湿度
下段 最低値 温度 湿度
気圧の最高値と最低値
[SW2]で表示項目変更
[SW2]を長押し
[最高値]と[最低値]の初期化
 
  ・[最高値]と[最低値]は、日付が変わった時点(0:00)で自動的に初期化されます。

 
3.時刻設定
 
 ・[SW1] と [SW2] を同時に押すと、時刻設定モードに入ります。
 
 ・時刻設定は、下記の順に設定できる項目でカーソルが点滅します。
 
(下位2桁) → 月 → 日
  → 時 → 分 → 秒 → 終了
 
  (年は、西暦2000年から2099年までの範囲で対応しています)
  
 ・[SW2] で、設定値が増加します。 (押し続けると、自動で増加します)
 ・[SW1] を押すと、次の項目に移ります。
 
 ・[End]の位置で [SW2] を押すと、時刻の設定が終了します。

 
4.プログラムバージョン
 

 ・[SW1]を押したまま電源を入れると、LCDにプログラムバージョンが表示されます。
 ・[SW1]を離すと、通常動作に入ります。


 
◎ このプログラムのHEXファイルと、書き込み済みAVRを、実費頒布しております。
 
  基板・部品の頒布室



   電子工作の部屋 Top へ 前のページへ戻る