SHARP GP2Y0A02Y и GP2Y0A21Y подключение к Arduino

Опубликовано 25.07.2015 12:38:00


В данной статье рассмотрим подключение и работу с ИК-датчиком измерения расстояния SHARP GP2Y0A02YK0F.
В отличие от того же ультразвукового дальномера, данный датчик имеет гораздо более скромный диапазон измерений, но все равно обладает рядом полезных отличительных свойств. Например, данный датчик позволяет измерять расстояние даже через прозрачные поверхности (правда, теряя точность показаний, но все же).

 

Подключение датчика : 

GND на любой из GND пинов­­­ ардуино

OUT на любой из аналоговых входов ардуино (в примерах подсоединено к A0)

VCC на + 5 вольт на ардуино


 

Основные технические характеристики:

• Диапазон измерения расстояния: от 20 до 150 см

• Аналоговый выход

• Размеры: 29.5x13x21.6 мм

• Потребление тока: 33 мА

• Напряжение питания: от 4.5 до 5.5 В


 

Для работы с датчиком рекомендуем использовать библиотеку SharpIR.

Официальная документация и ссылка на скачивание: http://playground.arduino.cc/Main/SharpIR

А также GitHub библиотеки: https://github.com/guillaume-rico/SharpIR.

Её необходимо распаковать и добавить в папку "libraries" в папке с Arduino IDE. Не забывайте перезагрузить среду, если на момент добавления IDEшка была открыта.

 

В чем особенность данной библиотеки и почему именно её рекомендуем к использованию? Ответ прост и кроется в принципе её работы. Для измерения расстояния используется множество замеров, из которых отбрасываются ошибочные, которые сильно отличаются от соседних. По утверждениям авторов - 12% всех показаний вносят 42% ошибки в итоговое значение расстояния, если не отбрасывать ошибочные измерения.

Перейдем к программному коду - примеру работы с датчиком (пример подойдет также для датчика GP2Y0A21Y, в коде необходимо будет изменить значение model на 1080):

 

 
Пример программного кода
#include <SharpIR.h>

#define ir A0 //пин, к которому подключен датчик. Обязательно аналоговый!
#define model 20150 //модель датчика. 1080 для GP2Y0A21Y, 20150 для GP2Y0A02Y

SharpIR SharpIR(ir, model);

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

void loop() {
  delay(2000);   

  unsigned long pepe1=millis();  // засекаем время до начала измерений

  int dis=SharpIR.distance();  // получаем расстояние с датчика


  Serial.print("Mean distance: ");  // выводим расстояние в монитор порта
  Serial.println(dis);
  
  unsigned long pepe2=millis()-pepe1;  // считаем время, затраченное на измерение
  Serial.print("Time taken (ms): "); // и выводим его
  Serial.println(pepe2);  
}

 

Купить

Купить в России ИК дальномер SHARP GP2Y0A02Y


А как же комментарии?