DIPマイコンLPC1114FNでmbed入門 <5>VIメータの製作 ~その2~
■電圧と電流を同時に測れるVIメータの製作 ~その2~
電圧と電流を同時に測定できるVIメータ(Wメータ)をマイコン1114FNを使って製作しています。今回はVIメータのクラウド・プログラミングを楽しみます。
●mbed プログラミング
下記アドレスにてPublishしています。
https://developer.mbed.org/users/takeuchi/code/20150607_kiban_VImeter/
◆プログラム全体
// VI Meter Kiban
I2cLCD lcd(dp5,dp27,dp26); //sda scl reset unsigned int waddr=0x80,raddr=0x81; #define ON 1 #define batt1_ON lcd.seticon( I2cLCD::Battery_1 ) #define batt1_OFF lcd.clearicon( I2cLCD::Battery_1 ) #define arrow_down_on lcd.seticon( I2cLCD::ArrowDown ); /* int main() { led_flash(); led_green=ON; |
◆I2C INA226
<初期化>
cmd[0~2]にデータをセットして、waddrに書き込みます。
cmd[0]=0x05;// calibration registar |
<電流の読み出し>
cmd[0]に0x04をセットして、waddrに書き込み後、raddrより電流値を読み出すことができます。何も接続していないで読み出した時に-3.0~+3.0であれば、0補正としてihoseiにデータをセットします。
cmd[0]=0x04;// current read |
<電圧の読み出し>
cmd[0]に0x02をセットして、waddrに書き込み後、raddrより電圧値を読み出すことができます。
cmd[0]=0x02;// voltage read |
<電力の読み出し>
本プログラムでは電力はコメントアウトしていますが、cmd[0]に0x03をセットして、waddrに書き込み後、raddrより電力値を読み出すことができます。
cmd[0]=0x03;// power |
<I2C LCDのアドレス>
I2C LCDのアドレスは、I2cLCD.cppに書き込まれています。別のLCDでアドレスが違う際には、ここを書き換えてください。
#include "I2cLCD.h" #define I2CLCD_ADDR 0x7C #define RS_CMD 0x00 #define FUNC_SET1 0x38 #define CNTR_DEF 0x20 |
●完成!
完成したプログラムをmbed 1114FNに書き込み、ソケットに差し込みます。NiMH電池×2本を電池ボックスにセットします。
測定対象を未接続の状態で、電源スイッチをONにします。0.0V、0mAが表示されれば完成です。
この状態で、0mAとならない場合もありますが、リセット・スイッチを押す補正機能により0mAになります(ならない場合もある)。
INとOUTに小型ソーラ・パネルを接続し、NiMH電池×4本の充電電流を測定しています。
5.9V、185mAと計測しています。
便利に使うことができるVIメータをぜひ活用ください。
竹内浩一