Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Инфракрасный датчик контроля 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-порта. ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor Shield]] | 1 | | [[httpss://smartelements.ru/collection/datchiki-i-sensory/product/optopara-kb874|Инфракрасный датчик контроля KB874]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]] | 5 | **Схема подключения:** {{ :главная:датчики:kb874_оптопара_н.png?nolink |}} **Скетч для загрузки:** <file Arduino> 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; //запомнить последнее состояние оптопары } </file> ==== Вывод значений на дисплей ==== **Задача:** Подсчёт количества пересечений датчика (например, посетителей магазина) и вывод значения на четырёхзначный индикатор. При каждом срабатывании датчика будет воспроизводиться звуковой сигнал. ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor Shield]] | 1 | | [[httpss://smartelements.ru/collection/datchiki-i-sensory/product/optopara-kb874|Инфракрасный датчик контроля KB874]] | 1 | | [[httpss://smartelements.ru/collection/displei-i-indikatory/product/modul-4-razryadnogo-indikatora-krasnyy|Модуль 4-разрядного индикатора]] | 1 | | [[httpss://smartelements.ru/collection/moduli/product/modul-zummera-2|Модуль зуммера]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф "мама-мама" х3]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]] | 9 | **Схема подключения:** {{ :главная:датчики:kb874_оптопара_пример_2_н.png?nolink |}} **Скетч для загрузки:** <file Arduino> #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; //запомнить последнее состояние оптопары } </file>