Фоторезистор и arduino

Ардуино: датчик света на фоторезисторе

Датчик света — это прибор, который позволяет нашему устройству оценивать уровень освещенности. Для чего нужен такой датчик? Например, для системы уличного освещения, чтобы включать лампы только тогда, когда на город спускается ночь.

Еще одно применение датчиков света — это детектирование препятствия роботом, путешествующем по лабиринту. Либо детектирование линии роботом следопытом (LineFollower). Но в этих двух случаях, в паре с датчиком света используют специальный источник света.

Мы же начнем с простого примера, и подключим к микроконтроллеру Ардуино Уно один из самых распространенных датчиков — фоторезистор. Как долнжо быть понятно из названия, фоторезистор — это резистор, который меняет свое сопротивление в зависимости от падающего на него света. Выглядит этот радиоэлемент так:

Различаются фоторезисторы по диапазону сопротивления. Например:

Кроме фоторезистора, в датчиках света часто используют фотодиод и фототранзистор. Оба выглядят как типичные светодиоды:

Плавная регулировка светодиода

Если мы хотим менять яркость светодиода плавно, то встроенный светодиод не подойдёт. Нам понадобится вывод с символом ~. Мы уже проходили подобный урок , поэтому добавим свой светодиод с резистором на макетную плату.

Мы можем явно указать отслеживаемый диапазон, например, от 4 до 200. Но показания могут быть меньше или больше этих значений и нам нужно написать условия, которые учитывали бы эту ситуацию. К счастью, есть готовая функция constrain(), которая делает эту работу за нас. Далее эти значения нужно распределить между диапазоном от 0 до 255 с помощью функции map(), так как светодиод работает только в этом диапазоне. Но если мы оставим как есть, то 4 будет соответствовать 0, а 200 будет соответствовать 255. При таком решении светодиод будет гореть ярче при хорошем освещении и тусклее при плохом освещении. А нам нужна обратная ситуация. Поэтому в функции мы применяем обратный порядок от 255 до 0. Таким образом, код получится следующим.

Проверяем. У меня работает, а у вас?

Выбор фотореле

  1. Возможность регулирования порога срабатывания позволяет производить подстройку чувствительности датчика в зависимости от времени года или при пасмурной погоде. В результате обеспечивается экономия электричества.
  2. Минимум трудозатрат требуется при монтаже фотореле со встроенным чувствительным элементом. При этом не требуются особые навыки.
  3. Реле с таймером хорошо программируется для своих потребностей и работы в установленном режиме. Можно настроить прибор для отключения в ночное время. Индикация на корпусе прибора и кнопочное управление позволяют легко производить настройку.

Фотореле на микросхеме КР1564ТЛ2

Предлагаемая схема (рис. 1), как нам представляется, оригинальна. В качестве фотодатчика служит распространенный фоторезистор СФЗ-1.

Рис.1. Принципиальная схема фотореле на фоторезисторе.

Он преобразует световой сигнал, улавливаемый чувствительной поверхностью, в электрические колебания, которые затем поступают на вход порогового детектора на одном элементе микросхемы D1.1 типа КР1564ТЛ2.

Эта микросхема состоит из шести однотипных элементов-логических инверторов с триггерами Шмитта. На втором элементе D1.2 реализована схема задержки времени включения нагрузки.

Чувствительность схемы (порог переключения триггера Шмитта) плавно регулируется переменным резистором R1, который совместно с фотодатчиком образует делитель постоянного напряжения. Желательно применить многооборотистый прибор, типа СП5-1.

Когда темно-инвертирующий выход D1.1 (выв. 2) в состоянии высокого логического уровня (лог. 1) и конденсатор С2 быстро разряжается через резистор R4, благодаря диоду VD1. Когда освещение попадает на фоторезистор PR, — на выв. 2 элемента лог. 0.

Далее сигнал поступает на схему временной задержки. В результате зарядки конденсатора С2 через резистор R3 до напряжения порога срабатывания элемента D1.2 выдержка времени существенно может изменяться в зависимости от номиналов С2 и R3 от нескольких секунд до минут.

