Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Steuern Sie jede Elektronik mit einer TV-Fernbedienung | Arduino IR-Tutorial

In diesem Arduino IR Tutorial lernen wir, wie man elektronische Geräte mit einer TV-Fernbedienung und einem Arduino steuert. Wir werden einige Beispiele machen, angefangen bei der Steuerung einer einfachen LED über die Steuerung einer DC-Lüftergeschwindigkeit bis hin zur Steuerung von Hochspannungs-Haushaltsgeräten. Sie können sich das folgende Video ansehen oder die schriftliche Anleitung unten lesen.

Wie es funktioniert

Wir können feststellen, dass die LED vor der TV-Fernbedienung flackert, wenn wir eine Taste drücken. Eigentlich können wir dies nur durch eine Kamera sehen, da es sich um Infrarotlicht handelt und es für das menschliche Auge nicht sichtbar ist.

Das Flackern bedeutet also, dass die Infrarot-LED beim Drücken einer Taste einen Lichtstoß oder Impulse sendet, die wir mit einem Infrarotempfänger empfangen müssen.

In diesem Tutorial verwenden wir den V 34838 IR-Empfänger, der das folgende Blockdiagramm hat, von dem aus wir sehen können, dass er das empfangene Signal verstärkt, filtert und demoduliert und einen sauberen Logikausgang liefert, der für den digitalen Eingang des Arduino-Boards akzeptabel ist.

Wenn wir dann die Arduino-IRremote-Bibliothek von Ken Shirriff und ihr Demobeispiel verwenden, können wir auf dem seriellen Monitor einen eindeutigen Hexadezimalcode für jeden Tastendruck sehen, den wir bei der Erstellung unseres Programms verwenden können.

Link zur Arduino-IRremote-Bibliothek von Ken Shirriff:https://github.com/z3t0/Arduino-IRremote

Steuern einer RGB-LED mit einer TV-Fernbedienung


Sie können die Komponenten von einer der folgenden Websites beziehen:

  • IR-Empfänger……………………………… 
  • RGB-LED………………………………… 
  • 3x 220 Ohm-Widerstände ………….…… 
  • Arduino-Board …………………………..
  • Breadboard und Schaltdrähte …….. 

Wir steuern also die LED-Farbe mit den 4 farbigen Tasten der TV-Fernbedienung. Das bedeutet, dass wir zuerst die Hexadezimalcodes für jede dieser Schaltflächen sehen müssen, indem wir das IRrecvDemo-Beispiel hochladen und den Serial Monitor ausführen. Wir werden jede dieser Tasten drücken und ihre Codes aufschreiben.

Jetzt werden wir den Democode wie folgt ändern und if-Anweisungen hinzufügen, die ausgeführt werden, wenn eine bestimmte Schaltfläche gedrückt wird. Also setzen wir für jede Schaltfläche geeignete RGB-Werte und die setColor() Funktion lässt die LED in der jeweiligen Farbe leuchten. Weitere Informationen zur Funktionsweise einer RGB-LED mit Arduino finden Sie in meinem 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; // 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); } Codesprache:Arduino (arduino)

Hier ist der Schaltplan der Arduino IR-gesteuerten RGB-LED:

Steuern einer DC-Lüftergeschwindigkeit mit einer TV-Fernbedienung


Benötigte Komponenten für dieses Beispiel:

  • Gleichstrommotor ……………….
  • oder DC-Lüfter ……………….
  • NPN-Transistor ………
  • Diode…………………….
  • Kondensator – 1uF ……..
  • Widerstand – 1k Ohm ..

In diesem Beispiel wird die DC-Lüftergeschwindigkeit mit den Vorwärts- und Rückwärtstasten der TV-Fernbedienung gesteuert. Wir werden diese Schaltpläne verwenden, um die Geschwindigkeit des Lüfters zu steuern, oder wir werden das PWM-Signal mit den Tasten steuern. Weitere Informationen zur Funktionsweise dieses Schaltplans finden Sie in meinem Arduino Motors Tutorial.

Hier ist der Quellcode für dieses Beispiel. Also mit analogWrite() Funktion senden wir ein PWM-Signal an die Basis des Transistors. Die PLAY-Taste startet den Motor mit maximaler Geschwindigkeit, oder das Tastverhältnis des PWM-Signals beträgt 100 % und die STOP-Taste stoppt ihn. Die Vorwärts-Taste erhöht die Geschwindigkeit des Lüfters bei jedem Drücken, indem sie das Tastverhältnis des PWM-Signals erhöht, und die Rückwärts-Taste verringert es.

/*  
 *  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);
}
 Codesprache:Arduino (arduino) 

Steuerung von Hochspannungs-Haushaltsgeräten mit einer TV-Fernbedienung


Für dieses Tutorial benötigte Komponenten:

  • 5-V-Relaismodul……. Amazon/Banggood/AliExpress
  • Kabel, Stecker, Buchse

Das letzte Beispiel wird die Steuerung von Hochspannungs-Haushaltsgeräten mit der TV-Fernbedienung sein. Dafür benötigen wir ein Relaismodul. Ich werde das Relaismodul HL-52S verwenden, das eine Nennleistung von 10 A bei 250 und 125 V AC hat. Hier ist der Schaltplan eines Beispiels für Arduino-IR-gesteuerte Hochspannungs-Haushaltsgeräte. Mit der Pin-Nummer 7 vom Arduino-Board steuern wir das Relais, an dem sich eine Buchse zum Anschließen eines beliebigen Hochspannungs-Elektronikgeräts befindet.

Da wir HOCHSPANNUNG verwenden, müssen wir sehr vorsichtig sein, und ich warne Sie hier, dass eine unsachgemäße oder falsche Verwendung zu schweren Verletzungen oder zum Tod führen kann, und ich übernehme keine Verantwortung für Ihre Handlungen. Weitere Informationen zur Verwendung des Relais und zum Herstellen einer Steckdose zum Anschließen eines beliebigen elektronischen Geräts finden Sie in meinem Arduino Relay Tutorial.

Hier ist der Quellcode dieses Beispiels:

/*  
 *  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);
} Codesprache:Arduino (arduino) 

Herstellungsprozess

  1. Universelle Fernbedienung mit Arduino, 1Sheeld und Android
  2. Münzprüfer mit Arduino steuern
  3. Batteriebetriebene TV-Fernbedienung mit 3D-bedrucktem Gehäuse
  4. Arduino mit Bluetooth zur Steuerung einer LED!
  5. Arduino Nano:Steuerung von 2 Schrittmotoren mit Joystick
  6. Animieren Sie einen Billy Bass Mouth mit einer beliebigen Audioquelle
  7. ThimbleKrox - Maussteuerung mit den Fingern
  8. Steuern Sie eine Kakerlake mit Arduino für unter 30 $
  9. Autosteuerung mit Arduino Uno und Bluetooth
  10. 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno