Фоторезистор и его применение

Приложение Blynk

Этакий разработчик идей, имеющий открытый вход к запуску на платформе Ардуино. Главное требование в использовании – наличие интернета: Wi-Fi или мобильный трафик. Только в этом случае Blynk будет готов к выполнению. Начать использование можно спустя несколько минут, после окончания настроек. Программой поддерживается АО по выбору пользователя.

Основные функции приложения Blynk заключаются в управлении устройствами при помощи удаления и добавления протоколов HTTP, а также запросов GET и POST. Значения параметров можно обновлять и получать. Запросы обновляются в самом приложении.

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

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

Пример скетча датчика освещенности на фоторезисторе

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

Написать скетч для датчика освещенности довольно просто. Нам нужно только снять текущее значение напряжения с того аналогового пина, к которому подключен датчик. Делается это с помощью известной нам всем функции 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);
  }
}

Прикрывая фоторезистор (руками или светонепроницаемым предметом), можем наблюдать включение и выключение светодиода. Изменяя в коде пороговый параметр, можем заставлять включать/выключать лампочку при разном уровне освещения.

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

Считывание значений с фоторезистора без использования аналоговых пинов

Считывание значений с фоторезистора без использования аналоговых пинов

Так как фоторезисторы по сути своей являются обычными резисторами, их можно использовать даже если на вашем микроконтроллере нет аналоговых пинов (или если все аналоговые пины заняты). Этот метод основан на базовых свойствах резисторов и конденсаторов. Если вы возьмете конденсатор, который может передать потенциал и подключите его к источнику питания (например, 5 В) через резистор, изменение напряжения будет происходить постепенно. Чем больше сопротивление резистора, тем медленнее будет изменяться напряжение.

Ниже представлен кусок осцилограммы, который характеризует, что именно происходит с цифровым пином (желтый). Голубая линия показывает когда начинает отрабатывать сам скетч Arduino и когда он заканчивает свою работу (участок по длительности около 1.2 мс).

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

В нашем случае ‘корзина’ представляет из себя керамический резистор емкостью 0.1 мкФ. Вы можете поэкспериментировать с емкостью конденсатора. И этот показатель напрямую повлияет на время. Если вы хотите померять уровень освещенности, используйте конденсатор емкостью 1 мкФ. Если вы работаете в условиях плохой освещенности, можете использовать конденсатор емкостью 0.01 мкФ.

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

Подключите одну ногу фоторезистора к питанию, вторую — к пину 2.

После этого подключите одну ногу конденсатора 0.1 мкФ к пину 2, а вторую — к земле */

int photocellPin = 2; // фоторезистор подключен к пину 2

int photocellReading; // цифровые значения

int ledPin = 13; // вы можете использовать встроенный светодиод