Зарядившись, конденсатор С2 перебрасывает триггер в другое устойчивое состояние, и на выходе D1.2 (выв. 4) оказывается высокий логический уровень (лог. 1). Транзистор VT1 открывается, на реле К1 поступает напряжение питания и реле коммутирует нагрузку. Диод VD2 препятствует броскам обратного тока при включении/выключении реле.

Схема очень проста и не требует настройки, кроме установки резистором R1 порога срабатывания триггера в зависимости от освещенности конкретного объекта.

Транзистор VT1 можно заменить на КТ312(А“В), КТбОЗ(А-Б), КТ608Б, КТ801(А, Б). К1 -маломощное реле РЭС15, паспорт (003), или аналогичное, на напряжение срабатывания сообразно напряжению питания схемы.

Питание схемы некритично и осуществляется от любого стабилизированного блока питания с выходным напряжением 9…14 В. Ток, потребляемый схемой от источника питания в пассивном режиме (фоторезистор не освещается), не превышает 2…3 мА. При включении реле, ток увеличивается до 20 мА.

Коды проекта

Согласно нашим схемам мы приведем примеры различных вариантов для работы фоторезистора с Ардуино с некоторыми разъяснениями.

Вариант 1

В «void setup» мы инициализируем последовательный монитор:

Затем мы читаем аналоговое значение, поступающее от фоторезистора, и определяем его как value («значение»):

И мы записываем значение на последовательном мониторе:

Вариант 2

Чтобы убедиться, что все работает правильно, вы можете создать базовый эскиз, который считывает уровень напряжения и выводит значение в последовательный порт. Закрывая фоторезистор, вы увидите изменение показаний.

Чтобы создать эскиз вольтметра:

  1. Откройте Arduino IDE.
  2. Вставьте код ниже.
  3. Сохраните эскиз. В меню «Файл» выберите «Сохранить как» (англ. – Save as).

Чтобы загрузить эскиз на свой Arduino и посмотреть результат нужно:

  1. Подключитеь Arduino к компьютеру с помощью USB-кабеля.
  2. В IDE на панели инструментов нажмите кнопку «Загрузить» (Upload).
  3. На панели инструментов нажмите кнопку «Последовательный монитор» (Serial Monitor).

Обнаружение изменений

Точные значения, выводимые на последовательном мониторе в скетче выше, будут различаться в зависимости от нескольких факторов:

  • Блок питания от Arduino. В частности, при питании от USB-кабеля обычно 5 В блока питания Arduino немного меньше этого идеала;
  • Минимальное и максимальное значения сопротивления используемого фоторезистора;
  • Точность резистора 10К;
  • Конструкция макета и используемых проводов – они имеют небольшие уровни сопротивления, которые могут повлиять на АЦП;
  • И количество окружающего света в комнате.

Гораздо важнее обнаруживать изменения уровня освещенности, чем иметь дело с реальными цифрами.

Эскиз ниже считывает уровень освещенности в процедуре настройки для использования в качестве базового измерения, а затем определяет, когда фоторезистор закрыт. Когда это происходит, при вызове digitalWrite() загорается встроенный светодиод Arduino на цифровом выводе 13.

Установка порогов

Приведенный выше эскиз устанавливает порог – значение, которое определяет, сколько изменений ожидается, прежде чем что-то произойдет – в коде. В зависимости от вашей среды и приложения может потребоваться отрегулировать этот порог. Чтобы избежать необходимости подключать Arduino обратно к компьютеру и перепрограммировать его, вы можете использовать потенциометр для регулировки величины сопротивления в цепи.

Вы можете подключить потенциометр разными способами, пример которого показан ниже:

Потенциометры – это другой тип переменного резистора – они обычно присоединяются к регулятору, а их сопротивление устанавливается поворотом ручки влево и вправо. На этой схеме триммер используется для изменения напряжения, подаваемого на фоторезистор. Это влияет на его способность обнаруживать свет и изменяет баланс потенциального делителя, так что количество изменений, зарегистрированных эскизом (base – v, в приведенном выше коде), может быть увеличено или уменьшено.

Для более цифрового подхода вы можете подключить потенциометр так же, как фоторезистор, и прочитать его, используя второй аналоговый вход. Затем вы можете использовать это измерение в эскизе, чтобы определить новое значение для переменного порога.

