Оглавление
- Код проекта
- Собираем передатчик IR сигнала.
- Управление Ардуино с помощью ИК приемника и пульта
- Управление скоростью коллекторного двигателя с помощью ИК пульта
- Начинаем работать с ИК приемником, или будем управлять светодиодами с пульта.
- Принцип работы универсального пульта
- Управляем освещением при помощи датчика освещенности
- Как подключить ИК приемник к Ардуино
- Зажигаем светодиоды в случайном порядке, или знакомимся с оператором случайных чисел…
- Скетч для Arduino
- Z- IR receiver. Модуль ИК приемника
- Подводим итог
Код проекта
Для начала нам нужно сказать библиотеку для ИК-управления IRremote.
В первом варианте с несколькими светодиодами и 220 Ом резисторами наш код выглядеть будет таким образом:
#include <boarddefs.h><br>#include <IRremote.h> #include <IRremoteInt.h> #include <ir_Lego_PF_BitStreamEncoder.h> int ledb = 13; int ledg = 12; int ledr = 8; int ledy = 7; int ledw = 2; int r = 11; IRrecv irrecv(r); decode_results results; long IRCode = 0;</p><p>void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver pinMode(ledb,OUTPUT); pinMode(ledg,OUTPUT); pinMode(ledr,OUTPUT); pinMode(ledy,OUTPUT); pinMode(ledw,OUTPUT); pinMode(r,INPUT);</p><p>}</p><p>void loop() { if (irrecv.decode(&results)) { Serial.println(results.value); IRCode = results.value; irrecv.resume(); // Receive the next value } if (IRCode == 16724175){ digitalWrite(ledb, !digitalRead(ledb)); } if (IRCode == 16718055){ digitalWrite(ledg, !digitalRead(ledg)); } if (IRCode == 16743045){ digitalWrite(ledr, !digitalRead(ledr)); } if (IRCode == 16716015){ digitalWrite(ledy, !digitalRead(ledy)); } if (IRCode == 16726215){ digitalWrite(ledw, !digitalRead(ledw)); } }
Во втором варианте с резисторами 1 КОм (схема выше) можно использовать следующий код:
#include <IRremote.h> const int RECV_PIN = 7; IRrecv irrecv(RECV_PIN); decode_results results; const int redPin = 10; const int greenPin = 11; void setup(){ irrecv.enableIRIn(); irrecv.blink13(true); pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); } void loop(){ if (irrecv.decode(&results)){ switch(results.value){ case 0xFF38C7: //Keypad button "5" digitalWrite(redPin, HIGH); delay(2000); digitalWrite(redPin, LOW); } switch(results.value){ case 0xFF18E7: //Keypad button "2" digitalWrite(greenPin, HIGH); delay(2000); digitalWrite(greenPin, LOW); } irrecv.resume(); } }
Собираем передатчик IR сигнала.
Подключение IR передатчика к Arduino производится следующим образом: минус передатчика подключаем к пину GND. Плюс подключаем к 3 пину (цифровой выход). Причем, номер пина указан в самой библиотеке IRremote, и выставить другой пин в самом скетче нельзя. Поэтому внимательно удостоверьтесь в том, что плюс передатчика подключен правильно. Так же, желательно, плюс к пину подключать через резистор 180 Ом, чтобы не спалить передатчик (я не использовал).
Открываем скетч для примеров IRsendRawDemo, библиотеки IRremote, находим обьявление одномерного массива irSignal[], где указан код сигнала у формате Raw, и заменяем на свой. Например: .
Проверяем скетч на ошибки, и загружаем его в контроллер. После загрузки, каждые 5 секунд, arduino будет отправлять сигнал. Если поднести его к управляющему устройству, должно произойти какие-то изменение (в моем случае – включение кондиционера). Если нет изменений, проверьте, работает ли сам передатчик: включите камеру на телефоне, и наведите на передатчик. Каждые 5 секунд, передатчик должен засветиться. Если передатчик работает – проверяйте правильность ввода Raw кода сигнала в скетч передатчика. Если передатчик не светится, проверьте подключение и работоспособность передатчика (возможно, Вы подключили передатчик без резистора, и он сгорел, или подключили слишком большой резистор). Переходим к третьему шагу.
Управление Ардуино с помощью ИК приемника и пульта
Нам понадобится:
Ссылочка на Arduino uno: http://ali.ski/gC_mOa Ссылочка на модуль Реле: http://ali.ski/X26ZC Ссылочка на контактные провода: http://ali.ski/Exjr3 Ссылочка на Ик приемик: http://ali.ski/Xb4xK4
В данном примере я покажу как с помощью Ик пульта включить и выключить реле. Это можно применить например в управлении освещением с помощью пульта. Да и вообще кучу кнопок на пульте запрограммировать и можно всем домом управлять. было бы желание.
Подключаем ИК приемник и модуль реле к ардуино, согласно схеме приведенной в начале статьи.
Для начала нам нужно скачать библиотеку из стандартных библиотек IRremote.h . как скачать данную библиотеку рассказывается в видео в конце стать.
После того как скачали библиотеку, нужно залить из примеров в библиотеке IRremote.h пример считывание кодов кнопок пульта, как это сделать тоже рассказывается в видео в конце статьи.
После того как считали код нужной нам кнопки ее нужно записать в строку case 0xFD00FF заместо 0xFD00FF Далее
Необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
Ссылка на Скетч: https://yadi.sk/d/SRWyMOeZv8DcG Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.
Управление скоростью коллекторного двигателя с помощью ИК пульта
Есть задача, регулировать пультом скорость коллекторного двигателя. Сам пока только познаю азы в понятиях Ардуино. Нашел в нете подходящий по-помему мнению скетч, с регулировкой светодиода, но при компиляции он выдает ошибку в строке 46. Подскажите, господа разбирающиеся, что здесь неправильно?
Да, это не заметил, но увы — не полегчало. Выдает вот такую ошибку:
sketch_mar29e:46: error: ‘pinl’ was not declared in this scope
exit status 1 ‘pinl’ was not declared in this scope
Нашел еще один скетч, он нормально заливается в плату, но ничего не работает. (коды пульта изменены на мои):
Какой из них предпочтительнее и легче привести в рабочее состояние?
Потому что в строке 13 написано pin1, а в строке 46 написано pinl. Разницу видите?
Спасибо, уже увидел! А по второму скетчу навскидку ничего не видно проблематичного?
В первом: int RECV_PIN = 11;
Во втором: int RECEIVE_PIN = 2;
К какой ноге реально подключен датчик?
Датчик пульта перевешивал на нужную ногу. Скорее всего где-то контакта не было. Сейчас заработали оба скетча, первый оказался немного не такой как надо — регулировка одной кнопкой по кругу минимум-максимум. Во второй добавляю регулировку второго двидателя — опять какая-то засада. Знаний мало, а хочется сделать что-то сразу. Вот переделанный скетч, посмотрите, ПОЖАЛУЙСТА, что я не так наковырял?
Источник
Начинаем работать с ИК приемником, или будем управлять светодиодами с пульта.
Для реализации этого проекта нам понадобиться немного
радиодеталей: ИК приемник (VS 1838B), пульт ДУ (подойдет любой, но я буду
использовать пока пульт от набора ардуино), два резистора на 100-200 Ом,
конденсатор 10 мкФ, три светодиода разных цветов, и макетные провода с макетной
платой.
Теперь немного теории (без этого никуда). Инфракрасный
пульт дистанционного управления — один из самых простых способов взаимодействия
с электронными приборами. Наверняка в каждом доме найдётся немало таких
устройств: телевизор, музыкальный центр, видеоплеер, кондиционер. А можно ли с
помощью ПДУ (пульт дистанционного управления) управлять нашей Arduino Uno?
Оказывается да! Для начала поставим скромную задачу: с помощью ПДУ зажигать и
гасить светодиоды.
Для начала нам понадобиться любой ИК пульт (если у вас
остались старые ИК ПДУ, то вот можно найти им применение). Такие устройства ИК работают испуская на
инфракрасном светодиоде импульсы ИК излучения определённой частоты
(приблизительно от 38 до 40 кГц). Соответственно приемник (в нашем случае это VS1838B)
может принимать любой ИК излучение, но «ненужное» излучение (несущая) должно
быть отфильтровано (иначе будут ложные срабатывания), и в итоге остаётся только
«нужный» сигнал данных (который передается при нажатии на кнопку ПДУ).
Но вернемся к нашему приемнику ИК VS1838B
Важно его
грамотно подключить. А для этого давайте сначала познакомимся с его выводами.
Он имеет три вывода: если посмотреть на датчик со стороны приёмника ИК сигнала,
как показано на рисунке, то слева будет — выход на контроллер, по центру —
отрицательный контакт питания (земля), и справа — положительный контакт питания
(2.7 — 5.5В)
Далее собираем
схему и давайте подключим библиотеку IRremote (ее можно будет загрузить с Яндекс диска по этой ссылке). Если кто еще не знает как это
сделать, то вот здесь можно будет все наглядно посмотреть (ссылка на видео).
Следующим этапом нам нужно убедиться, что наш ПДУ действительно подает сигналы
на ИК приемник и все отображается в мониторе порта. Вообще для этого есть
отдельный скетч (который можно загрузить из примера в библиотеке IRremote), но
давайте сразу убьём обоих зайцев: возьмём готовый скетч (который мы в
дальнейшем будем настраивать).
/*
Arduino, ИК(IR)
приемник и пульт управления
*/
// Подключаем библиотеку для работы с IR приемником
#include
<IRremote.h>
#define
LED_PIN
int IRRECV_PIN = 2;
// Для управления цветом светодиода используем 3 ШИМ
порта
int
bluePin = 9;
int
greenPin = 10;
int
redPin = 11;
// Выставляем, на каком порту весит выход IR приемника
IRrecv
irrecv(IRRECV_PIN);
decode_results
res;
void setup() {
// Включаем
последовательное соединение с ПК
Serial.begin(9600);
// Включаем IR
приемник
irrecv.enableIRIn();
// НАстраиваем
выходы для нашего RGB светодиода
pinMode(bluePin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(redPin, OUTPUT);
}
void
loop() {
// Принимаем и декодируем сигнал
if (irrecv.decode(&res)) {
// Сохраняем полученное значение в
переменной
int value =
res.value;
// Выводим на
монитор последовательного порта значения.
Serial.println(value);
// В
зависимости от кода полученного сигнала, выполняем действия.
// Для
используемого пульта кнопки 1,2,3 — RGB свечение, 9 — выключение
if (value == 26775){
setColor(255, 0, 0);
} else if (value == 12495){
setColor(0, 255, 0);
} else if (value == 6375){
setColor(0, 0, 255);
} else if (value == 31365){
setColor(0,
0, 0);
}
// Даем команду
получать следующее значение
irrecv.resume();
}
}
// Функция включения необходимого цвета на нашем RGB
светодиоде
void
setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Принцип работы универсального пульта
Многие из вас для управления телевизором вынуждены использовать 2 пульта ДУ: один для управления телевизором и один для управления телевизионной приставкой. В этом проекте мы объединим эти 2 пульта на основе смартфона чтобы с его помощью можно было управлять телевизором в полной мере, не задействуя дополнительные пульты.
Используя плату Arduino Uno достаточно просто в этом универсальном пульте ДУ реализовать процессы кодирования и декодирования нужных сигналов. Для удобства изготовления подобного устройства целесообразно сконструировать самодельный шилд (плату расширения) для платы Arduino как показано на следующем рисунке. Шилд будет состоять из приемника (ресивера) TSOP IR 1838T, инфракрасного светодиода и Bluetooth модуля (HC-05).
Вы можете либо изготовить приведенный шилд, либо просто соединить эти компоненты с платой Arduino Uno как показано на приведенной ниже схеме устройства.
Большинство инфракрасных устройств работают на частоте 38 кГц, поэтому мы и выбрали для нашего проекта 1838T. При этом рассматривая принципы работы устройств с инфракрасной связью следует помнить о том, что в них нет логических единиц и нулей в прямом понимании этих понятий. И единица, и ноль в этих устройствах кодируются набором специальных импульсов как показано на следующем рисунке. Сущность этих процессов кодирования описана в NEC протоколе.
Принцип работы проектируемого нами универсального пульта ДУ будет заключаться в следующем. Сначала смартфон с помощью приложения для Android передает сигнал плате Arduino при помощи технологии Bluetooth, далее Arduino принимает его при помощи приемника TSOP-IR (1838T) и анализирует его. Затем Arduino передает команду инфракрасному светодиоду чтобы он мигал по определенному алгоритму (шаблону), зависящему от того, какая кнопка нажата в приложении для Android в смартфоне. Этот сигнал принимается телевизором или телевизионной приставкой, которые выполняют закодированную в сигнале команду.
Но перед осуществлением этого проекта мы должны декодировать сигналы с пультов ДУ, которые мы хотим заменить. Этот процесс рассмотрен далее в статье.
Управляем освещением при помощи датчика освещенности
В этом примере наш блок управления светом будет управлять светом автоматически. Поможет ему в этом датчик освещенности, который будет передавать информацию на микроконтроллер о состоянии текущего показателя освещения. Если освещенность очень низкая, то микроконтроллер будет автоматически включать лампочку, подключенную к сети 220 вольт. Такую систему освещения еще называют адаптивной. Для примера сборки схемы с адаптивным освещением потребуется такое оборудование и ПО:
- Arduino UNO — одна из разновидностей плат ардуино;
- Блок реле SRD-12VDC-SL-C;
- Резистор на 10 кОм;
- Фоторезистор (выступает в роли датчика освещенности);
- Arduino IDE — программное обеспечение для загрузки микрокода в микроконтроллер Arduino;
- Лампочка, подключаемая к сети 220 вольт.
Первым делом соберем схему с помощью этих компонентов изображенную ниже.
Теперь откроем Arduino IDE и внесем в нее такой код:
Этот код не предназначен для включения нашей лампочки. С помощью этого кода мы проверим наш датчик освещенности. Поэтому загрузим этот код в Arduino UNO и откроем «Монитор порта».
В «Мониторе порта» видно, что мы получаем значения с фоторезистора, а это значит, что он нормально функционирует. Теперь пришло время загрузить основной код для автоматического управления светом. Для этого вставьте этот код в Arduino IDE:
Принцип работы этого скетча основан на условном операторе, при котором выполняется условие «s2 < 700». Это условие означает, что при значении датчика меньше 700 лампочка будет включаться, а если значение больше 700, то лампочка отключится. Из примера видно, как легко можно создать адаптивную систему автоматического освещения.
Как подключить ИК приемник к Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- макетная плата;
- IR приемник;
- пульт ДУ;
- 1 светодиод и резистор 220 Ом;
- провода «папа-папа» и «папа-мама».
Корпуса инфракрасных приемников содержат оптический фильтр для защиты прибора от внешних электромагнитных полей, изготавливаются они специальной формы для фокусировки принимаемого излучения на фотодиоде. Для подключения IR приемника к Arduino UNO используют три ножки, которые соединяют с — GND, 5V и A0. Советуем для начала использовать 3,3 Вольта, чтобы не сжечь ИК датчик при настройке.
Схема подключения ИК приемника к аналоговому порту Ардуино
Скетч для ИК приемника Arduino со светодиодом
#include <IRremote.h> // подключаем библиотеку для IR приемника IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник decode_results results; void setup() { irrecv.enableIRIn(); // запускаем прием инфракрасного сигнала Serial.begin(9600); // подключаем монитор порта pinMode(12, OUTPUT); // пин 12 будет выходом (англ. «output») pinMode(A0, INPUT); // пин A0 будет входом (англ. «intput») } void loop() { if (irrecv.decode(&results)) // если данные пришли выполняем команды { Serial.println(results.value); // отправляем полученные данные на порт // включаем и выключаем светодиод, в зависимости от полученного сигнала if (results.value == 16718055) { digitalWrite(12, HIGH); } if (results.value == 16724175) { digitalWrite(12, LOW); } irrecv.resume(); // принимаем следующий сигнал на ИК приемнике } }
Пояснения к коду:
- библиотека содержит набор команд и позволяет упростить скетч;
- оператор присваивает получаемым сигналам от пульта дистанционного управления имя переменной .
ИК датчик можно применять во многих устройствах на микроконтроллере Ардуино, в том числе, можно сделать дистанционное управление сервоприводом на Ардуино от ИК приемника. При настройке следует включить монитор порта Arduino IDE и узнать какой сигнал отправляет та или иная кнопка на пульте ДУ. Полученные коды следует использовать в скетче после знака двойного равенства в условиях .
Скетч для ИК приемника Ардуино и серовомотора
#include <IRremote.h> // подключаем библиотеку для IR приемника IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник decode_results results; #include <Servo.h> // подключаем библиотеку для серво Servo myservo; // создаем объект для управления серво void setup() { irrecv.enableIRIn(); // запускаем прием инфракрасного сигнала Serial.begin(9600); // подключаем монитор порта myservo.attach(9); // указываем пин для подключения серво } void loop() { if (irrecv.decode(&results)) // если данные пришли выполняем команды { Serial.println(results.value); // отправляем полученные данные на порт // поворачиваем серво, в зависимости от ИК сигнала if (results.value == 16718055) { myservo.write(0); } if (results.value == 16724175) { myservo.write(90); } irrecv.resume(); // принимаем следующий сигнал на ИК приемнике } }
Пояснения к коду:
- в условиях следует поставить свои значения, они будут появляться на мониторе порта при нажатии кнопок на пульте ду.
Чтобы сигнал от пульта ДУ принимался ИК приемником Ардуино, пульт должен быть с той же частотой, на которую настроен фильтр в IR приемнике. Поэтому не каждый пульт дистанционного управления подойдет для работы. Следует подбирать IR приемник и IR передатчик с одной частотой. После фильтра сигнал поступает на амплитудный детектор, интегрирующий фильтр и выходной транзистор.
Зажигаем светодиоды в случайном порядке, или знакомимся с оператором случайных чисел…
Всем привет! Продолжаем изучать наш ардуино конструктор и сегодня продолжим тему светодиодов. Кто-то скажет что было уже — сколько можно? Ответим на этот раз будет гораздо интереснее. До сих пор мы работали с одним активным светодиодом, а теперь давайте попробуем включить их побольше, скажем этак 7-8 светодиодов. Но при этом заставим их мигать совершенно случайно. Эффект при этом должен получиться очень интересным.
С чего будем начинать? Правильно с скетча. Хотя лучше пожалуй рассказать сейчас поподробнее о новом операторе случайных чисел: random (x,y). Все очень просто: этот оператор просто будет генерировать случайные числа в диапазоне от х до y. Именно это свойство мы и используем
Далее приведем и скетч:
void setup()
{
// инициализация пинов как выходы
for (int i=2; i
Процедура гашения происходит точно так же.
Как говориться теорию мы изучили. Пора перейти к практике. Кстати несмотря на кажущуюся сложность схемы, собрать ее на макетной плате (бредборде) очень просто. На все про все уйдет не более пяти минут. И вот наконец все подключено, проверено и можно будет запускать. Запуск состоит из перезаписи скетча в микроконтроллер. Просто подключаем шнур от плате к компьютеру, вызываем программу и записываем скетч…
И вот как говориться все получилось. Конечно же лучше все это увидеть не на фотографиях а на видео. кроме того видео получилось не просто с демонстрации собранной мигалки, но так же немного затрагивает (главное дает возможность задуматься) некоторые вопросы ардуино (в плане сборки самодельного конструктора, и так же заострил я одну проблему). Приятного просмотра! Вот теперь все на сегодня! Удачи в ваших самоделках!
Скетч для Arduino
- ir-servo-robot.ino
-
// библиотека для ИК приёмника #include <IRremote.h> // подключаем библиотеку для работы с сервоприводами #include <Servo.h> // создаём объект для управления сервоприводом Servo myservoFordL; Servo myservoFordR; Servo myservoBackL; Servo myservoBackR; // даем имя пину подключения ИК приёмника int RECV_PIN = 4; // указываем к какому пину подключен ИК приёмник IRrecv irrecv(RECV_PIN); decode_results results; void setup() { // запускаем работу ИК приемника irrecv.enableIRIn(); // подключаем сервоприводы myservoFordL.attach(8); myservoFordR.attach(9); myservoBackL.attach(10); myservoBackR.attach(11); } void loop() { // принимаем данные с ИК пульта // в зависимости от нажатой кнопки пульта // даём разные команды роботу if (irrecv.decode(&results)) { if (results.value == 0x1689609F) { ford(); } else if (results.value == 0x1689B847) { back(); } else if (results.value == 0x168910EF) { left(); } else if (results.value == 0x16899867) { right(); } else if (results.value == 0x168938C7) { stop(); } // ждем следующее значение irrecv.resume(); } //делаем задержку delay(100); } // функция движение вперёд void ford() { myservoFordL.write(); myservoFordR.write(180); myservoBackL.write(); myservoBackR.write(180); } // функция движение назад void back() { myservoFordL.write(180); myservoFordR.write(); myservoBackL.write(180); myservoBackR.write(); } // функция поворота налево void left() { myservoFordL.write(180); myservoFordR.write(180); myservoBackL.write(180); myservoBackR.write(180); } // функция поворота направо void right() { myservoFordL.write(); myservoFordR.write(); myservoBackL.write(); myservoBackR.write(); } // функция остановки void stop() { myservoFordL.write(90); myservoFordR.write(90); myservoBackL.write(90); myservoBackR.write(90); }
Z- IR receiver. Модуль ИК приемника
Опубликовано 05.05.2014 8:44:00
Модуль ИК Приемника в связке и ИК пультом дистанционного управления позволит легко реализовать дистанционное управление платой Arduino.
Он представляет из себя не что иное, как ИК приемник VS1838B с установленной на плате рекомендуемой производителем обвязкой.
Для работы с данным модулем “из коробки” необходим ПДУ с частотой 38 кГц.
Плюсом данной платы является цанговый разъем, позволяющий без применения пайки заменить ИК приемник на другой, работающий на частоте, необходимой для вашего проекта.
• Напряжение питания: 2.7 – 5.5В
• Частота модуляции: 38кГц
• Диапазон температур: – 20 … + 80°C
• Интерфейс: Цифровой
Подключение к Arduino
Модуль оборудован трехпиновым разъемом стандарта 2.54мм
: подключается к выводу GND
подключается к выводу +5V
: подключается к цифровому выводу ( в примере D2 )
Пример работы в среде Arduino
Для работы с данным модулем необходимо установить библиотеку IRRemote
Скачиваем, распаковываем и закидываем в папку libraries в папке Arduino. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.
Считывание показаний кнопок ПДУ
Для считывания показаний пульта заливаем нижеприведенный скетч. Он будет выводить в порт кодировки нажатых кнопок.
В качестве примера будем использовать пульт, как на картинке, т.к. пульт такого типа идет в наборе ИК пульт + ИК модуль приемник
Пример программного кода:
// Тестировалось на Arduino IDE 1.0.3
#include
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN); //Создаем объект получения сигнала с определенного порта
decode_results results; //Переменная, хранящая результат void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Начинаем прием
} void loop() {
if (irrecv.decode(&results)) //При получении сигнала…
{
Serial.println(results.value); //…выводим его значение в последовательный порт
irrecv.resume(); // Получаем следующее значение
}
}
В мониторе порта должны увидеть слудущее:
При почти секундном удержании каждой кнопки, мы получаем около 10 кодов. Первый из них и является кодом кнопки. А после него начинает идти стандартный код, который сообщает о залипании кнопки.
Управление платой Arduino c ПДУ
Заставим светодиод на плате Arduino (D13) загораться при получении кодировки первой кнопки и выключаться при получении кодировки второй.
Пример программного кода:
// Тестировалось на Arduino IDE 1.0.3
#include int RECV_PIN = 2;
int LED = 13;
IRrecv irrecv(RECV_PIN);
decode_results results; void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Запуск приемника
pinMode(LED, OUTPUT);
} void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 16769565) // При получении кодировки 1
{
digitalWrite(LED, HIGH); // Включаем светодиод
}
if (results.value == 16761405) // При получении кодировки 2
{
digitalWrite(LED, LOW); // Выключаем светодиод
}
irrecv.resume(); // Получаем следующее значение
}
}
Купить в России Z- Модуль ИК приемника
В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.
Подводим итог
В этой статье мы рассмотрели три способа управления светом: при помощи датчика движения, фоторезистора и ИК-приемника. Каждый из методов найдет свое применение в различных помещениях и намного упростит управление светом. Также хочется отметить, что вы можете комбинировать эти примеры. Например, можно одновременно использовать датчик приближения и ИК-приемник. Еще хотелось бы напомнить нашим читателям, что все рассмотренные примеры используют прямое подключение к сети 220 В, поэтому будьте предельно осторожны. Если у вас под рукой нет платы Arduino или она еще не дошла из Китая, то мы советуем воспользоваться бесплатным сервисом Autodesk Circuits. Этот сервис представляет собой конструктор с различными компонентами Arduino.
Поэтому вы можете сколько угодно собирать различные схемы, а также схемы из наших примеров. Надеемся, материал, изложенный в статье, поможет вам создать систему управления освещением, и вы еще на один шаг приблизитесь к созданию умного дома.