SSブログ

リモートコントロール(RC)戦車をつくる【スケッチ_3個のLEDの点灯・消灯】 [RC戦車]

Arduino Pro Miniでスケッチ(プログラム)の書き込みと動作させることができたので、今度はモータを制御することを想定してUP/RIGHT/LEFT/DOWN/SELECTで5つの状態を制御するスケッチを作成しました。モータの状態の代わりに3個のLEDを組み合わせて点灯・消灯させてみます。

【スケッチ】
#include <IRremote.h>           // 赤外線送受信用ヘッダファイル

int RECV_PIN = 11;                // 赤外線受信モジュール
IRrecv irrecv(RECV_PIN);      // 赤外線受信用オブジェクトの設定
decode_results results;           // 赤外線受信結果を格納する
#define POWER 0x10EFD827 
#define A 0x10EFF807 
#define B 0x10EF7887
#define C 0x10EF58A7
#define UP 0x10EFA05F
#define DOWN 0x10EF00FF
#define LEFT 0x10EF10EF
#define RIGHT 0x10EF807F
#define SELECT 0x10EF20DF

// set pin numbers:
const int RED = 8;              // LED(赤)はデジタルピン8に接続
const int YEL = 9;              // LED(黄)はデジタルピン9に接続
const int GRE = 10;             // LED(緑)はデジタルピン10に接続

// 初期化(電源投入/リセット時1回のみ実行):
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver

// initialize the LED pin as an output(ArduinoにLEDが出力であることを伝える):
  pinMode(RED, OUTPUT);
  pinMode(YEL, OUTPUT);
  pinMode(GRE, OUTPUT);
}

// main loop:
void loop() 
{
  if (irrecv.decode(&results))  //(★これが無いと動作しない)
  {
    switch(results.value)
    {
      case UP:                  //UPなら赤のみ点灯
        digitalWrite(RED, HIGH);
        digitalWrite(YEL, LOW);
        digitalWrite(GRE, LOW);
        break;
      case RIGHT:               //RIGHTなら黄のみ点灯
        digitalWrite(RED, LOW);
        digitalWrite(YEL, HIGH);
        digitalWrite(GRE, LOW);
        break;
      case LEFT:                //LEFTなら緑のみ点灯
        digitalWrite(RED, LOW);
        digitalWrite(YEL, LOW);
        digitalWrite(GRE, HIGH);
        break;
      case DOWN:                //DOWNなら全点灯
        digitalWrite(RED, HIGH);
        digitalWrite(YEL, HIGH);
        digitalWrite(GRE, HIGH);
        break;
      case SELECT:              //SELECTなら全消灯
        digitalWrite(RED, LOW);
        digitalWrite(YEL, LOW);
        digitalWrite(GRE, LOW);
        break;
      default:
        break;
    }
      irrecv.resume();          // 受信機をリセットする(★これが無いと1回のみの制御となる)
  }
}

※#include <IRremote.h>は表示の不具合で全角<>で記載しています。本当は半角<>ですのでご注意ください。

【配線図】
IRremotecontrol_ブレッドボード_ProMini.jpg
『Fritzing』はブレッドボード図を描けるソフトで、カッコイイ配線図を描くことができます。
"http://fritzing.org/home/"

ちなみに部品を配置してワイヤを描くと通常は直線になるので、部品と重なったワイヤが隠れて見えなくなってしまうので、ちょっとイケてないなって感じでした。。。そこで、部品と重ならないようにワイヤを曲線に描く方法を紹介します。
最初にふつうにワイヤを接続してからワイヤの途中を『Ctrlキー』を押しながらドラッグすると曲がります。さらに別の途中を同じように『Ctrlキー』を押しながらドラッグすると、ワイヤの曲がるポイントを増やすことができます。

【動作検証】
Arduino Pro Mini_赤外線リモコン3LED ON_OFF.JPG




profile_picture_40×40.JPG
nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。