Два примера схем в уроке демонстрируют основные шаги, связанные с обнаружением изменений в уровнях освещенности с помощью фоторезистора и Arduino. Более интересные проекты, такие как системы домашней автоматизации и сигнализации, могут быть построены с использованием дополнительных компонентов, таких как реле, двигатели и устройства беспроводной связи.

Как сделать управление освещением на Ардуино

Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • IR приемник Ардуино;
  • пульт ДУ;
  • источник питания DC 12В;
  • светодиодная лента;
  • транзисторы и резисторы;
  • PIR датчики движения;
  • паяльник, термопистолет, провода и изолента.


Схема. Освещение в комнате на Arduino Nano Для включения LED ленты используются транзисторы 2N2222, заказанные за 60 рублей за штуку на Алиэкспресс. Характеристика 2N2222 транзисторов: макcимальное напряжение коллектор-база — 60 Вольт, макcимальное напряжение коллектор-эмиттер — 30 Вольт, макcимальное напряжение эмиттер-база — 5 В, макcимальный постоянный ток коллектора — 0.8 Ампер, максимальная рассеиваемая мощность — 0,5 Ватт.

В схеме два светильника, подключены через транзистор к Pin7 и Pin8, установлены в коридоре на 1 и 2 этаже, включаются автоматически только в темноте и при срабатывании датчиков движения. Светильник, подключенный к Pin6, установлен в ванной и включается автоматически от Pir датчика движения при любом освещении. Три светильника на Pin10, Pin11 и Pin12 управляются от пульта через ИК приемник.

Скетч. Управление освещением на Ардуино

Скачать скетч для управления освещением целиком можно скачать здесь. Также в программе есть цикл для работы в режиме «имитация присутствия», включаемый с пульта ДУ. Светильники в разных комнатах включаются в разное время, имитируя присутствие хозяев в квартире или в доме. Это пригодится тем, кто хочет дополнительно защитить свое жилье от нежданных гостей в свое отсутствие.

#include // подключаем библиотеку для IR приемника IRrecv irrecv(A5); // указываем пин, к которому подключен IR приемник decode_results results; // вводим переменные для циклов while byte n = 5; byte m = 5; // вводим переменные для счетчиков unsigned long counttime0; unsigned long counttime1; unsigned long counttime2; unsigned long counttime3; // назначаем имена для портов #define PIR_V 2 // ванная комната #define PIR_K1 3 // прихожая в доме #define PIR_K2 4 // коридор на 2 этаже #define LED_V 6 // ванная комната #define LED_K1 7 // прихожая в доме #define LED_K2 8 // коридор на 2 этаже #define LED_Z 10 // светильник в комнате #define LED_Z1 11 // светильник в комнате #define LED_Z2 12 // светильник в комнате #define FOTO A0 // датчик освещенности #define IR A5 // IR — приемник void setup() { // запускаем прием инфракрасного сигнала irrecv.enableIRIn(); // запускаем серийный монитор порта Serial.begin(9600); // назначаем режим работы портов pinMode(PIR_V, INPUT); pinMode(PIR_K1, INPUT); pinMode(PIR_K2, INPUT); pinMode(LED_V, OUTPUT); pinMode(LED_K1, OUTPUT); pinMode(LED_K2, OUTPUT); pinMode(LED_Z, OUTPUT); pinMode(LED_Z1, OUTPUT); pinMode(LED_Z2, OUTPUT); pinMode(FOTO, INPUT); pinMode(IR, INPUT); // выключаем светильники digitalWrite(LED_Z, LOW); digitalWrite(LED_V, LOW); digitalWrite(LED_K1, LOW); digitalWrite(LED_K2, LOW); digitalWrite(LED_Z1, LOW); digitalWrite(LED_Z2, LOW); }

При длительном включении 2-х метровой LED ленты, транзисторы греются, поэтому используйте радиаторы для их охлаждения или используйте для управления освещением полевой MOSFET транзистор IRF530. У транзистора максимальное напряжение коллектор-база — 100 В, макcимальный ток коллектора 3 Ампера (при напряжении на затворе 5 В), максимальная рассеиваемая мощность — 88 Ватт.

