Инфракрасный датчик контроля KB874
Описание
Создаете беспроводную сигнализацию или просто хотите знать сколько человек за день проходит через определенную дверь? Воспользуйтесь инфракрасным датчиком контроля.
В основе датчика лежит инфракрасный светодиод и инфракрасный приемник, каждый из которых заключен в отдельный корпус. Принцип работы основан на испускании инфракрасного сигнала от передатчика и на считывании его приемником.
Комплект состоит из передатчика и приёмника. Передатчик постоянно излучает инфракрасный сигнал с длиной волны 850 нм, а приемник, устанавливаемый напротив передатчика принимает его и выдает на выходе логическую 1. В обычном состоянии сигнал от передатчика к приемнику поступает непрерывно. Как только происходит прерывание сигнала (кто-то или что-то пересекли невидимый луч) - контроллер выдает логический 0. Подсчет количества прерываний за определенный промежуток времени позволит сделать выводы о том, сколько человек прошло в помещение.
Передатчик и приемник снабжены удобными отверстиями для крепления диаметром 3,2 мм.
Для работы передатчика достаточно обеспечить постоянную подачу тока. Это можно сделать как от независимого источника тока, так и от контроллера. Передатчик подключается с помощью двух проводов:
- красный (питание) - соединяется с выводом питания («+») источника тока или с выводом 5 V контроллера; также допускается подключение вывода к цифровому пину контроллера, установленного в режим OUT с установкой на выводе логической 1;
- черный («земля») - соединяется с выводом «-» источника тока или выводом GND контроллера.
Приемник подключается к контроллеру с помощью трех проводов:
- белый (сигнал) - соединяется с цифровым выводом контроллера;
- красный (питание) - соединяется с выводом питания контроллера 5 V;
- черный («земля») - соединяется с выводом GND контроллера.
Технические характеристики
- Напряжение питания: 5 В
- Максимальный потребляемый ток: 20 мА
- Эффективное рабочее расстояние: до 1 м
- Максимальный эффективный угол приемника: 10°
- Время отклика: 2 мс
- Длина волны передатчика: 850 нм
- Рабочая температура: от -25 до +60 °С
- Длина проводов: 30 см
Физические размеры
- Габаритные размеры приемника (Д х Ш х В) : 18 х 11 х 7 мм
- Габаритные размеры передатчика (Д х Ш х В) : 18 х 11 х 7 мм
Примеры подключения и использования
Вывод значений на экран
Задача: Подсчёт количества пересечений датчика (например, посетителей магазина) и вывод значения в монитор Serial-порта.
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Sensor Shield | 1 |
Инфракрасный датчик контроля KB874 | 1 |
Провода папа-мама | 5 |
Схема подключения:
Скетч для загрузки:
const int OP = 11; //вывод подключения белого провода приёмника
int quant = 0; //счётчик для подсчёта количества посетителей
boolean lastState = LOW; //последнее состояние оптопары
void setup() {
pinMode(OP, INPUT); //установка режима вывода
Serial.begin(9600); //инициализация монитора порта
}
void loop() {
boolean curState = digitalRead(OP); //текущее состояние оптопары
if (curState == HIGH && lastState == LOW) { //если датчик сработал
quant++; //увеличить количество посетителей
Serial.print("Customers: "); //вывести надпись на дисплей
Serial.println(quant); //вывести значение на дисплей
}
delay(50); //добавление небольшой задержки
lastState = curState; //запомнить последнее состояние оптопары
}
Вывод значений на дисплей
Задача: Подсчёт количества пересечений датчика (например, посетителей магазина) и вывод значения на четырёхзначный индикатор. При каждом срабатывании датчика будет воспроизводиться звуковой сигнал.
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Sensor Shield | 1 |
Инфракрасный датчик контроля KB874 | 1 |
Модуль 4-разрядного индикатора | 1 |
Модуль зуммера | 1 |
Шлейф "мама-мама" х3 | 1 |
Провода папа-мама | 9 |
Схема подключения:
Скетч для загрузки:
#include "SevenSegmentTM1637.h" //подключение библиотеки для работы с дисплеем
const byte PIN_CLK = 4; //вывод контакта CLK дисплея
const byte PIN_DIO = 5; //вывод контакта DIO дисплея
const int OP = 11; //вывод подключения белого провода приёмника
const int BUZ = 3; //вывод подключения модуля зуммера
SevenSegmentTM1637 display(PIN_CLK, PIN_DIO); //создание объекта дисплея
int quant = 0; //счётчик для подсчёта количества посетителей
boolean lastState = LOW; //последнее состояние оптопары
void setup() {
pinMode(OP, INPUT); //установка режима вывода
pinMode(BUZ, OUTPUT); //установка режима вывода
display.begin(); //инициализация дисплея
display.setBacklight(100); //установка яркости в 100%
display.print("INIT"); //отображение надписи INIT (инициализация) на дисплее
delay(1000); //задержка в 1 секунду
display.clear(); //очистка дисплея
}
void loop() {
boolean curState = digitalRead(OP); //текущее состояние оптопары
if (curState == HIGH && lastState == LOW) { //если датчик сработал
quant++; //увеличить количество посетителей
display.print(quant); //вывести значение на дисплей
tone(BUZ, 294, 300); //подать звук
}
delay(50); //добавление небольшой задержки
lastState = curState; //запомнить последнее состояние оптопары
}