接收紅外線操控LED

Arduino與紅外線

這個case算是容易理解且適合小朋友學習的,畢竟大家都有使用遙控器操作電視的經驗,透過手上的遙控器(紅外線發射)搭配一顆小小的接收器,Arduino的任務就是監控收到的碼然後做出反應,而這些反應就是你寫的程式…→如果~那就~

一般來說→學習的鷹架,就是結合之前的舊經驗再疊加上去,在這之前應該有用Arduino操控多顆led的練習(知道led要加電阻才不會燒掉),至少知道pin位的觀念及電壓及接地,紅外線接收器有三支腳位,除了電之外有一獨立的訊號腳,當它通電時就會一直偵測有沒有收到訊號(有沒有人對著它按控器的某個鈕),然後把收到的訊號傳給Arduino,至於收到什麼碼要做什麼事,那就是Arduino的事囉!當然寫程式的是你…

Arduino 與紅外線接收之前的原理

這段影片的目的是向小朋友解說整個動作運作的道理,當有人對著接收器按按鈕,Arduino會收到什麼

加入IRremote的程式庫

一般來說利用ArduinoIDE的程式碼管理員搜一下:IRremote就可以找到對應的程式庫,安裝之後就可以有範例看,當然小朋友一開不太了解就種運作方式,是需要老師說明的

/*

 * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv

 * An IR detector/demodulator must be connected to the input RECV_PIN.

 * Version 0.1 July, 2009

 * Copyright 2009 Ken Shirriff

 * http://arcfn.com

 */

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()

{

  Serial.begin(9600);

  // In case the interrupt driver crashes on setup, give a clue

  // to the user what's going on.

  Serial.println("Enabling IRin");

  irrecv.enableIRIn(); // Start the receiver

  Serial.println("Enabled IRin");

}

void loop() {

  if (irrecv.decode(&results)) {

    Serial.println(results.value, HEX);

    irrecv.resume(); // Receive the next value

  }

  delay(100);

}

以上頭的程式來說,就是把接收器的訊號pin接到Arduino的D11,程式碼開始時就不停地從串口輸出是不是有收到訊號

使用Mind+來寫Arduino程式