В этой статье мы расскажем о датчике освещенности ARDUINO, где разберем его виды, методы подключения и программирования. Но начать все-таки стоит с того, для чего он может пригодиться. В первую очередь, эти комплектующие используются в сигнализации. Такой тип сенсоров чувствует изменения внешнего фона на основе различных физических эффектов. Сразу сообщим, что их можно разделить на два вида: датчик присутствия и датчик движения. Первый вариант очень чувствительный и способен различать даже мелкие перемещения в своей рабочей зоне (движения пальцев, взмах головы и т.д.). Второй же более грубый, реагирует на более серьезные изменения в пространстве. Данные различия очень полезны, когда требуется решить разные задачи, например, при создании умного дома или smart device. Подобные устройства довольно сильно распространены (хоть и дороговаты) и входят в комплект любой домашней сигнализационной системы, но в их основе лежит именно то, о чем мы будем говорить далее.
Рассматриваемую электронику можно разбить на 2 подвида по способу ее реализации, а именно на ИК сенсор и фоторезистор. Во втором случае используется светочувствительный элемент, который меняет свое сопротивление при изменении интенсивности светового фона.
Первый - основан на тепловом излучении объектов, что подразумевает функционирование даже в темноте. Это делает их крайне востребованными. Принцип работы ИК датчика освещенности основан на пирочувствительном элементе. Не будем подробно расписывать этот физический принцип, скажем лишь то, что при попадании на него инфракрасного излучения создается разность потенциалов, которую можно использовать в качестве информации.
Методика подключения датчиков освещенности к ARDUINO одинакова для всех типов. Они производятся с 4 ножками: GND, 5V - питание, А0 - аналоговый выход, D0 - цифровой. По двум последним как раз и передается нужная для нас информация. A0 дает возможность оценить интенсивность света в пределах от 0 до 1000, а D0 - 0 или 1, то есть может показать только наличие светового фона. Естественно, мы покажем, как работать именно с 1 вариантом, так как он более информативен.
Заметим, что аналогичное приспособление с фоторезистором тоже имеет 4 пина и механизм сборки электрической цепи и программирование будет таким же. Бывает, что у обоих видов сенсоров только 3 контакта - это означает отсутствие одного из A0 или D0, поэтому будьте внимательны при заказе.
За образец возьмем ИК Light Sensor TCRT5000 и подключим его к плате управления.
Отметим, что мы взяли активный прибор: оно имеет излучатель и приемник. Сначала изучим простую задачку, где научимся управлять сенсором и извлекать из него данные. Сборка скетча в RobotON Studio:
Здесь мы присваиваем переменной показания с устройства и выводим их на экран каждую секунду. Приведем код, который составила наша графическая среда (здесь подключены лишние библиотеки, не обращайте внимания):
#define ARDUINO_NANO 1
#include <Servo.h>
#include <StepperMotor.h>
#include <DC_Motor.h>
#include <Ultrasonic.h>
int vvedite_imja;
void setup() {
Serial.begin(9600);
while(true) {
vvedite_imja = analogRead(0);
Serial.println(vvedite_imja);
delay(1*1000);
}
}
void loop () { }
С помощью нашего прибора даже можно различать цвета. Это демонстрируется в наших уроках по робототехнике с Роборукой, которая должна хватать, например, только зеленый груз.
Пример скетча для такого задания мы продемонстрируем ниже. Чтобы понять все досконально, советуем Вам пройти наши занятия.
Сгенерированный код из RobotON Studio. Здесь создавались функции, которые позволили сократить основную логику. В наших курсах по конструированию роботов Вы сможете найти все необходимое, чтобы разобраться в программе (видео, методические материалы).