1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Arduinoでシャープ製 測距センサー(GP2Y0A21YK0F)を使用する方法

Posted at

#用意するもの
・Arduino
・シャープ製(GP2Y0A21YK0F) http://akizukidenshi.com/catalog/g/gI-02551/
・ブレッドボード
・各種配線
#シャープ製 測距センサー(GP2Y0A21YK0F)について
unnamed.jpg

番号 意味
1 V0(信号線)
2 GND
3 Vcc(4.5-5.5V)
※色がややこしいので配線時は注意。
※測距範囲:10〜80cm

#とりあえず信号を見る。
センサから来た信号を読み取り、シリアルモニタで表示させるPG。

const int ANALOG = 5;

void setup() {
  Serial.begin(9600);
 
}

void loop() {
  int distance = analogRead(ANALOG);
  Serial.println(distance);
  
}

#配線
Untitled Sketch_ブレッドボード.jpg
ArduinoはUSB給電。センサのみ外部電源使用。

#注意点
・測距センサVccにArduinoに搭載されている5Vを使用すると、一定間隔でノイズが入り、数値が乱れた。
→外部電源で測距センサを駆動させることで、ノイズを許容範囲に収めることができる。

検証状況:センサを天井に向け固定(天井テーブル間距離1.5mなので測定範囲外)

・Arduino5V使用時。一定間隔で数値が大きく変動する。コンデンサを突っ込んだりしても変わらず。
スクリーンショット 2019-08-16 16.28.27.png
・外部電源使用時。変動小。
スクリーンショット 2019-08-16 16.29.28.png

#せっかくなので、実距離にする。

float Vcc = 5.0;//電源電圧
float distance_1;
float distance_2;
const int ANALOG = 5;//センサ信号入力

void setup(){
 Serial.begin(9600);//シリアル通信
  }
 
void loop(){ 
 distance_1 = Vcc*analogRead(ANALOG)/1023; //(5.0V*センサ数値/1023)1023は5V入力時の値
 distance_2 = 26.549*pow(distance_1,-1.2091); //距離換算
 Serial.println(distance_2); 
 delay(100); 
 } 
スクリーンショット 2019-08-16 22.57.21.png cm換算になりました。精度的には結構正確に出てそう。要検証ですが・・・ 他にも超音波測距センサーを手に入れたので後々比較したいと思います。
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?