Код

Загрузите скетч, показанный ниже, в плату Arduino.

 1 #define RLED      9                                         //Красный светодиод подключаем к 9-му цифровому контакту с поддержкой ШИМ
 2 #define LIGHT     0                                         //Фоторезистор подключаем к 0-му аналоговому контакту
 3 #define MIN_LIGHT 200                                       //Минимальное значение освещенности
 4 #define MAX_LIGHT 900                                       //Максимальное значение освещенности
 5 
 6 int val = ;                                                //Переменная для хранения считываемого значения с датчика
 7 
 8 void setup()
 9 {
10   pinMode(RLED, OUTPUT);                                    //Устанавливаем 9 вывод как выход
11 }
12 
13 void loop()
14 {
15   val = analogRead(LIGHT);                                  //считываем значение с аналогового входа
16   val = map(val, MIN_LIGHT, MAX_LIGHT, 255, );             //преобразуем диапазон считываемых значений 
17   val = constrain(val, , 255);                             //"определяем" области допустимых значений
18   analogWrite(RLED, val);                                   //управляем светодиодом
19 }

Примечание: В данном примере используется фоторезистор с номинальным сопротивлением в 200кОм. Если у вас фоторезистор на другой номинал, возможно вам придется изменить минимальное(MIN_LIGHT) и максимальное(MAX_LIGHT) значение освещенности.

Датчик освещенности — ардуино подключение

Для измерения освещенности отлично подходят на базе сенсора BH1750 датчики Gy-30 и Gy-302.

Характеристики BH1750FVI цифровой модуль освещенности для Arduino:

  • Цифровой 16-битный цифровой датчик освещённости
  • Чувствителен к видимому свету и практически не подвержен влиянию инфракрасного излучения
  • Построен на микросхеме BH1750FVI
  • Напряжение питания: +3..+5 В постоянного тока.
  • Интерфейс: I2C.
  • Диапазон измеряемой освещенности: (1 — 65535 лк).
  • Размеры: 3,3 см х 1,5 см х 1,1 см
  • Вес: 5 г

В скетче мы каждые 100 мсек считываем с датчика BH1750 показания освещённости в люксах и выводим эти данные в последовательный порт.

Проверяем работу. Для этого подключаем Ардуино к ПК. Запускаем среду разработки Arduino IDE и открываем монитор последовательного через меню Инструменты (Ctrl+Shift+M). Смотрим как меняются показания, если направить свет на датчик или если его затенить.

Фоторезисторы дают вам возможность определять интенсивность освещения.

Они маленькие, недорогие, требуют мало энергии, легки в использовании, практически не подвержены износу.

Именно из-за этого они часто используются в игрушках, гаджетах и приспособлениях

Конечно же, DIY-проекты на базе Arduino не могли обойти своим вниманием эти замечательные датчики

Фоторезисторы по своей сути являются резисторами, которые изменяют свое сопротивление (измеряется в Ом) в зависимости от того, какое количество света попадает на их чувствительные элементы. Как уже говорилось выше, они очень дешевые, имеют различные размеры и технические характеристики, но в большинстве своем не очень точные. Каждый фоторезистор ведет себя несколько иначе по сравнению с другим, даже если они из одной партии от производителя. Различия в показаниях могут достигать 50% и даже больше! Так что рассчитывать на прецизионные измерения не стоит. В основном их используют для определения общего уровня освещенности в конкретных, «локальных», а не «абсолютных» условиях.

Фоторезисторы являются отличным выбором для решения задач вроде «вокруг темно или светло», «есть ли что-то перед датчиком (что ограничивает поступление света)», «какой из участков имеет максимальный уровень освещенности».

Алгоритм поиска неисправности

Визуальный осмотр

Любой ремонт начинается с внешнего осмотра платы

Нужно без приборов просмотреть все узлы и особое внимание обратить на пожелтевшие, почерневшие части и узлы со следами сажи или нагара. При внешнем осмотре вам может помочь увеличительное стекло или микроскоп, если вы работаете с плотным монтажом SMD компонентов

Разорванные детали могут указывать не только на локальную проблему, но и проблему в элементах обвязки этой детали. Например, взорвавшийся транзистор мог за собой утянуть и пару элементов в обвязке.

