Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

В этом уроке Arduino IR мы научимся управлять электронными устройствами с помощью пульта ТВ и Arduino. Мы сделаем несколько примеров, начиная с управления простым светодиодом, затем управление скоростью вентилятора постоянного тока, до управления высоковольтными бытовыми приборами. Вы можете посмотреть следующее видео или прочитать письменный урок ниже.

Как это работает

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

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

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

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

В этом уроке мы будем использовать ИК-приемник VS 34838, у которого есть следующая блок-схема, из которой видно, что он усилит, отфильтрует и демадулирует принятый сигнал и выдаст чистый логический выход, приемлемый для цифрового входа платы Arduino.

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

Затем, используя библиотеку Arduino-IRremote Кена Ширриффа и её демо-пример, мы можем увидеть в мониторе последовательного порта уникальный шестнадцатеричный код для каждого нажатия кнопки, который мы можем использовать при создании нашей программы.

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

Ссылка на библиотеку Arduino-IRremote Кена Ширриффа: https://github.com/z3t0/Arduino-IRremote

Управление RGB-светодиодом с пульта ТВ


Вы можете приобрести компоненты на любом из сайтов ниже:

  • ИК-приемник………………………………
  • RGB-светодиод………………………………
  • 3x 220 Ом резисторов………….……
  • Плата Arduino …………………………..
  • Макетная плата и перемычки ……..

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

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

Теперь мы изменим демо-код так и добавим операторы if, которые будут выполняться, если нажата определенная кнопка. Так для каждой кнопки мы установим соответствующие RGB-значения, и функция setColor() загорит светодиод в определенный цвет. Для получения более подробной информации о том, как работает RGB-светодиод с Arduino, вы можете проверить мой урок Arduino RGB Tutorial.

/* 
 * Controlling a RGB LED with a TV Remote
 * Modified IRrecvDemo example from Ken Shirriff IRremote Library
 * Ken Shirriff, https://arcfn.com
 * Modified by Dejan Nedelkovski, www.HowToMechatronics.com
 */
#include <IRremote.h>
int RECV_PIN = 8; // ИК-приемник - Пин Arduino №8
IRrecv irrecv(RECV_PIN);
decode_results results;
int redPin = 5; int greenPin = 6; int bluePin = 7;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Запуск приемника
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    if (results.value == 0xF21D7D46) { // Красная кнопка
      setColor(255, 0, 0); // Устанавливает красный цвет
      delay(100);
    }
    if (results.value == 0x87CF1B29) { // Зеленая кнопка
      setColor(0, 255, 0); // Зеленый цвет
      delay(100);
    }
    if (results.value == 0x6623D37C) { // Желтая кнопка
      setColor(255, 255, 0); // Желтый цвет
      delay(100);
    }
    if (results.value == 0x854115F2) { // Синяя кнопка
      setColor(0, 0, 255); // Синий цвет
      delay(100);
    }
    if (results.value == 0x1639AB6E) { // Кнопка Stop
      setColor(0, 0, 0); // ВЫКЛ
      delay(100);
    }
    irrecv.resume(); // Принять следующее значение
  }
  delay(100);
}

// Пользовательская функция для активации RGB-светодиода
void setColor(int red, int green, int blue) {
  analogWrite(redPin, red); // Отправляет PWM-сигнал на красный пин
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}Язык кода: Arduino (arduino)

Вот схема подключения Arduino IR управляемого RGB-светодиода:

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

Управление скоростью вентилятора постоянного тока с пульта ТВ


Компоненты, необходимые для этого примера:

  • Двигатель постоянного тока……………….
  • или вентилятор постоянного тока……………….
  • NPN-транзистор………
  • Диод…………………….
  • Конденсатор – 1 мкФ ……..
  • Резистор – 1 кОм ..

В этом примере мы будем управлять скоростью вентилятора постоянного тока с помощью кнопок «Вперед» и «Назад» пульта ТВ. Мы будем использовать эту схему подключения для управления скоростью вентилятора, или на самом деле мы будем управлять PWM-сигналом с помощью кнопок. Для получения более подробной информации о том, как работает эта схема подключения, вы можете проверить мой урок Arduino Motors Tutorial.

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

Вот исходный код для этого примера. Используя функцию analogWrite(), мы отправим PWM-сигнал на базу транзистора. Кнопка PLAY запустит двигатель на максимальной скорости, или коэффициент заполнения PWM-сигнала будет 100%, а кнопка STOP остановит его. Кнопка «Вперед» будет увеличивать скорость вентилятора при каждом нажатии, увеличивая коэффициент заполнения PWM-сигнала, а кнопка «Назад» будет уменьшать его.

