第一回ブレッドボード
第二回LCD表示 ←イマココ
第三回基板組立・ケース加工
第四回PNPトランジスタ対応
第五回(終)ケーシング・完成
------------------------------
第一回記事ではArduinoとシリアルモニタを利用して、hFEができるシステムを作りました。ただ、この場合だとパソコンとつなぐことが必要になってしまうので、なかなか実用的ではありません。
そこで、今回はLCDディスプレイを利用して表示させてみようということで作業を行いました。
しかし、なぜかLCDが壊れておりまして、16*2ディスプレイの右半分が利用できませんでした。(表示されない: コントラスト調整でもおかしいので壊れてるものと判断)
とりあえず手持ちに他のLCDはありませんし、8*2は動くのでこれで作業します。
LCDは SC1602BS-B(-XA-GB-K) を利用。通信ポートを避けるため、
(RS, RW, E, DB4, DB5, DB6, DB7) = (2, 3, 4, 5, 6, 7, 8)
※右辺はArduinoのデジタルOUTピン番号を示す
としています。プログラムは以下の通りです。(前回と同じことができるよう、シリアルモニター用の記述も残しています :灰色文字部分)
----------------------
#define Vcc 5
#define R1 100000
#define R2 100
#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7,8);
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("hFE Check");
}
void loop()
{
float V1 = analogRead(0);
float Vbe = analogRead(1);
float Vce = analogRead(2);
float Ib, Ic, hFE;
char out_Ic[16];
char out_hFE[16];
V1 = Vcc * V1 / 1024;
Vbe = Vcc * Vbe / 1024;
Vce = Vcc * Vce / 1024;
Ib = (V1 - Vbe) * 1000 / R1;
Ic = (Vcc - Vce) * 1000 / R2;
hFE = Ic / Ib;
Serial.print("Vbe=");
Serial.print(Vbe, 3);
Serial.print("[V]\n");
Serial.print("Vce=");
Serial.print(Vce, 3);
Serial.print("[V]\n");
Serial.print("Ib=");
Serial.print(Ib, 3);
Serial.print("[mA]\n");
Serial.print("Ic=");
Serial.print(Ic, 3);
Serial.print("[mA]\n");
Serial.print("hFE=");
Serial.print(hFE, 0);
Serial.print("\n");
Serial.print("\n");
dtostrf(Ic,5,3,out_Ic);
dtostrf(hFE,5,0,out_hFE);
lcd.setCursor(0,0);
lcd.print("Ic=");
lcd.print(out_Ic);
lcd.setCursor(0,1);
lcd.print("hFE");
lcd.print(out_hFE);
delay(5000);
}
----------------------
Arduinoだと直接%f(浮動小数点型実数)を出力ではき出せないらしいので、今回はdtostrf関数を利用しています。
dtostrf( 変換前データ, 表示桁数, 小数点以下表示桁数, 出力名 );
出力名はchar指定をし、lcd.printではき出すようにしています。実際に動かしてみた様子がこちら
LCDはコントラスト調整のための可変抵抗(分圧制御)をつないでいます。
接続方法等は 説明が面倒なので 秋月のページ参照。
第一回の記事にある可変抵抗部分 VR: 500kΩ ですが、手持ちになかったので固定抵抗付け替えでIcを見ていました。
今の画像はVRが0ΩのときのIc値。設計値で10mA最大くらいに使用と思っていたので、想定通りの数値でした。(hFEによって変わります)
また、VRが最大の500kΩのときのIc地は約3mAでした。hFEを見るのにはちょうど良い幅ではないかなと思っています。
ということで、定数や回路等はほぼ決まったので、次回ではケーシング等の作業をして完全に「単独で動く」ものを作ろうと思います(LCDも正常に動くものを取り入れます)
今回はここまで。