Не всегда пожелтевшая от температуры область на плате указывает на последствия выгорания детали. Иногда так получается в результате долгой работы прибора, при проверке все детали могут оказаться целыми.

Кроме осмотра внешних дефектов и следов гари стоит и принюхаться, чтобы проверить, нет ли неприятного запаха как от горелой резины. Если вы нашли почерневший элемент – нужно его проверить. У него может быть одна из трёх неисправностей:

Иногда поломка бывает столь очевидной, что её можно определить и без мультиметра, как в примере на фото:

Проверка резистора на обрыв

Проверить исправность можно обычной прозвонкой или тестером в режиме проверки диодов со звуковой индикацией (см. фото ниже). Стоит отметить, что прозвонкой можно проверить лишь резисторы сопротивлением в единицы Ом — десятки кОм. А 100 кОм уже не каждая прозвонка осилит.

Для проверки нужно просто подключить оба щупа к выводам резистора, неважно это СМД компонент или выводной. Быструю проверку можно провести без выпаивания, после чего всё же выпаять подозрительные элементы и проверить повторно на обрыв

Внимание! При проверке детали не выпаивая с печатной платы, будьте внимательны – вас могут ввести в заблуждение параллельно стоящие элементы. Это актуально как при проверке без приборов, так и при проверке мультиметром

Не ленитесь и лучше выпаяйте подозрительную деталь. Так можно проверить только те резисторы, где вы уверены, что параллельно им в цепи ничего не установлено.

Проверка короткого замыкания

Кроме обрыва, резистор могло пробить накоротко. Если вы используете прозвонку – она должна быть низкоомной, например на лампе накаливания. Т.к. высокоомные светодиодные прозвонки «звонят» цепи сопротивлением и в десятки кОм без существенных изменений яркости свечения. Звуковые индикаторы с этой проверкой справляются лучше чем светодиоды. По частоте пищания можно судить о целостности цепи, на первом месте по достоверности находятся сложные измерительные приборы, такие как мультиметр и омметр.

Проверка на КЗ проводится одним способом, рассмотрим инструкцию пошагово:

  1. Измерить омметром, прозвонкой или другим прибором участок цепи.
  2. Если его сопротивление стремится к нулю и прозвонка указывает на замыкание, выпаивают подозрительный элемент.
  3. Проверить участок цепи уже без элемента, если КЗ ушло – вы нашли неисправности, если нет – выпаивают соседние, пока оно не уйдет.
  4. Остальные элементы монтируют обратно, тот после которого КЗ ушло заменяют.
  5. Проверить результаты работы на наличие КЗ.

Читать также: Какая стиральная машина бош самая лучшая

Вот наглядный пример того, что сгоревший резистор оставил следы на соседних резисторах, есть вероятность, что и они повреждены:

Резистор почернел от высокой температуры, на соседних элементах видны не только следы гари, но и следы перегретой краски, её цвет изменился, часть токопроводящего резистивного слоя могла повредиться.

На видео ниже наглядно показывается, как проверить резистор мультиметром:

https://youtube.com/watch?v=Rbcnss9rnxA

https://youtube.com/watch?v=KV65kh0g5J0

KY-008, модуль лазерного светодиода

Модуль лазерного диода

 Можно заменить на лазерный диод за 20 р  и последовательно поставить токоограничивающий резистор, на Али удовольствие стоит  от 50 р
 Модуль аналогичен KY-005, только в роли излучающего элемента выступает 3 мВт лазерный светодиод. Можно использовать для передачи данных на дальние расстояния (лазер все таки, имеет довольно узкий луч, который имеет больший световой поток при одинаковой мощности инфракрасных и лазерных диодов), если использовать зеркала  то можно построить довольно объемную охранную сигнализацию помещения. Единственный недостаток в ней будет заключаться в юстировке зеркал.

Freeduino – Arduino совместимый микроконтроллер

Что такое Freeduino?

Freeduino — программируемая через USB порт микро-ЭВМ, в которую можно загрузить любую программу и получить компактное автономное микропроцессорное устройство с заложенными в него Вашими функциями.