void setup(void) {

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

Serial.begin(9600);

pinMode(ledPin, OUTPUT); // используем светодиод в качестве выходного сигнала

void loop(void) {

// считывааем показания с сенсора с использованием технологии RCtime

photocellReading = RCtime(photocellPin);

if (photocellReading == 30000) {

// если показания достигают 30000, это значит, что мы достигли граничного значения

Serial.println(«Nothing connected!»);

} else {

Serial.print(«RCtime reading = «);

Serial.println(photocellReading); // поток считанных аналоговых данных

// чем ярче, тем чаще светодиод мигает!

digitalWrite(ledPin, HIGH);

delay(photocellReading);

digitalWrite(ledPin, LOW);

delay(photocellReading);

}

delay(100);

}

// используем цифровой пин для измерения сопротивления

//делаем мы это подавая ток на конденсатор и

// рассчитывая сколько времени пройдет, чтобы достичь Vcc/2 (для большинства Arduino это значение равно 2.5 В)

int RCtime(int RCpin) {

int reading = 0; // начинаем с 0

// инициализируем пин в качестве output и присваиваем ему значение LOW (земля)

pinMode(RCpin, OUTPUT);

digitalWrite(RCpin, LOW);

// Теперь устанавливаем пин в качестве input и…

pinMode(RCpin, INPUT);

while (digitalRead(RCpin) == LOW) { // считаем время, которое надо, чтобы получить значение HIGH

reading++; // инкремент для отсчета времени

if (reading == 30000) {

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

// что скорее всего ничего не подключено!

break; // выходим за пределы цикла

}

}

return reading;

}

Step 2: Code With Blocks

Let’s use the code blocks editor to listen to the state of the photoresistor, then set an LED to a relative brightness based on how much light the sensor sees. You may wish to refresh your memory of LED analog output in the Fading LED lesson.

Click the «Code» button to open the code editor. The grey Notation blocks are comments for making note of what you intend for your code to do, but this text isn’t executed as part of the program.

Click on the Variables category in the code editor.

To store the resistance value of the photoresistor, create a variable named «sensorValue».

Drag out a «set» block. We’ll store the state of our photoresistor in the variable .

Click on the Input category and drag out an «analog read pin» block, and place it into the «set» block after the word «to»

Since our potentiometer is connected to the Arduino on pin A0, change the dropdown to A0.

Click the Output category and drag out a «print to serial monitor» block.

Navigate to the Variables category and drag your variable sensorValue onto the «print to serial monitor» block, and make sure the dropdown is set to print with a new line. Optionally start the simulation and open the serial monitor to verify readings are coming in and changing when you adjust the sensor. Analog input values range from 0-1023.

Since we want to write to the LED with a number between 0 (off) and 255 (full brightness), we’ll use the «map» block to do some cross-multiplication for us. Navigate to the Math category and drag out a «map» block.

In the first slot, drag in a sensorValue variable block, then set the range from 0 to 255.

Back in the Output category, drag out an analog «set pin» block, which by default says «set pin 3 to 0.» Adjust it to set pin 9.

Drag the map block you made earlier into the «set pin» block’s «to» field to write the adjusted number to the LED pin using PWM.

Click the Control category and drag out a wait block, and adjust it to delay the program for .1 seconds.

Калибровка датчика звука

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

Для калибровки цифрового выхода (OUT) модуль содержит встроенный потенциометр.

Поворачивая движок потенциометра, вы можете установить пороговое значение. Таким образом, когда уровень звука превышает пороговое значение, светодиод статуса загорается, а на цифровой выход (OUT) выдается низкий логический уровень.

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

Теперь ваш датчик откалиброван и готов к использованию.

О фоторезисторах

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

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

Код и схемы ниже описывают использование фоторезистора с Arduino. Наш урок не является подробным руководством, и новичкам, которые не знакомы с Ардуино, мы рекомендуем взглянуть на другие уроки на нашем сайте по изучению основ Arduino. Люди с опытом в области электронной инженерии могут предпочесть более продвинутый курс, который охватывает проводку, установку и программирование Arduino и взаимодействие с LabView. Но надеемся, что наш урок будет полезен всем.

Программа

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

Запустив эту программу у нас в хакспейсе, мы получили следующие значения с датчика:

А теперь прикроем датчик рукой:

Видно, что значение сильно меняется. От 830 при прямом попадании света, до 500 в случае затенения (появление преграды на пути света). Зная такое поведение, мы можем численно определить порог срабатывания. Пусть он будет равен, скажем, 600. Не ровно 500, потому что мы хотим обезопасить себя от случайного срабатывания. Вдруг над датчиком пролетит муха — он слегка затенится, и покажет 530.

Наконец, добавим в программу некое действие, которое будет совершаться если уровень освещенности станет ниже заданного порога. Самое простое, что мы можем сделать — это зажигать на Ардуино штатный светодиод #13. Получается такая вот программа:

Накрываем датчик рукой (или выключаем свет в комнате) — светодиод зажигается. Убираем руку — гаснет. Работает, однако. А теперь представьте, что вы зажигаете не светодиод, а подаете сигнал на реле, которое включает лампу в подъезде вашего дома. Получаеся готовый прибор для экономии электроэнергии. Или ставите такой датчик на робота, и он при наступлении ночи ложится спать вместе с вами &#128578; В общем, как говорил профессор Фарнсворт, у датчика света тысяча и одно применение!

Измерение уровня освещенности

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

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

В большинстве исполнений они чувствительны к световым волнам в диапазоне между 700 нм (красный) и 500 нм (зеленый)

Фоторезисторы не воспринимают весь диапазон световых волн. В большинстве исполнений они чувствительны к световым волнам в диапазоне между 700 нм (красный) и 500 нм (зеленый).

То есть индикация диапазона световых волн, который соответствует голубому, не будет таким же эффективным как индикация зеленого/желтого диапазона!

Что такое единица измерения «люкс»?

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

Устройство и конструкции фоторезисторов

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

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

Устройство фоторезистора с ф.ч.э из тонкой плёнки показано на рисунке.

Пояснения к рисункам: Ф – поток оптического излучения, h – ширина ф.ч.э., l – расстояние между электродами, d – толщина чувствительного слоя, Uсм – напряжение, приложенное к выводам фоторезистора.

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

Электроды выполняют в виде проводящих плёнок методом напыления в вакууме из металлов, устойчивых к коррозии (золота, платины или серебра).

Устройство фоторезистора с ф.ч.э в виде пластинки из однородного полупроводникового материала.

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

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

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

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

На фото показан фоторезистор СФ2-8 выполненный в герметичном металлостеклянном корпусе.

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

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

Далее показан фоторезистор ФСК-2, выполненный в корпусе из пластмассы с жёсткими штыревыми выводами для установки в октальную панель (РШ5-1).

Чаще всего в бытовой электронике можно встретить импортные фоторезисторы серий GM, GL, PGM (например, GM5528, GL5516, PGM5539), а также изделия серии VT900 (VT93N1 и подобные). По своему внешнему виду они все очень похожи и имеют одинаковую конструкцию, но разный диаметр подложки-основания.

Предназначены для работы в видимом спектре излучения, а чувствительный слой изготовлен из сульфида или селенида кадмия (имеет оранжевато-красный цвет).

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

Рассмотрим конструкцию такого фоторезистора на примере импортного изделия серии GM125**.

На керамическую подложку (ceramic substrate) нанесена тонкая плёнка из сульфида кадмия (CdS). Это фоточувствительный слой. Его сопротивление меняется под воздействием излучения видимого спектра.

Методом испарения в вакууме на поверхность фоточувствительного слоя напыляется проводящий слой (металлизация). Затем в нём формируется зазор в виде изогнутой линии – «змейки». Зазор разделяет металлизацию на два контактных слоя, к которым прикрепляются жёсткие выводы под пайку, а также через него проникает световой поток.

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

Для защиты от внешнего воздействия вся конструкция покрывается прозрачным защитным составом из эпоксидной смолы (epoxy resin).

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

Step 1: Build the Circuit

Take a look at the breadboard circuit pictured. It can be useful to look at a free-wired version of this sample circuit for comparison, pictured. In this step, you will build your own version of this circuit along side the sample in the workplane.

To follow along, load up a new Tinkercad Circuits window and build your own version of this circuit along side the sample.

Identify the photoresistor, LED, resistors, and wires connected to the Arduino in the Tinkercad Circuits workplane.

Drag an Arduino Uno and breadboard from the components panel to the workplane, next to the existing circuit.

Connect breadboard power (+) and ground (-) rails to Arduino 5V and ground (GND), respectively, by clicking to create wires.

Extend power and ground rails to their respective buses on the opposite edge of the breadboard (optional for this circuit but good common practice).

Plug the LED into two different breadboard rows so that the cathode (negative, shorter leg) connects to one leg of a resistor (anywhere from 100-1K ohms is fine). The resistor can go in either orientation because resistors aren’t polarized, unlike LEDs, which must be connected in a certain way to function.

Connect other resistor leg to ground.

Wire up the LED anode (positive, longer leg) to Arduino pin 9.

Drag a photoresistor from the components panel to your breadboard, so its legs plug into two different rows.

Click to create a wire connecting one photoresistor leg to power.

Connect the the other leg to Arduino analog pin A0.

Drag a resistor from the components panel to connect the photoresistor leg connected to A0 with ground, and adjust its value to 4.7k ohms.

Использование фоторезисторов

Метод считывания аналогового напряжения

Самый простой вариант использования: подключить одну ногу к источнику питания, вторую — к земле через понижающий резистор. После этого точка между резистором с постоянным номиналом и переменным резистором — фоторезистором — подключается к аналоговому входу микроконтроллера. На рисунке ниже показана схема подключения к Arduino .

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

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

В этой таблице приведены приблизительные значения аналогового напряжения на основании уровня освещенности/сопротивления при подключении напряжения питания 5 В и 10 кОм понижающего резистора.

Если вы хотите использовать сенсор на ярко освещенной территории и использовать резистор 10 кОм, он быстро «сдуется». То есть он практически моментально достигнет допустимого уровня напряжения 5 В и не сможет различать более интенсивное освещение. В этом случае вам стоит заменить резистор на 10 кОм на резистор 1кОм. При такой схеме резистор не сможет определять уровень темноты, но лучше определи оттенки высокого уровня освещенности. В общем, вам стоит с этим поиграться в зависимости от ваших условий!

Кроме того, вы также сможете использовать формулу «Axel Benz» для базовых измерений минимального и максимального значения сопротивления с помощью мультиметра и дальнейшего нахождения значения сопротивления резистора с помощью: Понижающий резистор = квадратный корень(Rmin * Rmax), что в результате даст вам гораздо лучший результат в виде:

В таблице выше приведены приблизительные значения аналогового напряжения при использовании сенсора с питанием от 5 В и понижающим резистором 1 кОм.

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

Vo = Vcc (R / (R + Photocell))

То есть напряжение обратно пропорционально сопротивлению фоторезистора, которое, в свою очередь, обратно пропорционально уровню освещения.

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

Для измерения освещенности отлично подходят на базе сенсора 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% и даже больше! Так что рассчитывать на прецизионные измерения не стоит. В основном их используют для определения общего уровня освещенности в конкретных, «локальных», а не «абсолютных» условиях.

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

Схема датчика освещения на фоторезисторе и реле

Примеры скетча для работы с реле приведены в статье, посвященной программированию реле в ардуино. В данном случае, нам не нужно делать сложных телодвижений: после определения «темноты» мы просто включаем реле, подавай на его пин соответствующее значение.

#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);
  }
}

