和12歲小同志搞創(chuàng)客開發(fā):手撕代碼辞居,做一款遙控燈

本篇博文是創(chuàng)客開發(fā):手撕代碼篇的最后一節(jié),項目在之前使用Mind+編程中講到過:和12歲小同志搞創(chuàng)客開發(fā):如何驅(qū)動紅外遙控器葫盼?

這次將通過代碼的方式進一步理解紅外遙控器的使用残腌。

我們知道家里的那些遙控器,不管是電視還是空調(diào)都是通過紅外來控制的贫导,我們這次也通過紅外來做個遙控燈抛猫。

在開始之前,先來個預熱實驗孩灯,通過串口來了解下如何使用紅外接收管和遙控器闺金。

項目連線效果如下所示:

驅(qū)動程序如下所示:

#include <IRremote.h>

int RECV_PIN = 10;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()

{

? Serial.begin(9600);

? irrecv.enableIRIn(); // Start the receiver

}

void loop() {

? if (irrecv.decode(&results)) {

? ? Serial.println(results.value, HEX);

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

? }

}

下載完成后,打開Arduino IDE的串口監(jiān)視器(Serial Monitor)峰档,設置波特率baud為:9600败匹,與代碼中Serial.begin(9600)相匹配。

設置完后讥巡,用Mini遙控器的按鈕對著紅外接收管的方向掀亩,任意按個按鈕,都能在串口監(jiān)視器上看到相對應的代碼欢顷。如下圖所示槽棍,按數(shù)字“0”,接收到對應16進制的代碼是FD30CF抬驴。每個按鈕都有一個特定的16進制的代碼刹泄。

如果按住常按一個鍵不放就是出現(xiàn)“FFFFFFFF”。

在串口中怎爵,正確接收的話特石,應該收到以FD開頭的六位數(shù)。如果遙控器沒有對準紅外接收管的話鳖链,可能會接收到錯誤的代碼姆蘸。如下圖所示:

預熱完之后墩莫,我們言歸正傳,開始制作遙控燈逞敷。硬件設備其實就是在原有的基礎上狂秦,加了個LED燈,效果如下圖所示:

實現(xiàn)代碼如下所示:

#include <IRremote.h>? ? ? ? ? //調(diào)用IRremote.h庫

int RECV_PIN = 10;? ? ? ? ? ? ? //定義RECV_PIN變量為10? ?

int ledPin = 3;? ? ? ? ? ? ? ? // LED – digital 3

boolean ledState = LOW;? ? ? ? // ledstate用來存儲LED的狀態(tài)

IRrecv irrecv(RECV_PIN);? ? ? ? //設置RECV_PIN(也就是11引腳)為紅外接收端

decode_results results;? ? ? ? //定義results變量為紅外結(jié)果存放位置

void setup(){

? Serial.begin(9600);? ? ? ? ? //串口波特率設為9600

? irrecv.enableIRIn();? ? ? ? ? //啟動紅外解碼

? pinMode(ledPin,OUTPUT);? ? ? // 設置LED為輸出狀態(tài)

}

void loop() {

? //是否接收到解碼數(shù)據(jù),把接收到的數(shù)據(jù)存儲在變量results中

? if (irrecv.decode(&results)) {?

? ? ? //接收到的數(shù)據(jù)以16進制的方式在串口輸出?

? ? ? Serial.println(results.value, HEX);

? ? ? //一旦接收到電源鍵的代碼, LED翻轉(zhuǎn)狀態(tài)推捐,HIGH變LOW裂问,或者LOW變HIGH

? ? ? if(results.value == 0xFD00FF){

? ? ? ? ? ? ? ledState = !ledState;? ? ? ? ? ? //取反? ? ?

? ? ? ? ? ? ? digitalWrite(ledPin,ledState);? ? //改變LED相應狀態(tài)? ? ? ?

? ? ? ? ? }? ?

? irrecv.resume();? // 繼續(xù)等待接收下一組信號

? }

}