Freeduino — совместимая с Arduino открытая платформа, популярная во всем мире, и наиболее известная именно под именем Arduino. Встречаются также и русские варианты написания: «Ардуино» и «Фридуино».

Возможности платформы не ограничены имеющейся «на борту» периферией – существуют модули, добавляющие к Freeduino новые функции и интерфейсы, такие, например, как модуль Ethernet, или модуль M-Shield, упрощающий подключение двигателей постоянного тока и шаговых двигателей:

^^^

Чем вызвана популярность проекта?

Проект действительно популярен — Google насчитал больше 60 миллионов ссылок: https://www.google.com/search?q=Arduino

  • Сопряжение устройства с USB портом компьютера;
  • Не требуется навыков программирования микроконтроллеров;
  • Не требуются специализированные программаторы и компиляторы;
  • Программируется на очень простом языке, понятном неспециалисту;
  • Удобная и простая среда разработки программ для микроконтроллера;
  • Широкое распространение в сети Internet: сотни сайтов с примерами готовых проектов и библиотек дополнительных функций;
  • Проект является 100% открытым — доступны все исходные тексты;
  • Устройство достаточно функционально — 14 цифровых входов/выходов, из них 6 выходов с широтно-импульсным модулированием, 6 аналоговых входов;
  • Кроссплатформенность. Среда разработки программ для Freeduino работает на Windows, Macintosh OS X, Linux и других операционных системах, поскольку является открытой и реализована на Java.

Области применения

Freeduino можно использовать практически по всех областях электроники, где требуется управление системой по заданному алгоритму с возможностью реагирования на внешние сигналы.

С помощью Freeduino Вы можете легко изготовить системы управления различных электронных устройств: светомузыка; сигнализация; шаговый двигатель; жидкокристаллическая панель, возможно применение в измерении физических величин совместно с датчиками уровня, движения, веса и многое другое.

Чем отличается Freeduino от Arduino?

Если отвечать коротко, то почти ничем.

Электрические схемы микроконтроллеров Arduino и Freeduino не имеют никаких принципиальных различий, и устройства 100% совместимы друг с другом. Несмотря на то, что весь проект Arduino (включая среду разработки, компилятор, прошивки загрузчика, электрическую схему и прочее) является открытым, есть ограничение на использование названия Arduino. Поэтому энтузиасты и организовали проект Freeduino.

Фоторезистор ардуино и датчик освещенности

Фоторезистор, как следует из названия, имеет прямое отношение к резисторам, которые часто встречаются практически в любых электронных схемах. Основной характеристикой обычного резистора является величина его сопротивления. От него зависят напряжение и ток, с помощью резистора мы выставляем нужные режимы работы других компонентов. Как правило, значение сопротивления у резистора в одних и тех же условиях эксплуатации практически не меняется.

В отличие от обычного резистора, фоторезистор может менять свое сопротивление в зависимости от уровня окружающего освещения. Это означает, что в электронной схеме будут постоянно меняться параметры, в первую очередь нас интересует напряжение, падающее на фоторезисторе. Фиксируя эти изменения напряжения на аналоговых пинах ардуино, мы можем менять логику работы схемы, создавая тем самым адаптирующиеся под вешние условия устройства.

Фоторезисторы достаточно активно применяются в самых разнообразных системах. Самый распространенный вариант применения — фонари уличного освещения. Если на город опускается ночь или стало пасмурно, то огни включаются автоматически. Можно сделать из фоторезистора экономную лампочку для дома, включающуюся не по расписанию, а в зависимости от освещения. На базе датчика освещенности можно сделать даже охранную систему, которая будет срабатывать сразу после того, как закрытый шкаф или сейф открыли и осветили. Как всегда, сфера применения любых датчиков ардуино ограничена лишь нашей фантазией.

Самый популярный и доступный вариант датчика на рынке – это модели массового выпуска китайских компаний, клоны изделий производителя VT. Там не всегда можно разораться, кто и что именно производит тот или иной поставщик, но для начала работы с фоторезисторами вполне подойдет самый простой вариант.

Начинающему ардуинщику можно посоветовать купить готовый фотомодуль, который выглядит вот так:

