2015年9月7日月曜日

赤外距離センサーのサンプルスケッチ



//****************************************
//赤外距離センサーで障害物までの距離を測定。
//距離はLCDとSerialに出力
//****************************************
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7); //lcdタイプの変数を定義

int inAD;
float volt1,dst1;
int pinAD = 1;

//SETUP*********************************
void setup() {
  lcd.begin(16, 2);               // 行と列を設定
  Serial.begin(115200);
}


//MAIN LOOP******************************
void loop() {
  //ADポートから読み取り、電圧値に直し、距離を算出
  inAD= analogRead(pinAD);
  volt1=5.0*inAD/1024;
  dst1=26.549*pow(volt1,-1.2091);

//AD値と電圧を表示
  lcd.clear();
  lcd.print("AD=");
  lcd.print(inAD);
  lcd.setCursor(8,0);
  lcd.print(volt1);
  lcd.print("volt");

//距離表示位置を決める 
  if (dst1<10) {
  lcd.setCursor(3,1);
  } else if (dst1<100) {
  lcd.setCursor(2,1);
  } else if(dst1<1000) {
  lcd.setCursor(1,1);
  } else {
  lcd.setCursor(0,1);
  }
  
//距離を表示 
  lcd.print(dst1,1);   //小数点以下1桁
  lcd.print("cm");
  
//距離をシリアルに送信
  Serial.print(dst1);
  Serial.println("cm");

//測定表示周期(ms単位)
  delay(100);
  

}

0 件のコメント:

コメントを投稿