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

Управляйте любой электроникой с помощью пульта от телевизора | Учебное пособие по Arduino IR

<основной класс="главный сайт" id="главный">

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

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

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

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

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

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

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

Управление RGB-светодиодом с помощью пульта от телевизора


Вы можете получить компоненты с любого из следующих сайтов:

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

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

/*  
 *  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; // IR Receiver - Arduino Pin Number 8

IRrecv irrecv(RECV_PIN);

decode_results results;

int redPin = 5;
int greenPin = 6;
int bluePin = 7;
 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);  
}
 
void loop() {
  
  if (irrecv.decode(&results)) {   
    
    if (results.value == 0xF21D7D46) { // Red Button
      setColor(255, 0, 0);  // Sets Red Color to the RGB LED
      delay(100);
      }
    if (results.value == 0x87CF1B29) { // Green Button
       setColor(0, 255, 0);  // Green Color
      delay(100);
      }
    if (results.value == 0x6623D37C) { // Yellow Button
      setColor(255, 255, 0);  // Yellow Color
      delay(100);
      }   
    if (results.value == 0x854115F2) { // Blue Button
      setColor(0, 0, 255);  // Blue Color
      delay(100);
      }
     if (results.value == 0x1639AB6E) { // Stop Button
      setColor(0, 0, 0);  // OFF
      delay(100);
      }
      
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}
// Custom made function for activating the RGB LED 
void setColor(int red, int green, int blue)
{
  analogWrite(redPin, red); // Sends PWM signal to the Red pin
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  
}Code language: Arduino (arduino)

Вот принципиальная схема RGB-светодиода Arduino с ИК-управлением:

Управление скоростью вентилятора постоянного тока с помощью пульта от телевизора


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

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

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

/*  
 *  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; // IR Receiver - Arduino Pin Number 8
int pwmPin = 7; // Arduino Pin Number 7 to the Base of the Transistor
int pwmValue;

IRrecv irrecv(RECV_PIN);

decode_results results;

 
void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode( pwmPin, OUTPUT);  
  pwmValue = 0; // Starts the program with turned off motor
}
 
void loop() {
  
  if (irrecv.decode(&results)) {   
    
    analogWrite(pwmPin, pwmValue);
  
    if (results.value == 0xAFAF8374) { // PLAY Button
        pwmValue = 255; // 100% Duty Cycle | Max Speed
        }
    if (results.value == 0x98519C65) { // STOP Button
        pwmValue = 0; // 0% Duty Cycke | Turned off
        }
    if (results.value == 0x93F1BA08) { // FORWARD Button
        if(pwmValue <= 245){  
        pwmValue = pwmValue + 10; // Increases the Duty Cycle of the PWM Signal
        delay(20);     
      }   
    }
    if (results.value == 0x71D086FF) { // BACKWARD Button
      if(pwmValue >= 20){
        pwmValue = pwmValue - 10; // Decreases the Duty Cycle of the PWM Signal
        delay(20);    
      }
    }   
  Serial.print(pwmValue);
  Serial.print(" ");
  Serial.println(results.value, HEX);
   
  irrecv.resume(); // Receive the next value
  }
  delay(100);
}
Code language: Arduino (arduino)

Управление высоковольтной бытовой техникой с помощью пульта от телевизора


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

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

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

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

/*  
 *  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(); // Start the receiver
  pinMode( relayOut, OUTPUT); 
  buttonState = HIGH; // Starts the program with turned off Relay. The relay input works inversly so HIGH state means deactivated relay

}
 
void loop() {
  
  buttonState = digitalRead(relayOut);
        
  if (irrecv.decode(&results)) {   
    
    if (results.value == 0xAFAF8374) { // PLAY Button
        digitalWrite(relayOut, LOW); // Activates the relay
        }
    if (results.value == 0x98519C65) { // STOP Button
        digitalWrite(relayOut, HIGH); // Deactivates the relay
        }   
  
  irrecv.resume(); // Receive the next value
  }
  
  Serial.print(" ");
  Serial.println(results.value, HEX);
   
  
  delay(100);
}Code language: Arduino (arduino)

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

  1. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  2. Управление монетоприемником с помощью Arduino
  3. Пульт дистанционного управления для телевизора с питанием от батареи и футляр, напечатанный на 3D-принтере
  4. Arduino с Bluetooth для управления светодиодом!
  5. Arduino Nano:управление двумя шаговыми двигателями с помощью джойстика
  6. Анимация рта Билли Басса с любым источником звука
  7. ThimbleKrox - управление мышью пальцами
  8. Управляйте тараканом с помощью Arduino менее чем за 30 долларов
  9. Управление автомобилем с помощью Arduino Uno и Bluetooth
  10. 4-контактный ШИМ-контроль вентилятора, 25 кГц, с Arduino Uno