На этом модуле уже есть все необходимые элементы для простого подключения фоторезистора к плате ардуино. В некоторых модулях реализована схема с компаратором и доступен цифровой выход и подстроечный резистор для управления.

Российскому радиолюбителю можно посоветовать обратить на российский датчик ФР. Встречающиеся в продаже ФР1-3, ФР1-4 и т.п. — выпускались ещё в союзовские времена. Но, несмотря на это, ФР1-3 – более точная деталь. Из этого следует и разница в цене За ФР просят не более 400 рублей. ФР1-3 будет стоить больше тысячи рублей за штуку.

Маркировка фоторезистора

Современная маркировка моделей, выпускаемых в России, довольно простая. Первые две буквы — ФотоРезистор, цифры после чёрточки обозначают номер разработки. ФР -765 — фоторезистор, разработка 765. Обычно маркируется прямо на корпусе детали

У датчика VT в схеме маркировке указаны диапазон сопротивлений. Например:

  • VT83N1 — 12-100кОм (12K – освещенный, 100K – в темноте)
  • VT93N2 — 48-500кОм (48K – освещенный, 100K – в темноте).

Иногда для уточнения информации о моделях продавец предоставляет специальный документ от производителя. Кроме параметров работы там же указывается точность детали. У всех моделей диапазон чувствительности расположен в видимой части спектра. Собирая датчик света нужно понимать, что точность срабатывания — понятие условное. Даже у моделей одного производителя, одной партии, одной закупки отличаться она может на 50% и более.

На заводе детали настраиваются на длину волны от красного до зелёного света. Большинство при этом «видит» и инфракрасное излучение. Особо точные детали могут улавливать даже ультрафиолет.

Достоинства и недостатки датчика

Основным недостатком фоторезисторов является чувствительность к спектру. В зависимости от типа падающего света сопротивление может меняется на несколько порядков. К минусам также относится низкая скорость реакции на изменение освещённости. Если свет мигает — датчик не успевает отреагировать. Если же частота изменения довольно велика — резистор вообще перестанет «видеть», что освещённость меняется.

К плюсам можно отнести простоту и доступность. Прямое изменение сопротивления в зависимости от попадающего на неё света позволяет упростить электрическую схему подключения. Сам фоторезистор очень дешев, входит в состав многочисленных наборов и конструкторов ардуино, поэтому доступен практически любому начинающему ардуинщику.

Простой пример использования фоторезистора

В этом скетче берутся считываемые аналоговые значения для определения яркости светодиода. Чем темнее будет, тем ярче будет светить светодиод! Не забудьте, что светодиод должен быть подключен к ШИМ контакту для работы данного примера. В данном случае используется контакт 11.

Этот пример предполагает, что вы знакомы с основами программирования Arduino.

/* простой проверочный скетч для фоторезистора.

Подключите одну ногу фоторезистора к 5 В, вторую к аналоговому пину Analog 0.

После этого подключите резистор на 10 кОм между Analog 0 и землей.

Через резистор подключите светодиод между 11 пином и землей. */

int photocellPin = 0; // сенсор и понижающий резистор 10 кОм подключены к a0

int photocellReading; // считываем аналоговые значения с делителя сенсора

int LEDpin = 11; // подключаем красный светодиод к пину 11 (ШИМ пин)

int LEDbrightness; //

void setup(void) {

// информацию для дебагинга мы будем отправлять на серийный монитор

Serial.begin(9600);

}

void loop(void) {

photocellReading = analogRead(photocellPin);

Serial.print(«Analog reading = «);

Serial.println(photocellReading); // аналоговые значения с сенсора

// светодиод горит ярче, если уровень освещенности на датчике уменьшается

// это значит, что мы должны инвертировать считываемые значения от 0-1023 к 1023-0

photocellReading = 1023 — photocellReading;

//теперь мы должны преобразовать диапазон 0-1023 в 0-255, так как именно такой диапазон использует analogWrite

LEDbrightness = map(photocellReading, 0, 1023, 0, 255);

analogWrite(LEDpin, LEDbrightness);

delay(100);

}

Можете попробовать другие резисторы в зависимости от уровня освещенности, который вы хотите измерять!

Дребезг кнопки ардуино

