#用意するもの
・Arduino
・シャープ製(GP2Y0A21YK0F) http://akizukidenshi.com/catalog/g/gI-02551/
・ブレッドボード
・各種配線
#シャープ製 測距センサー(GP2Y0A21YK0F)について
番号 | 意味 |
---|---|
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);
}
#配線
ArduinoはUSB給電。センサのみ外部電源使用。
#注意点
・測距センサVccにArduinoに搭載されている5Vを使用すると、一定間隔でノイズが入り、数値が乱れた。
→外部電源で測距センサを駆動させることで、ノイズを許容範囲に収めることができる。
検証状況:センサを天井に向け固定(天井テーブル間距離1.5mなので測定範囲外)
・Arduino5V使用時。一定間隔で数値が大きく変動する。コンデンサを突っ込んだりしても変わらず。
・外部電源使用時。変動小。
#せっかくなので、実距離にする。
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);
}