根性無しの山羊座

山羊座のくせに、飽きっぽく根性無しです。

Arduinoでミニ四駆ラップタイマーを作ってみました(その2)

2014-01-27 21:46:54 | ミニ四駆とかArduinoとか工作関係

 前回作ったミニ四駆ラップタイマーをスタンドアロンで使えるようにシールドをでっちあげてみました。まず、秋月でパーツ購入。


超小型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秒より長いと表示が桁あふれしますが、実用上は問題ないです(^^;)

さて、次はどうしよう。モーターの性能を測るために回転数計を作ってみようかな?

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« イチゴ狩りに行ってきました | トップ | トライゲイル&フレイムアス... »
最新の画像もっと見る

コメントを投稿

ミニ四駆とかArduinoとか工作関係」カテゴリの最新記事