В процессе работы с кнопками мы можем столкнуться с очень неприятным явлением, называемым дребезгом кнопки. Как следует из самого названия, явление это обуславливается дребезгом контактов внутри кнопочного переключателя. Металлические пластины соприкасаются друг с другом не мгновенно (хоть и очень быстро для наших глаз), поэтому на короткое время в зоне контакта возникают скачки и провалы напряжения. Если мы не предусмотрим появление таких “мусорных” сигналов, то будем реагировать на них каждый раз и можем привести наш проект к хаусу.

Для устранения дребезга используют программные и аппаратные решения. В двух словах лишь упомянем основные методы подавления дребезга:

  • Добавляем в скетче паузу 10-50 миллисекунд между полкучением значений с пина ардуино.
  • Если мы используем прерывания, то программный метд использоваться не может и мы формируем аппаратную защиту. Простейшая из них  – RC фильтр с конденсатором и сопротивлением.
  • Для более точного подавления дребезга используется аппаратный фильтр с использованием триггера шмидта. Этот вариант позволит получить на входе в ардуино сигнал практически идеальной формы.

Более подробную информацию о способах борьбы с дребезгом вы можете найти в этой статье об устранении дребезга кнопок.

Исправление проблем

Если датчик звука работает неправильно, попробуйте выполнить следующие действия.

  1. Дважды проверьте, что источник питания обеспечивает чистое напряжение питания. Поскольку звуковой датчик – это аналоговая схема, он более чувствителен к шуму, создаваемому блоком питания.
  2. Электретный микрофон в звуковом датчике также чувствителен к механическим вибрациям и шуму ветра. Установка с помощью эластичных/упругих материалов может помочь поглотить вибрацию.
  3. Диапазон чувствительности этого звукового датчика очень мал, возможно, всего 10 дюймов (примерно 25 см), поэтому, чтобы получить хорошую реакцию, вам нужно создавать шум намного ближе.

Оригинал статьи:

Interface Sound Sensor with Arduino and Control Devices With a Clap

Приложение. Готовые каркасы и роботы Arduino

Начинать изучать Arduino можно не только с самой платы, но и с покупки готового полноценного робота на базе этой платы — робота-паука, робота-машинки, робота-черепахи и т.п. Такой способ подойдет и для тех, кого электрические схемы не особо привлекают.

Приобретая работающую модель робота, т.е. фактически готовую высокотехнологичную игрушку, можно разбудить интерес к самостоятельному проектированию и робототехнике. Открытость платформы Arduino позволяет из одних и тех же составных частей мастерить себе новые игрушки.

Обзор готовых игрушек-роботов Arduino.

Еще один обзор готовых ардуино-роботов.

Еще один вариант — покупка каркаса или корпуса робота: платформы на колесиках или гусенице, гуманоида, паука и т.п. В этом случае начинку робота придется делать самостоятельно.

Обзор каркасов для роботов Arduino и других плат.

Заключение

Проекты с применением датчика освещенности на базе фоторезистора достаточно просты и эффектны. Вы можете реализовать множество интересных проектов, при этом стоимость оборудования будет не высока. Подключение фоторезистора осуществляется по схеме делителя напряжения с дополнительным сопротивлением. Датчик подключается к аналоговому порту для измерения различных значений уровня освещенности или к цифровому, если нам важен лишь факт наступления темноты. В скетче мы просто считываем данные с аналогового (или цифрового) порта и принимаем решение, как реагировать на изменения. Будем надеяться, что теперь в ваших проектах появятся и такие вот простейшие «глаза».

Заключение

Проекты с применением датчика освещенности на базе фоторезистора достаточно просты и эффектны. Вы можете реализовать множество интересных проектов, при этом стоимость оборудования будет не высока. Подключение фоторезистора осуществляется по схеме делителя напряжения с дополнительным сопротивлением. Датчик подключается к аналоговому порту для измерения различных значений уровня освещенности или к цифровому, если нам важен лишь факт наступления темноты. В скетче мы просто считываем данные с аналогового (или цифрового) порта и принимаем решение, как реагировать на изменения. Будем надеяться, что теперь в ваших проектах появятся и такие вот простейшие «глаза».