Contrôlez n'importe quel appareil électronique avec une télécommande TV | Tutoriel IR Arduino
Dans ce tutoriel Arduino IR, nous apprendrons à contrôler des appareils électroniques à l'aide d'une télécommande TV et d'un Arduino. Nous ferons quelques exemples en partant du contrôle d'une simple LED, puis en contrôlant la vitesse d'un ventilateur CC, jusqu'au contrôle des appareils électroménagers à haute tension. Vous pouvez regarder la vidéo suivante ou lire le didacticiel ci-dessous.
Nous pouvons remarquer que la LED devant la télécommande du téléviseur clignote lorsque nous appuyons sur un bouton. En fait, nous ne pouvons voir cela qu'à travers une caméra car il s'agit d'une lumière infrarouge et elle n'est pas visible à l'œil humain.
Ainsi, le scintillement signifie que lorsque nous appuyons sur un bouton, la LED infrarouge envoie une rafale de lumière ou des impulsions dont nous avons besoin pour les recevoir avec un récepteur infrarouge.
Dans ce tutoriel, nous utiliserons le récepteur IR V 34838 qui a le schéma fonctionnel suivant d'où nous pouvons voir qu'il va amplifier, filtrer et démoduler le signal reçu et fournir une sortie logique propre qui est acceptable pour l'entrée numérique de la carte Arduino.
Ensuite, en utilisant la bibliothèque Arduino-IRremote de Ken Shirriff et son exemple de démonstration, nous pouvons voir sur le moniteur série un code hexadécimal unique pour chaque pression sur un bouton que nous pouvons utiliser lors de la création de notre programme.
Lien vers la bibliothèque Arduino-IRremote de Ken Shirriff : https://github.com/z3t0/Arduino-IRremote
Vous pouvez obtenir les composants sur l'un des sites ci-dessous :
Nous contrôlerons donc la couleur de la LED à l'aide des 4 boutons colorés de la télécommande du téléviseur. Cela signifie que nous devons d'abord voir les codes hexadécimaux pour chacun de ces boutons en téléchargeant l'exemple IRrecvDemo et en exécutant le moniteur série. Nous allons appuyer sur chacun de ces boutons et noter leurs codes.
Nous allons maintenant modifier le code de démonstration comme ceci et ajouter des instructions if qui seront exécutées si un bouton particulier est enfoncé. Ainsi, pour chaque bouton, nous définirons les valeurs RVB appropriées, et le setColor() La fonction allumera la LED dans la couleur particulière. Pour plus de détails sur le fonctionnement d'une LED RGB avec Arduino, vous pouvez consulter mon tutoriel Arduino RGB.
Voici les schémas de circuit de la LED RVB contrôlée par infrarouge Arduino :
Composants nécessaires pour cet exemple :
Dans cet exemple, vous contrôlerez la vitesse d'un ventilateur CC à l'aide des boutons avant et arrière de la télécommande du téléviseur. Nous utiliserons ce schéma de circuit pour contrôler la vitesse du ventilateur, ou en fait nous contrôlerons le signal PWM à l'aide des boutons. Pour plus de détails sur le fonctionnement de ce schéma de circuit, vous pouvez consulter mon tutoriel sur les moteurs Arduino.
Voici le code source de cet exemple. Donc, en utilisant le analogWrite() fonction, nous enverrons un signal PWM à la base du transistor. Le bouton PLAY démarrera le moteur à la vitesse maximale, ou le rapport cyclique du signal PWM sera de 100 % et le bouton STOP l'arrêtera. Le bouton avant augmentera la vitesse du ventilateur à chaque pression en augmentant le rapport cyclique du signal PWM, et le bouton arrière le diminuera.
Composants nécessaires pour ce didacticiel :
Le dernier exemple sera le contrôle des appareils électroménagers à haute tension à l'aide de la télécommande du téléviseur. Pour cela nous aurons besoin d'un module relais. J'utiliserai le module de relais HL-52S qui a une capacité de 10 A à 250 et 125 V AC. Voici les schémas de circuit d'un exemple d'appareils électroménagers haute tension contrôlés par Arduino IR. Avec la broche numéro 7 de la carte Arduino, nous contrôlerons le relais sur lequel se trouve une prise pour connecter tout appareil électronique haute tension.
Comme nous utiliserons la HAUTE TENSION, nous devons être très prudents et je vous préviens ici qu'une utilisation inappropriée ou incorrecte pourrait entraîner des blessures graves ou la mort et je n'assume aucune responsabilité pour vos actions. Pour plus de détails sur l'utilisation du relais et sur la création d'une prise pour brancher n'importe quel appareil électronique, vous pouvez consulter mon tutoriel sur le relais Arduino.
Voici le code source de cet exemple :Comment ça marche
Contrôle d'une LED RVB avec une télécommande TV
/*
* 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)Contrôle de la vitesse d'un ventilateur DC avec une télécommande TV
/*
* 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)Contrôle des appareils électroménagers haute tension avec une télécommande TV
/*
* 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)
Processus de fabrication
- Télécommande universelle utilisant Arduino, 1Sheeld et Android
- Contrôler l'accepteur de pièces avec Arduino
- Télécommande TV alimentée par batterie avec boîtier imprimé en 3D
- Arduino avec Bluetooth pour contrôler une LED !
- Arduino Nano :contrôler 2 moteurs pas à pas avec joystick
- Animer une bouche de Billy Bass avec n'importe quelle source audio
- Dé à coudre - Contrôle de la souris avec vos doigts
- Contrôler un cafard avec Arduino pour moins de 30 $
- Contrôle de ventilateur PWM 4 broches 25 kHz avec Arduino Uno