Датчик прерывания светового луча, бесконтактный оптический.
Код товара: CTTL12490
Есть в наличии| 99 c |
| 99 c |
|
|
|
|
Модуль предназначен для обнаружения прерывания светового луча, и передачи соответствующей информации контроллеру для дальнейшей обработки или исполнительному механизму. Основное преимущество использование данного модуля - это отсутствие механического размыкания, что дает почти неисчерпаемый ресурс, и минимизирует поломки и техническое обслуживание. Так же отсутствие механического контакта отменяет дребезг, побочный эффект любых механических кнопок, но всё равно при написании своих программ мы рекомендуем использовать минимальную задержку.
Основные параметры модуля KY-010.
Напряжение питания: 5 В.
Датчик света: фототранзистор
Световой диапазон: ИК
Габариты: 19,1x15,2x6.6 мм
Принципиальная электрическая схема.
Резистор R1 ограничивает рабочий ток светодиода датчика. Резистор R2 подтягивающий, он создает положительный потенциал на выводе S когда транзистор закрыт, и не создает замыкания к выводу +5 В при открытом транзисторе. Итак, при включении модуля и подаче питания - на светодиод подается напряжение, он начинает излучать свет, фототранзистор освещается этим светом и открывается, то есть по сути прижимает вывод S к минусу питания - что свидетельствует о наличии логического 0 на выводе S. Далее мы создали препятствие между светодиодом и фототранзистором любым не прозрачным предметом. Фототранзистор закрывается его сопротивление становится огромным - и на выводе S устанавливается потенциал + 5 В - это логическая 1.
Давайте попробуем подключить KY-010 к Ардуино НАНО проверить всё на деле.
Я использовал при программировании программу BascomAVR и программатор USBASP подключенный к порту ISP на плате НАНО.
Привожу простейший код для программы BaskomAVR по подключению KY-010
$regfile = "m328pdef.dat" Указываем наш контроллер, в НАНО он именно такой установлен
$crystal = 16000000 Резонатор тоже на плате есть
$hwstack = 40
$swstack = 16
$framesize = 32
Config Portb.5 = Output Указываем что на плате NANO вывод D13(он же PB5 контроллера) работает как выход (на нем и светодиод есть, мы визуально сможем видеть всё)
Config Int0 = Falling Настраиваем прерывание INT0 на отлов падения импульса из единички в ноль, В моем случае свет перекрыт - я открываю его - а потом снова закрываю
On Int0 Action В случае прерывания - идем в Action и там что то делаем
Enable Interrupts Запускаем прерывания в нашей программе
Enable Int0 И конкретно INT0 активируем
Do
Это основная программа - мы тут ничего не делаем, всё обработаем в прерывании
Loop
Action: Это наша подпрограмма которая выполнится в случае прерывания
Waitms 20 Добавил небольшую задержку, чтобы переходные процессы в транзисторе пришли в норму, но и без задержки тоже нормально работает
Toggle Portb.5 Тут просто меняем состояние вывода PB5 микроконтроллера(Он же D13 на плате NANO указан)
Return закончили дела - возвращаемся в основную программу, что то там делаем
End
Данный пример был собран и полностью опробован на практике, очень надеюсь и у Вас всё получится. Полный проект для BascomAVR вы можете скачать по этой ссылке - BascomAVR проект для работы с KY-010
Так же прилагаю осциллограммы переходных процессов снятые с выхода датчика с контакта S. Как вы можете видеть - дребезга нет, но при 10мс становится видно что переходной процесс имеется, именно поэтому я всё таки добавил небольшую задержу в моем коде, чтобы переходные процессы не влияли на стабильность.
------------------
СЕЕД12490:99
Доставка может производиться различными по Вашему выбору способами. Это и самовывоз, и курьерские службы по г. Москве, и транспортные компании по России. Также мы можем выслать этот товар Почтой России. Если размеры, вес товара Датчик прерывания светового луча, бесконтактный оптический. или соображения удароустойчивости находятся в разрешённых Почтой России пределах.