/* 
 * Controlling a DC Fan Speed with a TV Remote
 * Modified IRrecvDemo example from Ken Shirriff IRremote Library
 * Ken Shirriff, https://arcfn.com
 * Modified by Dejan Nedelkovski, www.HowToMechatronics.com
 */
#include <IRremote.h>
int RECV_PIN = 8; // ИК-приемник - Пин Arduino №8
int pwmPin = 7; // Пин Arduino №7 к базе транзистора
int pwmValue;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Запуск приемника
  pinMode(pwmPin, OUTPUT);
  pwmValue = 0; // Начинаем с выключенного двигателя
}

void loop() {
  if (irrecv.decode(&results)) {
    analogWrite(pwmPin, pwmValue);
    if (results.value == 0xAFAF8374) { // Кнопка PLAY
      pwmValue = 255; // 100% коэффициент заполнения | Макс. скорость
    }
    if (results.value == 0x98519C65) { // Кнопка STOP
      pwmValue = 0; // 0% коэффициент заполнения | Выключено
    }
    if (results.value == 0x93F1BA08) { // Кнопка ВПЕРЕД
      if(pwmValue <= 245){
        pwmValue = pwmValue + 10; // Увеличивает коэффициент заполнения PWM
        delay(20);
      }
    }
    if (results.value == 0x71D086FF) { // Кнопка НАЗАД
      if(pwmValue >= 20){
        pwmValue = pwmValue - 10; // Уменьшает коэффициент заполнения PWM
        delay(20);
      }
    }
    Serial.print(pwmValue); Serial.print(" "); Serial.println(results.value, HEX);
    irrecv.resume(); // Принять следующее значение
  }
  delay(100);
}Язык кода: Arduino (arduino)

Управление высоковольтными бытовыми приборами с пульта ТВ


Компоненты, необходимые для этого урока:

  • Модуль реле 5V……. Amazon / Banggood / AliExpress
  • Кабель, вилка, розетка

Финальный пример будет управлять высоковольтными бытовыми приборами с помощью пульта ТВ. Для этого нам понадобится модуль реле. Я буду использовать модуль реле HL-52S, который имеет номинал 10 А при 250 и 125 В переменного тока. Вот схема подключения примера Arduino IR управления высоковольтными бытовыми приборами. С выводом номер 7 платы Arduino мы будем управлять реле, на котором есть розетка для подключения любого высоковольтного электронного устройства.

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

Поскольку мы используем ВЫСОКОЕ НАПРЯЖЕНИЕ, мы должны быть очень осторожны, и я предупреждаю вас здесь, что неправильное или некорректное использование может привести к серьезным травмам или смерти, и я не несу никакой ответственности за ваши действия. Для получения более подробной информации о том, как использовать реле и как сделать розетку для подключения любого электронного устройства, вы можете проверить мой урок Arduino Relay Tutorial.

Управление любым устройством с пульта ТВ через Arduino IR — Пошаговый урок

Вот исходный код этого примера:

/* 
 * Controlling High Voltage Home Appliances with a TV Remote
 * Modified IRrecvDemo example from Ken Shirriff IRremote Library
 * Ken Shirriff, https://arcfn.com
 * Modified by Dejan, www.HowToMechatronics.com
 */
#include <IRremote.h>
int RECV_PIN = 8;
int relayOut = 7;
int buttonState;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Запуск приемника
  pinMode(relayOut, OUTPUT);
  buttonState = HIGH; // Начинаем с выключенного реле. Вход реле работает инверсно, так что HIGH означает деактивированное реле
}

void loop() {
  buttonState = digitalRead(relayOut);
  if (irrecv.decode(&results)) {
    if (results.value == 0xAFAF8374) { // Кнопка PLAY
      digitalWrite(relayOut, LOW); // Активирует реле
    }
    if (results.value == 0x98519C65) { // Кнопка STOP
      digitalWrite(relayOut, HIGH); // Деактивирует реле
    }
    irrecv.resume(); // Принять следующее значение
  }
  Serial.print(" "); Serial.println(results.value, HEX);
  delay(100);
}Язык кода: Arduino (arduino)

Производственный процесс

  1. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  2. Умная копилка: управление монетоприёмником на Arduino Nano
  3. Самодельный пульт от ТВ на Arduino с 3D-корпусом и питанием от батарейки
  4. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  5. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  6. Оживление рыбы Billy Bass с любым аудиоисточником — пошаговое руководство
  7. ThimbleKrox: управление мышью с пальца на Arduino Micro и MPU-6050
  8. DIY-система управления тараканом на Arduino — сборка за $30
  9. Удалённое управление автомобилем на Arduino Uno и Bluetooth: пошаговое руководство
  10. Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты