前回作ったミニ四駆ラップタイマーをスタンドアロンで使えるようにシールドをでっちあげてみました。まず、秋月でパーツ購入。
超小型LCDキャラクタディスプレイモジュール(16×2行バックライト緑)[SD1602HULB(-XA-G-G)] 900円
Arduino用ユニバーサル基板 200円
超小型スイッチングACアダプター9V1.3A 600円
後は、10kΩ可変抵抗とか2.54mmピンヘッダとかセンサー接続用の端子台とか。
液晶ディスプレイは「Arduinoで電子工作をはじめよう!」を参考に結線。注意点としてはコントラスト調整用のVdd(+可変抵抗)の接続は必須です。最初、大丈夫だろうと思ってつないでなかったら、何も表示されなくてあせりました。
で、実際どうなったかというと、下の写真みたいな感じ。コンパクトに仕上げました。
裏は適当。ハンダブリッジで接続しています。
プログラムはこんな感じ
/* ミニ四駆用ラップタイマー その2*/
#include
LiquidCrystal lcd = LiquidCrystal(12,11,10,5,4,3,2);
const int photoi = 13;
int lap_count = 0;
float lap_time = 0;
unsigned long start_time = 0;
String old_str;
String lap_str;
void setup(){
old_str="start";
lcd.begin(16,2);
lcd.print(old_str);
pinMode(photoi,INPUT);
}
void loop(){
int photoi_value=digitalRead(photoi);
char s[6];
if((micros() - start_time) > 100000){
if(photoi_value == 0){
lcd.clear();
lcd.setCursor(0,0);
lap_time=(double(micros() - start_time))/1000000;
dtostrf(lap_time,-5,2,s);
lap_str = "LAP:"+ String(lap_count,DEC)+" "+s;
lcd.print(old_str);
lcd.setCursor(0,1);
lcd.print(lap_str);
start_time = micros();
old_str=lap_str;
lap_time=0;
lap_count++;
}
}
delay(2);
}
エラー処理していないので、ラップタイムが100秒より長いと表示が桁あふれしますが、実用上は問題ないです(^^;)
さて、次はどうしよう。モーターの性能を測るために回転数計を作ってみようかな?
※コメント投稿者のブログIDはブログ作成者のみに通知されます