工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

テレビのリモコンで電子機器を制御する| ArduinoIRチュートリアル

このArduinoIRチュートリアルでは、テレビのリモコンとArduinoを使用して電子機器を制御する方法を学習します。単純なLEDの制御から始まり、DCファンの速度の制御、高電圧の家電製品の制御まで、いくつかの例を示します。次のビデオを見るか、以下のチュートリアルを読むことができます。

仕組み

ボタンを押すと、テレビのリモコンの前にあるLEDが点滅していることがわかります。これは赤外線であり、人間の目には見えないため、実際にはカメラを通してしか見ることができません。

つまり、ちらつきとは、ボタンを押すと、赤外線LEDがバースト光またはパルスを送信し、赤外線受信機でそれらを受信する必要があることを意味します。

このチュートリアルでは、V 34838 IRレシーバーを使用します。このブロック図から、受信信号を増幅、フィルタリング、復調し、Arduinoボードのデジタル入力に使用できるクリーンなロジック出力を提供することがわかります。

次に、Ken ShirriffのArduino-IRremoteライブラリとそのデモ例を使用して、プログラムの作成時に使用できるボタンを押すたびに固有の16進コードをシリアルモニターから確認できます。

Ken ShirriffのArduino-IRremoteライブラリへのリンク:https://github.com/z3t0/Arduino-IRremote

テレビのリモコンでRGBLEDを制御する


コンポーネントは、以下のいずれかのサイトから入手できます:

  • IRレシーバー………………………………
  • RGBLED…………………………………
  • 3x220オーム抵抗器…………。……
  • Arduinoボード…………………………..
  • ブレッドボードとジャンパー線……..

そこで、TVリモコンの4色のボタンを使用してLEDの色を制御します。つまり、最初にIRrecvDemoの例をアップロードして、これらの各ボタンの16進コードを確認し、シリアルモニターを実行する必要があります。これらの各ボタンを押して、コードを書き留めます。

次に、このようにデモコードを変更し、特定のボタンが押された場合に実行されるifステートメントを追加します。したがって、ボタンごとに適切なRGB値を設定し、 setColor() 機能は特定の色でLEDを点灯します。 RGB LEDがArduinoでどのように機能するかについての詳細は、私のArduinoRGBチュートリアルを確認してください。

/*  
 *  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)

ArduinoIR制御RGBLEDの回路図は次のとおりです。

テレビのリモコンでDCファンの速度を制御する


この例に必要なコンポーネント:

  • DCモーター………………。
  • またはDCファン………………。
  • NPNトランジスタ………
  • ダイオード……………………。
  • コンデンサ–1uF……..
  • 抵抗器–1kオーム..

この例では、TVリモコンの進むボタンと戻るボタンを使用してDCファンの速度を制御します。ファンの速度を制御するためにこの回路図を使用するか、実際にはボタンを使用してPWM信号を制御します。この回路回路図がどのように機能するかについての詳細は、私のArduinoMotorsチュートリアルを確認してください。

この例のソースコードは次のとおりです。したがって、 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; // 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)

テレビのリモコンで高電圧家電を制御する


このチュートリアルに必要なコンポーネント:

  • 5Vリレーモジュール……。Amazon/ Banggood / AliExpress
  • ケーブル、プラグ、ソケット

最後の例は、TVRemoteを使用して高電圧家電を制御することです。そのためには、リレーモジュールが必要になります。 250および125VACで定格10AのHL-52Sリレーモジュールを使用します。これは、ArduinoIR制御の高電圧家電製品の例の回路図です。 Arduinoボードのピン番号7を使用して、高電圧電子デバイスを接続するためのソケットがあるリレーを制御します。

高電圧を使用するため、細心の注意を払う必要があります。不適切または不適切な使用は重傷または死亡につながる可能性があることをここで警告します。私はあなたの行動に対して一切の責任を負いません。リレーの使用方法と電子機器を接続するためのソケットの作成方法の詳細については、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. LEDを制御するBluetoothを搭載したArduino!
  5. Arduino Nano:ジョイスティックで2つのステッピングモーターを制御
  6. ビリーベースの口を任意のオーディオソースでアニメートする
  7. ThimbleKrox-指でマウスを操作する
  8. Arduinoでゴキブリを30ドル未満でコントロール
  9. ArduinoUnoとBluetoothによる車の制御
  10. AndroidアプリでArduinoロボットアームを制御する
  11. ArduinoUnoを使用した25kHz4ピンPWMファン制御