Arduinoで赤外線測距センサー”GP2Y0A710K”を使ってみた
Raspberry Piレーダーを”360度”仕様にしてみたで使っている赤外線測距センサーGP2Y0A710Kがもう一つあるので、Arduinoでも使ってみました。
参考にしたサイトはこちら。
arduino使い方:赤外線測距モジュール(GP2Y0A21)
VCCの2本をArduinoの5Vに、GNDはGNDに、VoをAnalog Inの0番に接続。
こんな感じになります。
Raspberry Piの接続に比べて、ずいぶんあっさりしてますね。
Raspberry Piにはアナログ入力がないのに対し、Arduinoはアナログ入力を持っているため、MCP3002のようなA/D変換が不要な分、簡単につなげられます。
ただし、線を直接突っ込んだだけではすぐに抜けてしまうため、ジャンパ線とテープで止めて使うことにしました。
ArduinoはRaspberry Piと違って、PCから切り離してしまうと値を表示できないため、16×2のLCDに表示させることにしました。
こちらを参考にLCDを設定しました。
16×2 I2C LiquidCrystal Display(LCD) | osoyoo.com
上のサイトで”Download LiquidCrystal_I2C.zip library file and Install I2C library:”からLCD用のライブラリをダウンロードするんですが、これをArduino IDEに取り込むには、「スケッチ」-「ライブラリをインクルード」で「.ZIP形式のライブラリをインストール」を選びます。
ダウンロードしたZIP形式のファイルを選択すると、LCD動作に必要なライブラリが入ります。
まずはこんなコードを組んでみました。
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
Serial.begin(9600) ;
lcd.init();
lcd.backlight();
}
void loop() {
int ans ;
float volt ;
float distance ;
ans = analogRead(0) ;
volt = ans * 5.0 / 1023 ;
distance = ( 18.679 / volt ) -4.774 ;
//Serial.println(ans) ;
lcd.print(distance);
delay(300) ;
lcd.clear();
}
Arduinoのアナログ値は、Raspberry Pi+MCP3002と同様、電圧(5V)を0~1023の値にして返してくるため、値を距離に変換するのにRaspberry Piにシャープ製の赤外線距離センサー”GP2Y0A710K”つけてみたでつくった近似式を利用。
ただ、表示される距離がどうも倍くらいありそう・・・
てことで、
こんな感じにしてもう一度距離と電圧の校正を実施。
この式を元にコードを作り直し。
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
Serial.begin(9600) ;
lcd.init();
lcd.backlight();
}
void loop() {
int ans ;
float volt ;
float distance ;
ans = analogRead(0) ;
volt = ans * 5.0 / 1023 ;
distance = ( 9.5974 / volt ) -3.0086 ;
Serial.println(ans) ;
lcd.print(distance);
lcd.print("m");
delay(300) ;
lcd.clear();
}
これでまあまあ正確な距離を測定することができるようになりました。
Raspberry Piに比べて、反応速度は上々。数値しか返してきませんが、例えば車間距離などを測るだけならこんなのでもOKかと。
実はRaspberry Piでやりそこなった車載測距センサーとして使おうかと思ったわけです。
Arduinoならもっと手軽に載せられそうかなぁと。
ちょっと基板むき出しで、このままではやや載せにくいですが、なにか適当なケースにでも入れて今度こそ車載を目指してみよう、かな?
« ペットボトルで紐を作る!?”Plastic Bottle Cutter” | トップページ | 40m四方360度スキャン可能な”sweep” »
「Raspberry Pi・Arduino・電子工作」カテゴリの記事
- 名古屋 大須へ行ってきました(2024.04.28)
- Raspberry Pi 5用電源購入(2024.04.19)
- Interface 2024年5月号はRaspberry Pi 5特集(2024.03.26)
- Raspberry Pi 5とPCがつながらなかった理由は「プライバシーセパレーター機能」のせいでした(2024.03.12)
- Raspberry Pi 5に日本語LLM(ELYZA-Japanese-Llama-2-7b-fast-Instruct)を入れてみた(2024.03.10)
« ペットボトルで紐を作る!?”Plastic Bottle Cutter” | トップページ | 40m四方360度スキャン可能な”sweep” »
コメント