在這里,我們多定義了一個變量ledState牛柒,通過名字應該就可以看出來含義了堪簿,用來存儲LED的狀態(tài)的,由于LED狀態(tài)就兩種(1或者0)皮壁,所以我們使用boolean變量類型椭更。

setup()函數(shù)中,對使用串口蛾魄,啟動紅外解碼虑瀑,數(shù)字引腳模式進行設置。

到了主函數(shù)loop()滴须,一開始還是先判斷是否接收到紅外碼舌狗,并把接收到的數(shù)據(jù)存儲在變量results中。

if (irrecv.decode(&results))

一旦接收到數(shù)據(jù)后扔水,程序就要做兩件事把夸。第一件事,判斷是否接收到了電源鍵的紅外碼铭污。

if(results.value == 0xFD00FF)

第二件事恋日,就是讓LED改變狀態(tài)。

ledState = !ledState;? ? ? ? ? ? //取反? ? ? digitalWrite(ledPin,ledState);? ? //改變LED相應狀態(tài)

最后嘹狞,繼續(xù)等待下一組信號岂膳。

irrecv.resume();? // 繼續(xù)等待接收下一組信號

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市磅网,隨后出現(xiàn)的幾起案子谈截,更是在濱河造成了極大的恐慌,老刑警劉巖涧偷,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件簸喂,死亡現(xiàn)場離奇詭異,居然都是意外死亡燎潮,警方通過查閱死者的電腦和手機喻鳄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來确封,“玉大人除呵,你說我怎么就攤上這事再菊。” “怎么了颜曾?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵纠拔,是天一觀的道長。 經(jīng)常有香客問我泛豪,道長稠诲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任诡曙,我火速辦了婚禮臀叙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘岗仑。我一直安慰自己,他們只是感情好聚请,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布荠雕。 她就那樣靜靜地躺著,像睡著了一般驶赏。 火紅的嫁衣襯著肌膚如雪炸卑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天煤傍,我揣著相機與錄音盖文,去河邊找鬼。 笑死蚯姆,一個胖子當著我的面吹牛五续,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播龄恋,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼疙驾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了郭毕?” 一聲冷哼從身側(cè)響起它碎,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎显押,沒想到半個月后扳肛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡乘碑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年挖息,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兽肤。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡旋讹,死狀恐怖殖蚕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沉迹,我是刑警寧澤睦疫,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站鞭呕,受9級特大地震影響蛤育,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葫松,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一瓦糕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腋么,春花似錦咕娄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至摧扇,卻和暖如春圣贸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扛稽。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工吁峻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人在张。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓用含,卻偏偏與公主長得像,于是被迫代替她去往敵國和親帮匾。 傳聞我的和親對象是個殘疾皇子耕餐,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者,不喜歡去冒險辟狈,但是人生放棄了冒險肠缔,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 6,041評論 0 4
  • 公元:2019年11月28日19時42分農(nóng)歷:二零一九年 十一月 初三日 戌時干支:己亥乙亥己巳甲戌當月節(jié)氣:立冬...
    石放閱讀 6,875評論 0 2
  • 年紀越大哼转,人的反應就越遲鈍明未,腦子就越不好使,計劃稍有變化壹蔓,就容易手忙腳亂趟妥,亂了方寸。 “玩壞了”也是如此佣蓉,不但會亂...
    玩壞了閱讀 2,127評論 2 1
  • 感動 我在你的眼里的樣子披摄,就是你的樣子亲雪。 相互內(nèi)化 沒有絕對的善惡 有因必有果 當你以自己的價值觀幸福感去要求其他...
    周粥粥叭閱讀 1,635評論 1 5
  • 昨天考過了阿里規(guī)范,心里舒坦了好多疚膊,敲代碼也猶如神助义辕。早早完成工作回家嘍
    常亞星閱讀 3,033評論 0 1