01紅外線遙控器控音階
遇到問題:
IRremote與tone有衝突,修改做法如下:
1.如果想要用紅外線接收器解碼遙控器的紅外線指令,可以使用 IRremote 程式庫搭配 Arduino IDE 來快速地體驗一下,可以到 IRremote 的 Github 按下「Download ZIP」,會下載一個 Arduino-IRremote-master.zip 檔案,解開後將其中目錄更名為 Arduino-IRremote,並將整個目錄置於 Arduino IDE 安裝目錄的 libraries 之中:
2.將 libraries下原本RobotIRremote改名或移除掉
3.進入 Arduino-IRremote資料夾,找到IRremoteInt.h,並開啟它(2017.05.06發現改到boarddefs這檔)
4.找到
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc
#else
//#define IR_USE_TIMER1 // tx = pin 9
#define IR_USE_TIMER2 // tx = pin 3
#endif
5.修改為
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc
#else
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
#endif
6.成功
以上是因為IRremote與tone都是用到TIMER2,所以將IRremote改用TIMER1即可!!
=============================
先將程式在mblock寫到,如附件
完成後,再轉為Arduino程式碼
複製程式碼後,貼在Arduino IDE下來編輯
將下方「紅色字的內容」貼到程式上同樣的位置去!
#include <Arduino.h>
#include <Wire.h>
//#include <Servo.h>
#include <SoftwareSerial.h>
#include <IRremote.h>
int RECV_PIN = 11; // 使用數位腳位11接收紅外線訊號
IRrecv irrecv(RECV_PIN); // 初始化紅外線訊號輸入
decode_results results; // 儲存訊號的結構
double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double ir;
void song1();
void song2();
void setup(){
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
irrecv.enableIRIn(); // 啟動接收
}
void loop(){
if (irrecv.decode(&results)) {
// Serial.println(results.value, HEX);
ir=results.value;
irrecv.resume(); // Receive the next value
}
delay(100);
if(((ir)==(16736925))){
digitalWrite(2,1);
digitalWrite(3,0);
}
if(((ir)==(16754775))){
digitalWrite(2,0);
digitalWrite(3,1);
}
if(((ir)==(16720605))){
song1();
}
if(((ir)==(16761405))){
song2();
}
if(((ir)==(16712445))){
digitalWrite(2,1);
digitalWrite(3,1);
}
if(((ir)==(16738455))){
pinMode(9,OUTPUT);
tone(9,262,500);
delay(500);
}
if(((ir)==(16750695))){
pinMode(9,OUTPUT);
tone(9,294,500);
delay(500);
}
if(((ir)==(16756815))){
pinMode(9,OUTPUT);
tone(9,330,500);
delay(500);
}
if(((ir)==(16724175))){
pinMode(9,OUTPUT);
tone(9,349,500);
delay(500);
}
if(((ir)==(16718055))){
pinMode(9,OUTPUT);
tone(9,392,500);
delay(500);
}
if(((ir)==(16743045))){
pinMode(9,OUTPUT);
tone(9,440,500);
delay(500);
}
if(((ir)==(16716015))){
pinMode(9,OUTPUT);
tone(9,494,500);
delay(500);
}
if(((ir)==(16726215))){
pinMode(9,OUTPUT);
tone(9,523,500);
delay(500);
}
if(((ir)==(16734885))){
pinMode(9,OUTPUT);
tone(9,587,500);
delay(500);
}
if(((ir)==(16730805))){
pinMode(9,OUTPUT);
tone(9,659,500);
delay(500);
}
if(((ir)==(16728765))){
digitalWrite(2,0);
digitalWrite(3,0);
}
if(((ir)==(16732845))){
digitalWrite(2,0);
digitalWrite(3,0);
}
ir=0;
}
void song1() //小星星
{
pinMode(9,OUTPUT);
tone(9,262,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,262,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,440,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,440,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,262,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,262,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,262,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,440,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,440,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,262,500);
delay(500);
}
void song2() //小蜜蜂
{
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,262,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,262,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,349,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,294,500);
delay(500);
pinMode(9,OUTPUT);
tone(9,262,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,330,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,392,250);
delay(250);
pinMode(9,OUTPUT);
tone(9,262,500);
delay(500);
}