Привет! На очереди еще один датчик для Ардуино. Инфракрасный датчик препятствий KY-033. Что это, как работает, как подключить и написать простой скетч, рассмотрим в этом обзоре.
Содержание
Мы уже рассматривали ультразвуковой датчик расстояния hc-sr04. Модуль KY-033 делает примерно, тоже самое. Измеряет расстояние до препятствия. Так что, если вы уже забыли тот обзор или пропустили его, пожалуйста, посмотрите.
Модуль KY-033 состоит из инфракрасного светодиода и фототранзистора, который принимает свет, отраженный от препятствия.
Когда на небольшом расстоянии от датчика появляется предмет. От нескольких миллиметров до нескольких сантиметров. На датчике загорается индикаторный светодиод, а на контакте OUT значение падает с 1024 до нескольких десятков.
Также на плате присутствует подстроечный резистор, которым можно регулировать чувствительность вручную.
Характеристики
- напряжение питания: 3,3 – 5,5 В
- ток 20 мА
- Угол обзора 35°
- Рабочая температура 0 – 50 C°
- длина волны излучения: 950 нМ
- размеры: 47 x 11 x 11 мм
Инфракрасный датчик препятствий KY-033
- GND – земля
- VСС – плюс питания
- OUT – аналоговый выход.
Обратите внимание на маркировку контактов на плате датчика. Порядок контактов может быть разным.
Теперь давайте подключим датчик к Ардуино и напишем простой скетч для него.
Для того, чтобы выполнить этот урок нам понадобиться.
- Ардуино UNO
- Макетная плата
- Перемычки
- Датчик KY-033
- Кабель USB
Программа
Никаких особенных действий в программе для этого датчика нам не нужно. Просто подключим его к аналоговому пину и считаем данные.
Выведем данные в монитор последовательного порта. И используем светодиод на плате Ардуино для сигнала. Включим его, когда препятствие обнаружено. Также загорается светодиод на плате датчика.
Когда датчик обнаруживает препятствие, данные на контакте OUT стремятся к 0. Когда препятствия нет, значения будут около 1023.
Полный текст программы
int WhiteLed = 13;
int Sensor = A5;
int sensorValue = 0;
void setup () {
pinMode (WhiteLed, OUTPUT);
Serial.begin (9600);
}
void loop () {
sensorValue = analogRead(Sensor);
Serial.println(sensorValue);
if (sensorValue < 50){
digitalWrite (WhiteLed, HIGH);
} else{
digitalWrite (WhiteLed, LOW);
}
}
Заключение
Мы рассмотрели еще один датчик для Ардуино. Инфракрасный датчик препятствий KY-033. На его основе удобно делать небольших автоматических роботов, которые могут двигаться вдоль черной или белой линии. Мы попробуем собрать такого в одном из следующих проектов.