資料介紹
描述
關于這個項目
在這個項目中,您將學習如何使用任何遙控器控制LED的亮度
第1 步:您需要什么
對于本教程,您需要:
- 阿杜諾_
- 221歐姆電阻
- 跳線
- 面包板
- 發(fā)光二極管
第2步:電路
![controllingbrightnesswithir_bb_IjvGGedNPg.png?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1177577/controllingbrightnesswithir_bb_IjvGGedNPg.png?auto=compress%2Cformat&w=740&h=555&fit=max)
如果您不知道 IR 接收器和發(fā)射器的工作原理,您可以單擊此鏈接或此鏈接以了解有關它們的更多信息
大多數分線板上的引腳布局如下所示:
![ir-receiver-breakout-board-pinout-diagram-186x300_ru18MCbd1r.png?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1177578/ir-receiver-breakout-board-pinout-diagram-186x300_ru18MCbd1r.png?auto=compress%2Cformat&w=740&h=555&fit=max)
大多數獨立二極管的引腳布局是這樣的:
![ir-receiver-stand-alone-pinout-diagram-157x300_HwL0XVdi7c.png?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1177579/ir-receiver-stand-alone-pinout-diagram-157x300_HwL0XVdi7c.png?auto=compress%2Cformat&w=740&h=555&fit=max)
圖片來源:https ://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/
第 3 步:代碼
這個怎么運作
在查看代碼之前,我們首先需要了解遙控器的按鈕布局。首先你必須從這里下載 IRremote 庫要從ZIP 文件安裝庫,打開 Arduino IDE,然后轉到 Sketch > Include Library > Add.ZIP Library,然后選擇你下載的 IRremote ZIP 文件當你'重新完成上傳下面的代碼并打開串口監(jiān)視器(這也是一個很好的機會來看看你的引腳布局是否正確)
#include
const int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
irrecv.resume();
}
}
If
nothing
seems
to
be
happening
(當您按下按鈕時,Arduino 上的 LED 不閃爍)檢查您的引腳布局,您可能已將 Vcc 與 S 交換
您可以繪制出遙控器的每個按鈕并將其保存在 txt 文件中以供以后參考。
注意:當您連續(xù)按住按鈕時,串行監(jiān)視器將打印 0XFFFFFFFF
現在您知道了遙控器的按鈕布局,讓我們一點一點地查看代碼
#include
const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int ledPin = 10;
int brightness=0;
unsigned long key_value = 0;
要使用 IRremote 庫,我們需要創(chuàng)建一個名為irrecv
并指定連接 IR 接收器的引腳號的對象(第 3 行)。這個對象負責協(xié)議和處理來自接收者的信息。
下一步我們創(chuàng)建一個results
從decode_results
類中調用的對象,該對象將使用該irrecv
對象與我們的應用程序共享解碼的信息(第 5 行)。
接下來我們創(chuàng)建變量來為我們的 LED 設置引腳 10 并存儲我們的亮度值,最后一個變量將在稍后解釋
void setup(){
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(ledPin, OUTPUT);
}
在該void setup()
塊中,首先我們設置串行監(jiān)視器波特率。接下來,我們通過調用IRrecv
成員函數enableIRIn()
(第 10 行)啟動 IR 接收器。
每次接收器從遙控器收到信號時,第 11 行的irrecv.blink13(true)
功能將使 Arduino 的板載 LED 閃爍,這對于調試很有用。
pinMode(ledPin, OUTPUT) 函數將 ledPin(引腳 10)配置為輸出
void loop() {
if (irrecv.decode(&results)){
.
.
.
.
.
.
}
}
在該void loop()
塊中,如果接收到代碼,該函數irrecv.decode
將返回 true,并且程序將執(zhí)行 if 語句中的代碼。收到的代碼存儲在results.value
.
if (results.value == 0XFFFFFFFF)
results.value = key_value;
.
.
.
.
.
key_value = results.value;
在上面的塊中,如果我們從遙控器接收到 0XFFFFFFFF,這意味著重復上一個鍵。因此,為了處理重復鍵模式,我們在 key_value
每次接收到代碼時將十六進制代碼存儲在一個全局變量中:
key_value = results.value;
當您收到重復模式時,之前存儲的值將用作當前按鍵。
if(results.value==0xF076C13B){
brightness-=5;
if (brightness<0){brightness=0;}
}
else if(results.value==0xA3C8EDDB){
brightness+=5;
if (brightness>255){brightness=255;}
}
The
if
condition
checks
if
the
button
pressed
is
a
+
or
-
(您的十六進制代碼可能會有所不同,具體取決于您的遙控器和接收器)并增加或減少亮度值。下一個條件將亮度值限制在 0 和 255 之間
irrecv.resume();
irrecv.resume()
is
used
重置接收器并準備接收下一個代碼。
brightnessControl(brightness);
這一行調用了brightnessControl() 函數并傳入我們的亮度的當前值作為它的參數。
void brightnessControl(int value){
analogWrite(ledPin,value);
}
brightControl() 方法接受一個整數作為參數,并使用 PWM 設置我們的 LED 的亮度
有關 IRremote 的更多信息,請單擊此處
第四步:恭喜!!!
你已經成功地完成了這個項目。做得好!
我希望你喜歡這個,如果你對如何制作我的代碼有任何建議,請在評論中告訴我。
謝謝你
- 如何使用遙控器控制TI-RSLK
- 通過遙控器打開/關閉LED
- 使用IR遙控器控制RGB LED
- 使用電視遙控器控制RGB LED的顏色
- 使用帶LED的紅外遙控器
- 使用Arduino解碼任何遙控器的紅外遙控信號
- 紅外遙控器編碼大全 85次下載
- 如何使用Alexa語音控制電視遙控器 11次下載
- 紅外遙控器控制電機轉動的C語言程序免費下載 8次下載
- 風神遙控器正確拆卸方法步驟 15次下載
- 空調遙控器維修資料下載 18次下載
- 遙控器控制協(xié)議V1.4 4次下載
- 自制電腦紅外遙控器
- 微型遙控器電路圖
- 簡易實用的遙控器電路圖
- 遙控器解碼器怎么使用 1035次閱讀
- 萬能遙控器的設置和使用方法 1.5w次閱讀
- 通過PLC和遙控器實現搬運平車的運動控制 2081次閱讀
- 如何構建一個簡單的基于紅外的車門遙控器 1350次閱讀
- 如何創(chuàng)建基于MAXQ的“學習”遙控器 1072次閱讀
- 遙控器的組成 1.1w次閱讀
- 基于語音專用芯片UniSpeech和39VF080存儲器實現DVD/TV遙控器的設計 2961次閱讀
- fireflyAIO-3288J紅外遙控器介紹 1749次閱讀
- fireflyAIO-3288C主板紅外遙控器簡介 1715次閱讀
- 沁恒股份藍牙智能遙控器方案概述 4490次閱讀
- 一文弄懂工業(yè)無線遙控器是什么 1.4w次閱讀
- 帶你了解遙控器的發(fā)展歷史 1.7w次閱讀
- 一文弄懂無線遙控器 9196次閱讀
- 無人機遙控器的使用方法_遙控無人機操作日常 25.1w次閱讀
- 基于安卓手機wifi的智能遙控器設計 5525次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數據手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數據手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費
- 5STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實現
- 2.94MB | 4次下載 | 免費
- 7PCB圖繪制實例操作
- 2.92MB | 2次下載 | 免費
- 8零死角玩轉STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設計
- 0.10 MB | 137次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數據手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 7PIC16F716 數據手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論