ИК-датчик

Во-вторых, для приема сигнала с пульта нам потребуется специальный ИК-датчик. Вообще, мы можем детектировать инфракрасное излучение обычным фотодиодом/фототранзистором, но в отличие от него, наш ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц). Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца.

Для этого урока воспользуемся популярным ИК-датчиком VS1838B, который обладает следующими характеристиками:

  • несущая частота: 38 кГц;
  • напряжение питания: 2,7 — 5,5 В;
  • потребляемый ток: 50 мкА.

Можно использовать и другие датчики, например: TSOP4838, TSOP1736, SFH506.

Подключение кнопки в режиме INPUT_PULLUP

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


pinMode(PIN_BUTTON, INPUT_PULLUP);

Альтернативным вариантом будет выбрать режим пина как OUTPUT и установить на данный порт высокий уровень сигнала. Встроенный подтягивающий резистор подключиться автоматически.


pinMode(PIN_BUTTON, INPUT_PULLUP);

digitalWrite(PIN_BUTTON, HIGH);

И все. Можно собрать вот такую сложную схему и работать с кнопкой в скетче.

Подводим итог

В этой статье мы рассмотрели три способа управления светом при помощи датчика движения, фоторезистора и ИК-приемника. Каждый из методов найдет свое применение в различных помещениях и намного упростит управление светом. Также хочется отметить, что вы можете комбинировать эти примеры. Например, можно одновременно использовать датчик приближения и ИК-приемник. Еще хотелось бы напомнить нашим читателям, что все рассмотренные примеры используют прямое подключение к сети 220 В, поэтому будьте предельно осторожны. Если у вас под рукой нет платы Arduino или она еще не дошла из Китая, то мы советуем воспользоваться бесплатным сервисом Autodesk Circuits. Этот сервис представляет собой конструктор с различными компонентами Arduino.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector