- Ардуино: датчик огня
- 1. Применение
- 2. Подключение
- 3. Программа
- Подключение фоторезистора к ардуино и работа с датчиком освещенности
- Фоторезистор ардуино и датчик освещенности
- Какие фоторезисторы можно купить в интернет-магазинах
- Маркировка фоторезистора
- Достоинства и недостатки датчика
- Подключение фоторезистора к ардуино
- Пример скетча датчика освещенности на фоторезисторе
- Датчик освещенности и плавное изменение яркости подсветки
- Схема датчика освещения на фоторезисторе и реле
- Заключение
- Преимущества и недостатки использования Arduino
- Преимущества Ардуино
- Готовность к использованию
- Обучение
- Примеры исходного кода
- Большое сообщество
- «Недостатки» Arduino
- Обучение
- Размеры
- Стоимость
- Выводы
- 37 в 1. Hабор датчиков и индикаторов для Arduino
- Датчики присутствия Arduino: полный обзор
- Характеристики прибора
- Область применения
- Первая модель
- Вторая модель
- Датчик и освещение
- Функциональное дополнение
Ардуино: датчик огня
На этом уроке мы разберем подключение к Ардуино Уно весьма нестандартного датчика, который призван помочь нам в обнаружении открытого пламени!
Конечно, пламя можно обнаружить, например, с помощью термодатчика. Ведь все что горит, часто нагревается до огромной температуры. Но у этого варианта есть два отрицательных момента.
Во-первых, термодатчик может пострадать, если его подносить очень близко к огню. Да и не очень удобно это — тыкаться во все датчиком.
А во-вторых, термодатчик не сможет зафиксировать именно пламя! То есть детектирование будет опосредованным, что не всегда приемлемо.
Другой вариант — использовать тепловизор на основе микроболометров. Такие устройства позволяют в реальном времени строить температурную карту всех видимых поверхностей. Но тепловизор слишком дорогой для хобби-проектов, и пламя он опять-таки детектирует не напрямую.
1. Применение
Датчик огня используется в роботах-пожарных. Для этих роботов устраиваются целые соревнования, задача участников в которых заключается в поиске и тушении огонька в лабиринте.
Именно наш датчик огня позволит в будущем создать простого и эффективного робота-пожарного для подобных соревнований.
Инфракрасный датчик огня улавливает излучение в диапазоне 760 — 1100 нм, свойственное пламени свечи, например. На практике, такой датчик реагирует не только на пламя, но и на солнце, и даже на комнатные лампы.
Чтобы избежать паразитной засветки, фотодиод необходимо закрывать с боковых сторон непрозрачным материалом. Для лучшей фильтрации посторонних источников света, при детектировании пламени таким датчиком, применяют алгоритм детектирования низкой частоты.
Это возможно благодаря тому, что пламя свечи меняет свою интенсивность с частотой 15-20 Гц.
2. Подключение
У цифрового датчика пламени, который мы подключаем, есть всего три вывода:
- Vcc — питание +5В;
- Gnd — земля;
- Out — сигнал.
Vcc и Gnd датчика подключаем к соответствующим выводам Ардуино Уно, а Out бросаем на любую свободную ногу. В нашем случае, соединяем Out c цифровым входом №2. Принципиальная схема подключения выглядит следующим образом.
Внешний вид макета
Теперь, когда датчик подключен, можно смело писать программу!
3. Программа
Использованный нами датчик пламени, имеет инвертированный выход, а значит, он будет возвращать ложь, если в пределах его видимости есть пламя, и истину — в отсутствии пламени. Напишем простую программу, которая будет включать зуммер, если датчик увидел перед собой огонь.
int flamePin = 2; int buzzPin = 11; void setup() { pinMode( flamePin, INPUT ); pinMode( buzzPin, OUTPUT ); } void loop() { if( !digitalRead( flamePin ) ) digitalWrite( buzzPin, HIGH ); else digitalWrite( buzzPin, LOW ); }
Записываем программу на Ардуино Уно, достаем зажигалку с крестовой отверткой, и готовимся к последнему этапу — настройке чувствительности датчика.
Дело в том, что на плате датчика пламени есть подстроечный потенциометр, с помощью которого мы и будем настраивать порог чувствительности. Для этого, включаем Ардуино Уно в USB, чтобы запитать нашу схему, поджигаем огонь в 10 сантиметрах от датчика, и начинаем крутить потенциометр, пока зуммер не запищит.
Если правильно собрать схему, залить программу, и настроить чувствительность, получится примерно следующее.
До встречи, на следующем уроке!
Изменено: 19 Апр, 2015 02:49
Подключение фоторезистора к ардуино и работа с датчиком освещенности
Датчики освещенности (освещения), построенные на базе фоторезисторов, довольно часто используются в реальных ардуино проектах. Они относительно просты, не дороги, их легко найти и купить в любом интернет-магазине.
Фоторезистор ардуино позволяет контролировать уровень освещенности и реагировать на его изменение.
В этой статье мы рассмотрим, что такое фоторезистор, как работает датчик освещенности на его основе, как правильно подключить датчик в платам Arduino.
Фоторезистор ардуино и датчик освещенности
Фоторезистор, как следует из названия, имеет прямое отношение к резисторам, которые часто встречаются практически в любых электронных схемах.
Основной характеристикой обычного резистора является величина его сопротивления. От него зависят напряжение и ток, с помощью резистора мы выставляем нужные режимы работы других компонентов.
Как правило, значение сопротивления у резистора в одних и тех же условиях эксплуатации практически не меняется.
В отличие от обычного резистора, фоторезистор может менять свое сопротивление в зависимости от уровня окружающего освещения.
Это означает, что в электронной схеме будут постоянно меняться параметры, в первую очередь нас интересует напряжение, падающее на фоторезисторе.
Фиксируя эти изменения напряжения на аналоговых пинах ардуино, мы можем менять логику работы схемы, создавая тем самым адаптирующиеся под вешние условия устройства.
Фоторезисторы достаточно активно применяются в самых разнообразных системах. Самый распространенный вариант применения — фонари уличного освещения. Если на город опускается ночь или стало пасмурно, то огни включаются автоматически.
Можно сделать из фоторезистора экономную лампочку для дома, включающуюся не по расписанию, а в зависимости от освещения. На базе датчика освещенности можно сделать даже охранную систему, которая будет срабатывать сразу после того, как закрытый шкаф или сейф открыли и осветили.
Как всегда, сфера применения любых датчиков ардуино ограничена лишь нашей фантазией.
Какие фоторезисторы можно купить в интернет-магазинах
Самый популярный и доступный вариант датчика на рынке – это модели массового выпуска китайских компаний, клоны изделий производителя VT. Там не всегда можно разораться, кто и что именно производит тот или иной поставщик, но для начала работы с фоторезисторами вполне подойдет самый простой вариант.
Начинающему ардуинщику можно посоветовать купить готовый фотомодуль, который выглядит вот так:
На этом модуле уже есть все необходимые элементы для простого подключения фоторезистора к плате ардуино. В некоторых модулях реализована схема с компаратором и доступен цифровой выход и подстроечный резистор для управления.
Российскому радиолюбителю можно посоветовать обратить на российский датчик ФР. Встречающиеся в продаже ФР1-3, ФР1-4 и т.п. — выпускались ещё в союзовские времена. Но, несмотря на это, ФР1-3 — более точная деталь. Из этого следует и разница в цене За ФР просят не более 400 рублей. ФР1-3 будет стоить больше тысячи рублей за штуку.
Маркировка фоторезистора
Современная маркировка моделей, выпускаемых в России, довольно простая. Первые две буквы — ФотоРезистор, цифры после чёрточки обозначают номер разработки. ФР -765 — фоторезистор, разработка 765. Обычно маркируется прямо на корпусе детали
У датчика VT в схеме маркировке указаны диапазон сопротивлений. Например:
- VT83N1 — 12-100кОм (12K — освещенный, 100K — в темноте)
- VT93N2 — 48-500кОм (48K — освещенный, 100K — в темноте).
Иногда для уточнения информации о моделях продавец предоставляет специальный документ от производителя. Кроме параметров работы там же указывается точность детали.
У всех моделей диапазон чувствительности расположен в видимой части спектра. Собирая датчик света нужно понимать, что точность срабатывания — понятие условное.
Даже у моделей одного производителя, одной партии, одной закупки отличаться она может на 50% и более.
На заводе детали настраиваются на длину волны от красного до зелёного света. Большинство при этом «видит» и инфракрасное излучение. Особо точные детали могут улавливать даже ультрафиолет.
Достоинства и недостатки датчика
Основным недостатком фоторезисторов является чувствительность к спектру. В зависимости от типа падающего света сопротивление может меняется на несколько порядков.
К минусам также относится низкая скорость реакции на изменение освещённости. Если свет мигает — датчик не успевает отреагировать.
Если же частота изменения довольно велика — резистор вообще перестанет «видеть», что освещённость меняется.
К плюсам можно отнести простоту и доступность. Прямое изменение сопротивления в зависимости от попадающего на неё света позволяет упростить электрическую схему подключения. Сам фоторезистор очень дешев, входит в состав многочисленных наборов и конструкторов ардуино, поэтому доступен практически любому начинающему ардуинщику.
Подключение фоторезистора к ардуино
В проектах arduino фоторезистор используется как датчик освещения. Получая от него информацию, плата может включать или выключать реле, запускать двигатели, отсылать сообщения. Естественно, при этом мы должны правильно подключить датчик.
Схема подключения датчика освещенности к ардуино довольна проста. Если мы используем фоторезистор, то в схеме подключения датчик реализован как делитель напряжения.
Одно плечо меняется от уровня освещённости, второе — подаёт напряжение на аналоговый вход. В микросхеме контроллера это напряжение преобразуется в цифровые данные через АЦП. Т.к.
сопротивление датчика при попадании на него света уменьшается, то и значение падающего на нем напряжения будет уменьшаться.
В зависимости от того, в каком плече делителя мы поставили фоторезистор, на аналоговый вход будет подаваться или повышенное или уменьшенное напряжение.
В том случае, если одна нога фоторезистора подключена к земле, то максимальное значение напряжения будет соответствовать темноте (сопротивление фоторезистора максимальное, почти все напряжение падает на нем), а минимальное – хорошему освещению (сопротивление близко к нулю, напряжение минимальное). Если мы подключим плечо фоторезистора к питанию, то поведение будет противоположным.
Сам монтаж платы не должен вызывать трудностей. Так как фоторезистор не имеет полярности, подключить можно любой стороной, к плате его можно припаять, подсоединить проводами с помощью монтажной платы или использовать обычные клипсы (крокодилы) для соединения.
Источником питания в схеме является сам ардуино. Фоторезистор подсоединяется одной ногой к земле, другая подключается к АЦП платы (в нашем примере — АО). К этой же ноге подключаем резистор 10 кОм.
Естественно, подключать фоторезистор можно не только на аналоговый пин A0, но и на любой другой.
Несколько слов относительно дополнительного резистора на 10 К. У него в нашей схеме две функции: ограничивать ток в цепи и формировать нужное напряжение в схеме с делителем.
Ограничение тока нужно в ситуации, когда полностью освещенный фоторезистор резко уменьшает свое сопротивление. А формирование напряжения — для предсказуемых значений на аналоговом порту.
На самом деле для нормальной работы с нашими фоторезисторами хватит и сопротивления 1К.
Меняя значение резистора мы можем «сдвигать» уровень чувствительности в «темную» и «светлую» сторону. Так, 10 К даст быстрое переключение наступления света. В случае 1К датчик света будет более точно определять высокий уровень освещенности.
Если вы используете готовый модуль датчика света, то подключение будет еще более простым. Соединяем выход модуля VCC с разъемом 5В на плате, GND – c землей. Оставшиеся выводы соединяем с разъемами ардуино.
Если на плате представлен цифровой выход, то отправляем его на цифровые пины. Если аналоговый – то на аналоговые. В первом случае мы получим сигнал срабатывания – превышения уровня освещенности (порог срабатывания может быть настроен с помощью резистора подстройки). С аналоговых же пинов мы сможем получать величину напряжения, пропорциональную реальному уровню освещенности.
Пример скетча датчика освещенности на фоторезисторе
Мы подключили схему с фоторезистором к ардуино, убедились, что все сделали правильно. Теперь осталось запрограммировать контроллер.
Написать скетч для датчика освещенности довольно просто. Нам нужно только снять текущее значение напряжения с того аналогового пина, к которому подключен датчик. Делается это с помощью известной нам всем функции analogRead(). Затем мы можем выполнять какие-то действия, в зависимости от уровня освещенности.
Давайте напишем скетч для датчика освещенности, включающего или выключающего светодиод, подключенный по следующей схеме.
Алгоритм работы таков:
- Определяем уровень сигнала с аналогового пина.
- Сравниваем уровень с пороговым значением. Максимально значение будет соответствовать темноте, минимальное – максимальной освещенности. Пороговое значение выберем равное 300.
- Если уровень меньше порогового – темно, нужно включать светодиод.
- Иначе – выключаем светодиод.
#define PIN_LED 13
#define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT);
} void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); if (val < 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }
Прикрывая фоторезистор (руками или светонепроницаемым предметом), можем наблюдать включение и выключение светодиода. Изменяя в коде пороговый параметр, можем заставлять включать/выключать лампочку при разном уровне освещения.
При монтаже постарайтесь расположить фоторезистор и светодиод максимально далеко друг от друга, чтобы на датчик освещенности попадало меньше света от яркого светодиода.
Датчик освещенности и плавное изменение яркости подсветки
Можно модифицировать проект так, чтобы в зависимости от уровня освещенности менялась яркость светодиода. В алгоритм мы добавим следующие изменения:
- Яркость лампочки будем менять через ШИМ, посылая с помощью analogWrite() на пин со светодиодом значения от 0 до 255.
- Для преобразования цифрового значения уровня освещения от датчика освещенности (от 0 до 1023) в диапазон ШИМ яркости светодиода (от 0 до 255) будем использовать функцию map().
Пример скетча:
#define PIN_LED 10
#define PIN_PHOTO_SENSOR A0 void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT);
} void loop() { int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); int ledPower = map(val, 0, 1023, 0, 255); // Преобразуем полученное значение в уровень PWM-сигнала. Чем меньше значение освещенности, тем меньше мощности мы должны подавать на светодиод через ШИМ. analogWrite(PIN_LED, ledPower); // Меняем яркость }
В случае другого способа подключения, при котором сигнал с аналогового порта пропорционален степени освещенности, надо будет дополнительно «обратить» значение, вычитая его из максимального:
int val = 1023 – analogRead(PIN_PHOTO_RESISTOR);
Схема датчика освещения на фоторезисторе и реле
Примеры скетча для работы с реле приведены в статье, посвященной программированию реле в ардуино. В данном случае, нам не нужно делать сложных телодвижений: после определения «темноты» мы просто включаем реле, подавай на его пин соответствующее значение.
#define PIN_RELAY 10
#define PIN_PHOTO_SENSOR A0 void setup() { pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, HIGH);
} void loop() { int val = analogRead(PIN_PHOTO_SENSOR); if (val < 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); } }
Заключение
Проекты с применением датчика освещенности на базе фоторезистора достаточно просты и эффектны. Вы можете реализовать множество интересных проектов, при этом стоимость оборудования будет не высока. Подключение фоторезистора осуществляется по схеме делителя напряжения с дополнительным сопротивлением.
Датчик подключается к аналоговому порту для измерения различных значений уровня освещенности или к цифровому, если нам важен лишь факт наступления темноты. В скетче мы просто считываем данные с аналогового (или цифрового) порта и принимаем решение, как реагировать на изменения.
Будем надеяться, что теперь в ваших проектах появятся и такие вот простейшие «глаза».
Преимущества и недостатки использования Arduino
В последние годы использование Arduino экспоненциально возрастает в связи с легкостью вхождения в тему. Но мы порассуждаем, идёт ли использование Arduino на пользу инженерам или нет. Прежде всего мы посмотрим на преимущества Arduino, а затем обсудим недостатки.
Преимущества Ардуино
Готовность к использованию
Готовность к использованию (Ready to Use) — является самым большим плюсом Arduino. Вы уже имеете «на борту» регулятор питания, микроконтроллер, программатор, интерфейсы для подключения устройств, и программные библиотеки.
Вы не должны думать о программировании микроконтроллера или способах подключения периферии. Вы не должны изучать регистры микроконтроллера, диаграммы, блок-схемы и набор инструкций.
Вы просто подключаете Arduino к USB порту ПК и делаете революцию в мире «интернет вещей».
Обучение
Легко понять как всё работает. От простого к сложному, от мигания светодиодом к метеостанции.
Примеры исходного кода
Еще одним большим преимуществомArduino является библиотека примеров идущая в комплекте «из коробки». То, чего нет в поставке, легко ищется в интернете, все библиотеки общедоступны, вам не потребуется много кодировать.
Большое сообщество
Есть много интернет-форумов по теме Arduino. Инженеры, любители и профессионалы активно делятся своими проектами на Arduino. Вы можете легко найти помощь. К тому же сам сайт Arduino объясняет каждую функцию.
«Недостатки» Arduino
И как всегда, недостатки системы происходят из её преимуществ. То есть это не недостатки в прямом смысле этого слова, а компромиссы и упрощения на которые разработчики сознательно шли в процессе создания платформы Ардуино. Далее мы увидим, что это, скажем так, скорее особенности, чем недостатки.
Обучение
Вы не изучите микроконтроллеры с Ардуино, так как внутренняя архитектура скрыта. И всё построено только на микросхемах производства Atmel.
Все программные библиотеки доступны, так что вы не научитесь программированию и отладке.
Читать ещё : ESP8266 WiFi, Arduino Uno и публикация в ThingSpeak
Размеры
В IoT все стремятся к компактности, но плата Ардуино UNO весьма внушительных размеров по меркам микроконтроллеров. Проблему частично снимают Arduino Mini и прочие мелкие, но в целом весь проект получается не таким компактным как требует микроэлектроника.
Код программных библиотек зачастую избыточен и не оптимизирован.
Стоимость
Стоимость проекта на Arduino выше, чем если делать его на «голом» ATmega. Даже учитывая китайские клоны плат Ардуино. Впрочем, ценник весьма демократичен, любой любитель может себе позволить.
Выводы
Раздел «Недостатки Ардуино» объясняет тот факт, что эта платформа предназначена для быстрого прототипирования и обучения. Об этом часто забывают и пытаются сравнить Arduino с промышленными проектами на микроконтроллерах, такое сравнение не верно, не стоит так делать.
Очень часто пытаются построить промышленный проект на Ардуино и при неудаче винят во всём Arduino. Так же я бы не доверил Ардуино управлять важными системами, или системами жизнеобеспечения. Платформа просто не предназначалась для этого изначально.
Ардуино для хобби проектов, для быстрого вхождения в мир IoT и микроконтроллеров. И далее, если вас это заинтересовало, то вперёд, в мир микроконтроллеров, электроники и программирования.
37 в 1. Hабор датчиков и индикаторов для Arduino
Сегодня на обзор будет набор сенсоров для Arduino. Обычно его называют 37 in 1 Sensors Kit for Arduino. У разных продавцов он бывает в виде кулечка с датчиками и плохонькой фотокопией инфолиста или набор подороже, в пластиковом боксе с ячейками под каждый датчик, нормально отпечатанным инфолистом и датчики собраны качественней чем в дешёвом наборе.
В моем случае набор в пластиковом боксе.Бокс из хорошего пластика, заусенцев от литья нет. Горизонтальные перемычки можно вынуть и получить отделения побольше.Датчики спаяны хорошо, следов флюса не наблюдается.Платы датчиков из стеклотекстолита. Все имеют штырьквые разъемы для подключения.
- Датчик температуры KY-001
- Вибровыключатель KY-002
- Магнитный датчик KY-003
- Кнопка KY-004
- Датчик инфракрасного излучения KY-005
- Пассивный зуммер KY-006
- Лазерный модуль KY-008
- Трехцветный светодиод KY-009
- Датчик с оптическим прерывателем KY-010
- Трехцветный светодиод KY-011
- Активный зуммер KY-012
- Датчик температуры KY-013
- Датчик температуры и влажности KY-015
- Трехцветный светодиод KY-016
- Датчик наклона KY-017
- Фоторезистор KY-018
- Реле KY-019
- Датчик наклона KY-020
- Геркон KY-021
- Инфракрасный датчик KY-022
- Джойстик KY-023
- Датчик магнитного поля KY-024
- Датчик магнитного поля KY-025
- Датчик пламени KY-026
- Модуль световых эффектов «магическая чашка» KY-027
- Датчик температуры KY-028
- Двухцветный светодиод KY-029
- Датчик удара KY-031
- Датчик для избегания препятствий KY-032
- Датчик магнитного поля KY-033
- Семицветный светодиод KY-034
- Магнитный датчик KY-035
- Датчик металла KY-036
- Датчик звука KY-037
- Датчика звука KY-038
- Датчик сердцебиения KY-039
- Датчик угла поворота (энкодер) KY-040
Каждый использует датчики под свои нужды. Однако примеров использования, как и внятной документации в комплекте не идет, поэтому я напишу краткую информацию на каждый датчик и пример кода. Всю информацию нашел в сети. На ютубе по коду датчика можно найти пример его использования. У китайцев каждый датчик имеет свой код(более – менее общепринятый). Собран на цифровом сенсоре DS18B20, напряжение питания от 3.0 V до 5.5 V. Измеряемая температура -55 ° C до +125 ° C, по Фаренгейту — 67 ° F до 257 ° F. В диапазоне от -10 °C до +85 ° C точность измерения ± 0.5 ° C. Время измерения не более 750 миллисекунд. Каждый DS18B20 имеет уникальный номер, что позволяет подключить к одной шине большое количество датчиков
Подключение (слева направо)
GND +5V S = Signal, в примере подключаем к 10 выводу arduino#include OneWire ds(10); // датчик на 10 выводе void setup(void) { Serial.begin(9600); } void loop(void) { //For conversion of raw data to C int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract; byte i; byte present = 0; byte data[12]; byte addr[8]; // ищем устройства, подключенные к шине if ( !ds.search(addr)) { Serial.print(«No more addresses.
»); ds.reset_search(); return; } Serial.print(«R=»); for( i = 0; i < 8; i++) { Serial.print(addr[i], HEX); Serial.print(” “); } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.print(«CRC is not valid! »); return; } if ( addr[0] == 0x10) { Serial.print(«найдено DS18S20. »); } else if ( addr[0] == 0x28) { Serial.print(«Найдено DS18B20. »); } else { Serial.print(«Устройство не опознано: 0x»); Serial.println(addr[0],HEX); return; } ds.reset(); ds.select(addr); ds.write(0x44,1); // запрос данных delay(1000); // 750ms по документации время получения температуры present = ds.reset(); ds.select(addr); ds.write(0xBE); // читаем данные Serial.print(«P=»); Serial.print(present,HEX); Serial.print(” “); for ( i = 0; i < 9; i++) { // получаем 9 байт data[i] = ds.read(); Serial.print(data[i], HEX); Serial.print(” “); } Serial.print(” CRC=”); Serial.print( OneWire::crc8( data, 8), HEX); Serial.println(); //преобразуем полученные данные в температуру LowByte = data[0]; HighByte = data[1]; TReading = (HighByte S пин “KY-012″ — активный звуковой модуль представляет собой печатную плату с 5-вольтовым звуковым излучателем (для включения звука нужно просто подать питание 5 В) Подключение к выводам S и -. На моем модуле перепутана полярность подключения На выходе – напряжение, пропорциональное температуре. На плате термистор и резистор делителя. сенсор NTC термистор измеряет: -55°C / +125°C точность: + / — 0.5°C
Подключение (слева направо)
GND +5В S#include int sensorPin = A5; // подключаем датчик на аналоговый вход double Thermistor(int RawADC) { double Temp; Temp = log(10000.0*((1024.0/RawADC-1))); Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp ); Temp = Temp — 273.15; // преобразуем Кельвин в Цельсий return Temp; } void setup() { Serial.begin(9600); } void loop() { int readVal=analogRead(sensorPin); double temp = Thermistor(readVal); Serial.println(temp); // выводим температуру delay(500); }Характеристики: напряжение питания, В: 3.3…5 выход: цифровой диапазон измерения влажности, % RH: 20-90 диапазон измерения температуры, ℃: 0…50 точность измерения влажности, % RH: + / – 5 точность измерения температуры, ℃: + / – 2 разрешающая способность при измерении влажности, % RH: 1 разрешающая способность при измерении температуры, ℃: 1 долгосрочная стабильность, % RH / год: < ± 1
подключение
левый пин S —> к выводу 10 ардуино Правый пин GND Средний пин +5
Для работы используется библиотека DHTLib, почитать о ней можно тут https://playground.arduino.cc/Main/DHTLib
содержит RGB светодиод с 3-мя входами, что позволяет получать нужный цвет излучения с помощью подачи нужного напряжения на входы. Светодиод имеет общий катод.
Ограничительные резисторы установлены на плате.
Подключение: R – плюс 5 В (красный) G -плюс 5 В (зеленый) B – плюс 5 В (синий) GND – общий источника питания
KY-017 переключатель срабатывающий в зависимости от наклона
Ртутный. На плате присутствуют помимо датчика резистор и светодиод Работаем как с обычной кнопкой
Подключение (слева направо)
GND 5+ Выход S на плате светодиод, при замкнутых контактах горит красным фоторезистор (датчик освещенности), который применяется для измерения интенсивности света или определения его наличия/отсутствия. При отсутствии света сопротивление фоторезистора большое и доходит до 1 мОм, а при его освещении падает до нескольких Ом. между «S» и +5 В впаян резистор 10 кОм, что вместе с самим фоторезистором образует делитель напряжения, который удобно подключить к аналоговому входу Arduino.
Подключение (слева направо)
+5в S – выход GND int sensorPin = A5; // вход для подкл фоторезистора int ledPin = 13; // светодиод int sensorValue = 0; // переменная для значения сенсора void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { sensorValue = analogRead(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin, LOW); delay(sensorValue); Serial.println(sensorValue, DEC); }Используется для коммутации нагрузки с большим напряжением или током. Например лампы
Коммутируемая нагрузка
Переменного тока 10А 250 В 10 А 125В Постоянного тока 10А 30В 10А 28В На плате распаян транзистор, защитный диод и светодиод, показывающий срабатывание реле.
Подключение (слева направо)
S управляющий сигнал с ардуино +5в — GND int relay = 10; // подключение реле void setup () { pinMode (relay, OUTPUT); } void loop () { digitalWrite (relay, HIGH); // включить реле delay (1000); digitalWrite (relay, LOW); // выключить реле delay (1000); }переключатель срабатывающий от наклона модуля, имеющий цифровой интерфейс. При наклоне датчика в одну сторону контакты “-” и “S” замыкаются, при наклоне в другую размыкаются. Модуль позволяет определять только 2 положения и не измеряет угол наклона. Между контактами “+5В” и “S” впаян резистор 10 кОм. Контакт, срабатывающий при поднесении к нему магнита. Напаян подтягивающий резистор. Подключаем к контактам + и – питание, средний вывод – выход кнопки. Работаем как с обычной кнопкой. Модуль предназначен для приема данных по инфракрасному каналу от пультов управления. На плате имеется светодиод с токоограничивающим резистором 1 кОм, которые включены между контактами +5 и “S”.
Технические характеристики: несущая частота: 38 кГц дистанция приема от обычного пульта: 18-20 м угол приема: 90 градусов напряжение питания постоянного тока: 2,7-5,5 В
Подключение (слева направо)
— GND +5V S выход приемника
Применение:
управление устройствами в доме через пульт по ИК каналу#include int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // начинаем прием } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.
resume(); // принимаем следующее значение } }Двухосевой аналоговый джойстик с кнопкой
Подключение (слева направо) GND – общий провод +5V – “+5 В” питания VRx – аналоговый выход потенциометра оси X VRy – аналоговый выход потенциометра оси Y SW – цифровой выход кнопки int JoyStick_X = A0; // x int JoyStick_Y = A1; // y int JoyStick_Z = 3; // кнопка void setup () { pinMode (JoyStick_X, INPUT); pinMode (JoyStick_Y, INPUT); pinMode (JoyStick_Z, INPUT_PULLUP); Serial.begin (9600); // 9600 bps } void loop () { int x, y, z; x = analogRead (JoyStick_X); y = analogRead (JoyStick_Y); z = digitalRead (JoyStick_Z); Serial.print (x, DEC); Serial.print («,»); Serial.print (y, DEC); Serial.print («,»); Serial.println (z, DEC); delay (100); }
Датчик имеет и цифровой и аналоговый выходы. На плате светодиод, который загорается при детектировании магнитного поля.
Подключение (слева направо)
AO аналоговый выход GND +5 DO цифровой выход красный светодиод на плате при замыкании загорается в отличие от модуля с простым герконом у этой платы 4 вывода, на борту есть компаратор и светодиод.
Подключение (слева направо)
AO аналоговый выход – можно подключать к аналоговому входу ардуино GND +5 DO – цифровой выход. датчик пламени реагирует на инфракрасное излучение и наиболее чувствителен к длинам волн от 760 нм до 1100 нм. Этот модуль имеет два выхода – цифровой и аналоговый. На плате имеется 2 светодиода – индикации питания и индикации выхода с компаратора. Построечным резистором можно изменять чувствительность датчика.
Подключение (слева направо) AO аналоговый вход GND 5V D0 цифровой выход int Led = 13 ;// светодиод int buttonpin = 10; // цифровой вход int analogin = A3; // аналоговый вход int val ;// float sensor; //значение датчика void setup () { pinMode (Led, OUTPUT) ; pinMode (buttonpin, INPUT) ; pinMode (analogin, INPUT) ; Serial.begin(9600); } void loop () { sensor = analogRead(analogin); Serial.println(sensor); // данные с датчика val = digitalRead (buttonpin) ; if (val == HIGH) // если сработал датчик { digitalWrite (Led, HIGH); } else { digitalWrite (Led, LOW); } delay(1000); } Подключение (слева направо) GND +5 S Светодиод Напряжение: G :2.3-2 .6 V; R :1.9-2 .2 V Ток 20мА На моей плате распаян резистор и зачем-то smd светодиод подключение через токоограничительные резисторы
Подключение (слева направо)
GND 330 Ohm —> S пин 330 Ohm —> средний пин Работаем как с обычным светодиодом (управление по двум выводам для красного и зеленого) Работает очень просто – при ударах(сотрясении) замыкается контакт.
Подключение (слева направо) +5 Средний – выход — земля Между +5 и выходом впаян резистор Работаем как с кнопкой. На модуле установлен инфракрасный передатчик и приемник. Эффективная дистанция срабатывания 2 ~ 40cm, рабочее напряжение 3.3V-5V. Есть подстроечные резисторы, позволяют выставить дистанцию. При срабатывании на плате загорается светодиод. Модуль имеет маркировку IR-08H Выход – логический Угол обнаружения : 35 °
Подключение (слева направо)
EN Второй пин +5 Третий сигнал Четвертый- земля Используем аналогично кнопки Этот модуль имеет два выхода – цифровой и аналоговый. На плате имеется 2 светодиода – индикации питания и индикации выхода с компаратора. Построечным резистором можно изменять чувствительность датчика
Подключение (слева направо) AO аналоговій вход GND 5V D0 цифровой выход int Led = 13 ;// светодиод int buttonpin = 10; // цифровой вход int analogin = A3; // аналоговый вход int val ;// float sensor; //значение датчика void setup () { pinMode (Led, OUTPUT) ; pinMode (buttonpin, INPUT) ; pinMode (analogin, INPUT) ; Serial.begin(9600); } void loop () { sensor = analogRead(analogin); Serial.println(sensor); // данные с датчика val = digitalRead (buttonpin) ; if (val == HIGH) // если сработал датчик { digitalWrite (Led, HIGH); } else { digitalWrite (Led, LOW); } delay(1000); } При приближении препятствия срабатывает датчик, на выходе 1 и загорается светодиод на плате
Подключение (слева направо) пин — = GND средний пин OUT +5v На плате напаян токоограничительный резистор. Работаем как с обычным светодиодом На выходе аналоговый сигнал, пропорциональный напряженности магнитного поля
Подключение (слева направо) пин — = GND средний пин +5 V пин S –выходной сигнал, в примере подключаем Arduino пин A5 int sensorPin = A5; // подключаем датчик к 5 аналоговому входу int ledPin = 13; // светодиод int sensorValue = 0; // данные с датчика void setup () { pinMode (ledPin, OUTPUT); Serial.begin (9600); } void loop () { sensorValue = analogRead (sensorPin); digitalWrite (ledPin, HIGH); delay (100); digitalWrite (ledPin, LOW); delay (100); Serial.println (sensorValue, DEC);//выводим данные с датчика } сенсорный модуль имеет металлический контакт для определения касания человека. На плате два светодиода – питание и срабатывание датчика
Подключение (слева направо)
AO GND +5V
DO
int sensorPin = A5; // подключаем датчик к 5 аналоговому входу int ledPin = 13; // светодиод int sensorValue = 0; // данные с датчика void setup () { pinMode (ledPin, OUTPUT); Serial.begin (9600); } void loop () { sensorValue = analogRead (sensorPin); digitalWrite (ledPin, HIGH); delay (100); digitalWrite (ledPin, LOW); delay (100); Serial.println (sensorValue, DEC);//выводим данные с датчика }Плата с большим микрофоном, имеет 2 выхода: цифровой и аналоговый AO, аналоговый выход – сигнал напрямую с микрофона DO, цифровой выход – при превышении порога срабатывания на выходе 1. Чувствительность срабатывания регулируется подстроечным Резистором На плате два светодиода – один при подаче питания, второй при срабатывании цифрового выхода
Подключение (слева направо)
AO GND +5V DO
Работа с цифровым выходом
int Led = 13 ;// светодиод int buttonpin = 10; // цифровой выход микрофона void setup () { pinMode (Led, OUTPUT) ; pinMode (buttonpin, INPUT) ; } void loop () { val = digitalRead(buttonpin);// читаем цифровой выход if (val == HIGH) // Если сработал цифровой выход { digitalWrite (Led, HIGH); } else { digitalWrite (Led, LOW); } } Работа с аналоговым выходом int sensorPin = A0; // подключаем аналоговый выход int ledPin = 13; // подключаем светодиод int sensorValue = 0; // амплитуда звука void setup () { pinMode (ledPin, OUTPUT); Serial.begin (9600); } void loop () { sensorValue = analogRead (sensorPin);// читаем с аналогового выхода Serial.println (sensorValue, DEC);// выводим амплитуду сигнала digitalWrite (ledPin, HIGH); delay (100); digitalWrite (ledPin, LOW); delay (100); }Плата с маленьким микрофоном, имеет 2 выхода: цифровой и аналоговый AO, аналоговый выход – сигнал напрямую с микрофона DO, цифровой выход – при превышении порога срабатывания на выходе 1. Чувствительность срабатывания регулируется подстроечным Резистором На плате два светодиода – один при подаче питания, второй при срабатывании цифрового выхода
Подключение (слева направо)
AO GND +5V DOсостоит из инфракрасного светодиода (LED) и фототранзистора, с помощью которых можно измерять пульс в пальце. Монитор сердечного ритма работает следующим образом: палец должен быть расположен между IR светодиодом и фототранзистором, который получает поток инфракрасного излучения. Когда в пальце пульсирует кровь — сопротивление фототранзистора меняется. При измерениях пульса необходимо чтобы фототранзистор был защищен от попадания прямого солнечного или искусственного света для исключения нежелательных помех.
Подключение (слева направо) S подключаем к аналоговому входу ардуино +5в GND int sensorPin = 0; double alpha = 0.75; int period = 100; double change = 0.0; double minval = 0.0; void setup () { Serial.begin (9600); } void loop () { static double oldValue = 0; static double oldChange = 0; int rawValue = analogRead (sensorPin); double value = alpha * oldValue + (1 — alpha) * rawValue; Serial.print (rawValue); Serial.print («,»); Serial.println (value); oldValue = value; delay (period);Енкодер выдает при вращении двоичный код на двух выходах. По этому коду можно определить направление вращения. на полный оборот в моем случае приходится 24 импульса. Помимо этого нажатие на ручку – срабатывание кнопки.
Подключение (слева направо)
“CLK” – энкодер контакт “A” “DT” – энкодер контакт “B” “SW” – кнопка “+” – питание “+5 В” “GND” — общий
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Датчики присутствия Arduino: полный обзор
С каждым днем наши жилища становятся все комфортнее и функциональнее. Технологичность входит в наш дом в различных проявлениях: бытовая техника, осветительные приборы, различные дополнительные конструкции к уже имеющимся приборам и т.д. Последней новинкой на сегодняшний день являются датчики присутствия.
Сегодня самыми популярными являются датчики присутствия Steinel (модели ir quattro) и Аrduino. В этой статье мы разберемся, что это за приборы и как их можно использовать в домашних условиях.
Характеристики прибора
Датчик присутствия (Аrduino или Steinel ir quattro) представляют собой разновидность фиксаторов движения. Под этим понятием подразумевается инфракрасный прибор электронного образца. Это прибор способен обнаружить перемещение человека в заданной области контроля.
При этом он коммутирует с питанием различных электроприборов (наиболее часто с освещением).
Принцип работы устройства базируется на отслеживании датчиком уровня инфракрасного излучения в заданной области работы (особенно пироэлектрического типа).
Здесь в роли сенсора выступает первичный преобразователь. Он является элементом сигнального, измерительного, регулирующего, а также управляющего устройства системы, которая преобразует контрольные величины в сигнал, удобный для пользования.
Иначе это можно выразить следующим образом: сенсор – элемент системы, необходимый для измерения неэлектрических величин электрическим способом.
Принцип работы
Любой человек, а вернее его тело, излучает температуру отличную от нуля (за ноль в данной ситуации берется -273°С). В результате человек обладает электромагнитным тепловым излучением. Именно это излучение улавливается прибором в качестве сигнала.
При улавливании тепловых лучей, они фиксируются на сегментной линзе и перенаправляются к пиродетектору. При передвижении тела в заданной прибору области происходит оценка датчиком теплового излучения пиродетектором и создание в нем напряжения.
Созданное напряжение применяется в качестве сигнала для электроники.
Пиродатчик с помощью линзы, обладающей высокой разрешающей способностью, позволяет создать для помещения типичную и квадратную зону охвата. Именно в ней датчик и будет регистрировать самые мельчайшие движения.
На выходе сенсора монотонный сигнал определяется уровнем инфракрасного излучения, который был усреднен в области работы датчика. Для определения, перемещается ли объект в контролируемой области, в устройстве применяется линза Френеля.
В редких случаях вместо данной линзы используется система специально вогнутых сегментных зеркал/линз. С помощью такой системы или линзы и происходит проекция теплового излучения на пиросенсоре, преобразуя его в электроимпульс.
В зависимости от того, насколько датчик был настроен по чувствительности, происходит выдача двух или трех импульсов.
Такой принцип работы позволяет наиболее эффективно организовать освещение в помещениях, где имеется высокий процент «проходящих» людей.
Область применения
Установленный датчик
Внешне датчик может иметь разнообразный дизайн, что позволяет подобрать его под имеющийся интерьер в одном стиле с розетками и выключателем.
Чаще всего такие приборы применяются в следующих областях:
- охранные сигнализации;
- система «умный дом»;
- управление освещения в автоматическом режиме.
В качестве управления в автоматическом режиме подобные датчики применяются в офисных зданиях, частных или государственных организациях, общественных заведениях и т.д. Регулировка освещения идет в зависимости от присутствия людей в рабочей зоне прибора, а также интенсивностью естественного освещения.
Первая модель
Датчик Arduino является электронным конструктором, предназначенным для быстрой сборки автоматических устройств различной степени сложности (высокой, средней и низкой). В основе этого устройства находятся микропроцессорные модули, датчики, а также интерфейсы к ним.
Датчик Arduino
Эта программа позволит значительно упростить создание проектов по прошивке. В результате получается полупроводниковый электронный сенсор с достаточно высокой точностью работы. Помимо этих датчиков также используются разнообразные механические (реагирующие на прикосновение) и химические устройства (реагирующие на конкретные химические показатели).
Но последние используются только в редких случаях. Например, они могут реагировать на некоторые газы или пары спиртов. Но их стоимость значительно выше, чем обычного процессорного модуля (в диапазоне от 10 до 50%).
Датчики Arduino классифицируются по тому параметру, на реакцию которого они настроены реагировать (температурный, звуковой или ультразвуковой показатель и т.д.).
Благодаря эффективному принципу работы, а также многофункциональности в плане измеряемых параметров, датчики Arduino на сегодняшний день широко применяются в самых разнообразных сферах деятельности человека.
Вторая модель
Датчик Steinel
Датчики присутствия Steinel (наиболее популярная модель — ir quattro com1) на сегодняшний день разрабатываются немцами.
Эти устройства могут считывать сигнал следующих видов:
- инфракрасный или тепловой параметр;
- высокочастотный параметр;
- ультразвук.
В зависимости от типа прибора можно подобрать устройство с различной степенью чувствительности, избежав тем самым возможность срабатывания прибора при незначительных перемещениях в зоне его работы. В результате освещение без надобности активироваться не будет.
Это объясняется тем, что у датчика линза для улавливания различного рода излучения обладает более тонкими настройками чувствительности. Поэтому она может считывать незначительное движение и адекватным образом реагировать на степень освещенности в помещении.
Как правило, эти датчики применяются в небольших помещениях:
- туалет;
- ванная комната;
- санитарный узел;
- коридор;
- кабинет.
В этих ситуациях для адекватного освещения в автоматическом режиме будет достаточно одного самого простого датчика. Но их запросто можно использовать в помещениях и с большими размерами. Здесь необходимо будет применять более сложные модели (например, тип HD).
Обратите внимание! При одновременном подключении датчика к освещению и вентилятору следует использовать двухканальный тип устройства.
В этой ситуации можно провести настройки, с помощью которых через определенный временной промежуток произойдет отключение вентилятора.
По типу установки такие датчики могут быть следующих типов:
Накладной тип
- потолочный;
- внутренний;
- накладной.
Модели Steinel между собой могут различаться по следующим показателям:
- дистанция срабатывания;
- тип принимаемого датчиком сигнала;
- точность настройки задаваемых параметров работы устройства;
- мощность прибора;
- вид защиты;
- задержка включения;
- дополнительные комплектующие (пульт дистанционного управления и т.д.);
- допустимая нагрузка;
- напряжение;
- угол охвата области работы;
- площадь зоны срабатывания при радиальном и тангенциальном движении;
- длительность постоянного включения.
Такая же разбивка по моделям характерна и для датчика Arduino. Помимо этого данные приборы обладают заводскими показателями по высоте установки, температурному режиму работы, сенсору и прочим параметрам функционирования устройства.
Датчик и освещение
Сегодня датчики присутствия уже не представляют собой новинки.
Их можно встретить в самых разнообразных, а порой и неожиданных местах, как в частном доме, так и в общественных помещениях государственных структур.
Датчики Steinel ir quattro или Arduino довольно часто используются вместе с осветительными приборами, обеспечивая более рациональный и эффективный контроль над интенсивностью освещения.
Преимущества использования Arduino или Steinel ir quattro заключаются в следующих аспектах:
- экономия электроэнергии, благодаря тому, что свет зажигается только при необходимости;
- удобное применение одновременно с другими приборами;
- доступность по ценовой политике;
- возможность легкой настройки приборов (особенно модели ir quattro);
- возможность встраивания в охранные системы в качестве светового сигнала.
Освещение
Но, несмотря на столь явные преимущества, и Steinel ir quattro, и Arduino имеют один существенный недостаток – высокая чувствительность в работе. Они могут сработать случайно, поскольку точно настроить их чувствительность все же не всегда удается.
В результате датчики могут среагировать даже на небольшое движение в контролируемой области. Это связано с тем, что даже малоподвижный объект способен давать достаточный для срабатывания устройства отраженный сигнал.
Данный недостаток больше характерен для Arduino, чем для Steinel (модели ir quattro).
Но в случае применения прибора присутствия в качестве части охранной системы, такой недостаток трансформируется в плюс.
Здесь даже на руку тот факт, что устройство функционирует длительный период, что позволяет отследить даже небольшое движение в ситуации длительного сохранения объектом неподвижности.
Функциональное дополнение
Датчики Arduino или Steinel ir quattro com1 (плата) могут быть дополнены разнообразными сенсорами и улавливающими устройствами (функциональное дополнение). Благодаря этому возможно некоторое расширение сферы применения таких приборов.
Например, они могут применяться в автоматизации физических процессов и приборостроении, подсчете числа пассажиров и т.д.
Помимо этого Arduino или Steinel ir quattro com1 наиболее часто применяются в проектах «умный дом» с целью автоматизации домашних и бытовых процессов.
Также в последнее время Arduino стали широко использоваться в робототехнике.
Установленный Arduino (схема)
Еще одной сферой применения Arduino являются охранные системы. С его помощью происходит включение камер видеонаблюдения, звуковой системы оповещения или освещения. Стоит отметить, что в охранной области датчики Arduino востребованы более всего.
Также данное устройство используется в качестве дальномера. С его помощью можно измерять дальность в области 5 метров. При этом точность составит до 1 см.
На такое способны ультразвуковые датчики, работающие как акустический локатор небольшой мощности.
Использование в домашних условиях датчика присутствия различных моделей (Steinel или Arduino) позволит вам повысить эффективность освещения и сделать его более экономичным.
Здесь главное провести правильную установку и настройку прибора на работу в заданной области.
Подбирайте для помещений те модели датчиков и по тем параметрам, которые позволят ему наиболее эффективно выполнять свою работу – освещать помещение при повелении в нем человека.