biji-arduino套件使用說明書_第1頁
biji-arduino套件使用說明書_第2頁
biji-arduino套件使用說明書_第3頁
biji-arduino套件使用說明書_第4頁
biji-arduino套件使用說明書_第5頁
已閱讀5頁,還剩183頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

前 免責增強版與版本的區(qū)別 資料適用范圍以及工具需求列表 第一章開發(fā)程 第一 安裝usb轉串口驅 第二 安裝IDE樣例程 第三 程序基本結構說 第二章模塊功能詳 第一節(jié)基本數(shù)字輸出功能LED 第二節(jié)數(shù)字電平讀入實 第三節(jié)模數(shù)轉換功 第四 脈寬調(diào) 第五節(jié)EEPROM應 第六節(jié)串口通 第七節(jié)7段數(shù)碼 第八節(jié)4x4矩陣鍵 第九節(jié)AD鍵 第十 4位數(shù)碼 第十一節(jié)1602液晶 第十二節(jié)喇叭和蜂鳴 第十三節(jié)RGB三基色 第十四節(jié)直流電機應 第十五節(jié)步進電機應 第十六節(jié)舵機應 第十七節(jié)超聲波測 第十八節(jié)光敏電阻測 第十九節(jié)熱敏電阻測 第二十 火焰?zhèn)鞲?第二十一 傳感 第二十二 LM35溫度傳感 第二十三 DS18B20溫度傳感 第二十四 DHT11濕度傳感 第二十五 DS1302時鐘...............................................................................第二十六 DS1307時鐘...............................................................................第二十七節(jié)紅外功 第二十八 字庫12864液晶屏 第二十九 8x8LED點 第三十 74HC1383-8譯..............................................................................第三十一 74HC164串轉并.......................................................................第三十二 74HC595移位寄存 第三十三 2片74HC573控制8位數(shù)碼管(LY-51S開發(fā)板 第三十四 2片74HC595控制8位數(shù)碼管(串行數(shù)碼管模塊 第三十五 直流電機測速模塊(德飛萊測速模塊 第三十六 串口更新數(shù)碼管時鐘(綜合應用 第三十七 數(shù)碼作電壓表(綜合應用 第三章常見問題解 一、主板不能程 二、程序運行不穩(wěn)定或者反復重 前免責擔保修責任。ArduinoIDE升級bootloader需要用到tiny口,另外需要選配avrtiny下載器。請參考解決辦法。究。本書例程學習使用,其他使用造成的不良自負。UNO作為講解對象,其他不同板卡請自行更換連接端口和修改程序。增強版與版本的區(qū)別 2)增強版 3)增強版 4)增強版第一章開發(fā)程本章介紹arduino的開發(fā)的基本功能和使用,板卡和德飛萊板卡的基本功能和使用,初學者第一次使用時候的驅動安裝、安裝、程序、參數(shù)設置等功使用開發(fā)板成功的朋友可以跳過此章。本章分為三個部分:第一部分:串口驅動程序的安第一 安裝usb轉串口驅1.1-安裝,方法同XP1.1-2手動打開CH341文件夾(驅動程序文件夾內(nèi))中CH341.exe,雙擊安裝驅動 驅動安裝 圖1.1-4安裝成功1.1-5COM6USB-SERIALCH340字樣,否則表明驅動不正確。使用本公司新版本的串口調(diào)試可以檢測是否安裝有串口,運行截圖如下。德飛萊串口調(diào)試V2.0以上版本內(nèi)置串口檢測功能。該版本可以到或者搜索。1.1-61.1-7需要第一次安裝,之后使用會自動識別,更換USB口對應的端也會自動改變,請以設節(jié)僅講解增強版板卡驅動安裝,原版UNO請參考資料。第二 安裝IDE樣例程解壓IDE開 ,或去官網(wǎng)版本。此解壓后需安裝,雙arduino.exe文件打開1.2-1圖1.2-2打開界打開出現(xiàn)上述界面(圖1.2-2),英文菜單和快捷功能圖標,可以通過參數(shù)設置變方編輯,比如notepad++。的ATmega328p,在此選擇類型要特別注意,會導致不能識別。這里需要需要選擇Tool->Board->arduinoUno。1.2-3第二步需要打開一個程序樣例。首先完成一個簡單的程序:閃爍LED例程。集成了所有功能程序。僅使用IDE主板套件就可以完成主板功能測試。由于自打開file->examples->01.Basics->Blink(這是自帶測試程序)如下圖圖1.2-4打開自帶樣例程從圖上可以看出,自帶了很多樣例,樣例適用于多種板卡,UNO板卡只能使用其Arduino 德飛萊旗艦店1.2-arduino的程序??梢钥闯鲞@個程序非常簡潔,點擊箭頭圖標,此圖標是編譯并程序,這里有2個執(zhí)行過1.2-應的COM口(CH340的COM口),點擊“確定”按鈕。1.2-狀態(tài)欄顯示“Doneuploading”,完成。此時表明程序的二進制文件已經(jīng)到開這個LED閃爍表示準備好,然后復位板卡,準備運行的程序,之后的執(zhí)行現(xiàn)象則是用閃爍LED,閃爍僅表示過程正在進行,這個屬于正常現(xiàn)象,并非故障或者錯誤。、D以S以法,自寫整只在上述2個過程中可能會出現(xiàn)錯誤,尤其初學者。錯誤也分為2個部分,第一部分是編或者正確的串導致。重新按流程選擇,或者重新拔插USB線。第三 TurnsonTurnsonanLEDonforonesecond,thenoffforonesecond,repeatedly.Thisexamplecodeisinthepublic //Pin13hasanLEDconnectedonmostArduino//giveitaintLED=//thesetuproutinerunsoncewhenyoupressreset:voidsetup(){//initializethedigitalpinasanoutput.pinMode(LED,OUTPUT);}//thelooproutinerunsoverandoveragainforever:voidloop(){ED,ED,//turntheLEDon(HIGHisthevoltage//waitfora//turntheLEDoffbymakingthevoltage//waitfora}1秒鐘點亮,并循環(huán)重復這個過程。Arduino也有關鍵字高亮功能,通過關鍵字可以看到程intLED13;這句和cLED13LED燈也連接到這個引腳。程序緊接著的功能是把LED引腳定義位輸出,這樣就可以用來驅動LED燈。緊接著的函數(shù)loop就相當于c語言的主循環(huán)函數(shù),所有的需要循環(huán)執(zhí)行的功能都在這里面操作。LED4行語句,這些函數(shù)之前都封裝在庫文件,從函數(shù)的名字可以看出其功能,比如第一句:digitalWriED,HIGH);譯為數(shù)字信號寫入函數(shù),通過這個函數(shù)可以對指定的端口寫入數(shù)字信01,這里hight和low表示1000ms1300ms300即可,最小值為1,那么這個函數(shù)的最小延時時長是1ms。下一句熄滅LED燈,然后延時1秒滅1秒)。庫的應用從簡單的程序看不出明顯的優(yōu)勢,程序越大優(yōu)勢越明顯。通過樣例可以了解arduino程序的基本結構,后續(xù)的內(nèi)容都會有詳細講解。關于自帶樣例中的其最底層學習單片機的原理。建議與51單片機一起學習應用,本書配套的LY-51S是以51單片機為主的獨立模塊開發(fā)板套件,模塊化的組成可以重復利用資源,無需每種單片機作為通用性的學習、查閱資料保存。書上的一些位置會有,通過掃描可以直達。第二章模塊功能詳學習LED燈、按鍵、數(shù)字輸入輸出、模擬輸入輸出、數(shù)碼管、電機等,這些部最后有幾個綜合的功能程序需要用戶重點學arduino的目的就是完成一個最在發(fā)布和修改。請及時關注arduino版塊。第一 基本數(shù)字輸出功能LED2.1-1、I/O英文全稱是Input/Output,即輸入/輸出。單片機端口是標準雙向口,就是說,單2.1-上圖中AI/O口,A點相當于單刀雙擲開關,可以接到+5V,也可以接到電源地。接到+5V或者懸空,整個電路中沒有電流流過,LED的狀態(tài)是熄滅。如果A點接到電源地,25V,假設LED1.5V10mA。通過所以LED被點亮。在數(shù)字電路中,接+5V為電平“1”,接地為“0”。arduinoUNO(UNO)LED燈連接原理圖,2.1-GND(這種電流稱灌電流)。Arduino而LED30mALED,不會燒毀,把這個章節(jié)的擴展功能放到德飛萊,隨時更新內(nèi)容,幫助初學者輕松入門。ArduinoLED2.1-2.1-5面包板連接圖 圖2.1- 面包板連接圖 圖2.1- 流程 / / LED1秒,滅1秒,依此循LED13//引腳定義intLED=//voidsetup()//pinMode(LED,}////voidloop() ED, //LED引腳置高電 //1 ED,//1} ED,HIGH);函數(shù)的名稱去理解其意義:digital數(shù)字的Write寫,作用是向指定的引腳寫入數(shù)字信號,//voidloop(){}ED,ED,ED,//voidloop(){}ED,ED,ED,ED,LED////LED////數(shù))LED閃爍狀態(tài)。用戶可以自行改變參數(shù)來提示:現(xiàn)在機信號燈都是彩色LED,這里只要求用單色的LED實現(xiàn)。比如來打開樣例程序:“arduino實用樣例\3-LED////constintLEDPin //intLEDState longpreviousMillis 最后一次的LEDlonginterval voidsetup()pinMode(LEDPin,}void{//unsignedlongcurrentMillis=millis();if(currentMillis-previousMillis>interval){//previousMillis=if(LEDState==LOW)LEDState=HIGH;LEDState=把對應的LEDLED EDPin,}}LED的程序,結果一樣,但是方法卻不同,到底差別在哪里呢?舉例說明一下:上一個程序是CPU獨立工作,這個程序是CPU和定時器一起工作。一個人工作和2成一個大個工程,必須分工明確、溝通得力,CPU就是CEO,負責協(xié)調(diào)各個部門工作。分析一下程序,LED什么時候熄滅什么時候點亮?只取決于時間,這個時間是定時器產(chǎn)生的,單片機電源引腳加上正確電壓后它就開始工作,不受其他程序影響。CPU只需要8個LED的協(xié)調(diào)工作,如需完成流水燈或者花樣燈的功能,首先必須了解硬來1變?yōu)?,0變?yōu)?,其他的都不用更改。2.1-7為灌電流連接方式,稱為共陽連接(LED陽極連接到一起)2.1-8為拉電共陰方式只需改變LED方向,公共線接GND。2.1-8共陽連接2.1-9共陰連接2.1-10面包板連接圖(共陽方式//constintLEDCount //constintLEDCount intLEDPins[]=0,1,2,3,4,5,6,7 //對應的LEDvoidsetup()//LEDfor(intthisLED=0;thisLED<LEDCount;{pinMode(LEDPins[thisLED],}}voidloop()for(intnum=0;num<8;num++){ EDPins[num],}//循環(huán)順序點亮LED200msfor(intnum=0;num<8;{digitalWri LOW);delay(200); EDPins[num],}}LED1200ms熄滅第一個,然后點亮第2個,等待200ms,熄滅第2個,依此循環(huán),直到8LED都點亮熄滅。周而復始。8位LEDLED亮滅。下面1位LED8位LED,都有一個共同特點:都是合,一種是斷開;比如電位器(可調(diào)電阻,電阻的一種),連續(xù)變化的阻值。那么上述2能。digitalRead(),ogRead()2種函數(shù),翻譯到中文就是數(shù)字量、模擬量。打開程序:“\arduino實用樣例\5-8LED燈顯示電位器位置”,從名字可以看出這2種器件,18LED燈,LED燈講之前解過,2.1- / 利用A0輸入的模擬量,控制LED點亮狀態(tài),可以直 使用獨立模塊開發(fā)板LY-51S連接詳情:。//const ogPin= / 利用A0輸入的模擬量,控制LED點亮狀態(tài),可以直 使用獨立模塊開發(fā)板LY-51S連接詳情:。//const ogPin=A0;//模擬輸入constintLEDCount= //LEDintLEDPins[]=0,1,2,0,1,2,3,4,56,7, //對應的LEDvoidsetup()for(intthisLED=0;thisLED<LEDCount;{pinMode(LEDPins[thisLED],}}voidloop() sorReading intLEDLevel=map(sensorReading,0,1023,0,for(intthisLED=0;thisLED<LEDCount;{if(thisLED<LEDLevel) EDPins[thisLED],}else EDPins[thisLED],}}}這里用到map()函數(shù),簡單的說這個是數(shù)值變換函數(shù),map的愿意是地圖,實際的尺寸intLEDLevel=map(sensorReading,0,1023,0,解讀這個語句的意思:等號左邊定義一個int變量用來指示LED點亮的個數(shù),ensorReading是的A0的模擬量值,這個值的范圍是0-1023,因為arduino使用的是1023。LEDCount是自定義的LED810個或20個LED來指示電位器狀態(tài),只需要改變預定義的值。系統(tǒng)會自動計算比例系數(shù),這樣與LY-51S開發(fā)板LED模塊連接如下2.1-13電路圖,低電平有效1LEDarduinoD13LY-51SJ92.1-8LEDarduinoD0-D78LY-51SJ92.1-8LEDarduinoA0LY-51SJ32W3J31W42.1-第二 2.2-1常見的按鍵和開關2.2-22.2-22個腳、4個腳、5個腳還有薄膜按鍵(遙與arduino2.2-32.2-42.2-3是高電平有效。按鍵當按鍵按下,開關電路閉合,D2直接連接到VCC,此時單片機讀到的是高電平。圖2.2-4 圖2.2- 圖2.2-2.2-5高電平有效2.2-6低電平有效改進版的UNO把這2種按鍵集成到主板上,并預留了引腳插針,使用的時候只需要把對應的插針連接到相應的端口即可。和標識如下:2.2-鍵。一般用杜邦線連接,杜邦線如下: 圖2.2-88P杜邦 圖2.2-94P杜邦2.2-101P ///德飛萊旗艦店 ///德飛萊旗艦店 Pin2的電平信號,并把結果打印到串口,也同時反映到LED燈////intLED=13;//voidsetup()////者KEY_LpinMode(pushButton,INPUT);//獨立模塊LY-51S開發(fā)板上獨立按鍵K1-K8//把LEDpinMode(LED, }//voidloop() intbuttonState LED ED,// //延時大小決定循 的時間間}Serial.begin(9600);這個語句的目的是初始化串口的參數(shù),arduino規(guī)定只允許改變波特率參數(shù),其他的參數(shù)使用通用數(shù)值。如果你需要pinMode(pushButton,INPUT);設置端口為輸入模式,用于端口電平。這個程序的功能是按鍵的電平狀態(tài),然后實時的反應到LED并且傳輸?shù)诫娔X串口上。2.2-箭頭指向的按鈕是打開arduino自帶的串口調(diào)試功能。也可以使用第的調(diào)試,2.2-注意:德飛萊版本集成的按鍵KEY_L,沒有上拉電阻,使用時需要打開單片機上口與GND之間,原理類似,這個應用的范圍比上拉電阻少。\8-獨立按鍵檢測程序上拉”。輸入上拉功能。 / 按鍵一端連接到+GND,另外一段連接到**Pin2如果使用LY-51S:void//使能pin2為輸入,并啟 上拉功能pinMode(2,pinMode(13,}void sorVal= if(sensorVal==HIGH){digitalWrite(13,}elsedigitalWrite(13,}}與之前的程序一樣,僅僅改了一句設置功能,pinMode(2,INPUT_PULLUP);原來定義為普通輸入,現(xiàn)在定義為上拉輸入,arduino的語句都是英語單詞,如果英語水平不錯這些機可能檢測的2次或者,而且次數(shù)是不能確定的,這個結果當然不是所需要的,既復雜,效果也不樂觀。所以現(xiàn)在大多采取第二種方法:去抖動。2.2-2.2- / / LY-51S 來了解這個內(nèi)容地址 /playlistshow/id獨立按 /vshow/id按鈕一端連接到+5V,另外一段連接到10Kpin2GND如果使用LY-51S獨立模塊開發(fā)板,參考以下 //constintbuttonPin //constintLEDPin LED//intLEDState //當前LEDint intlastButtonState= //上 //longlastDebounceTime //上次按鍵觸發(fā)時longdebounceDelay //void{pinMode(buttonPin,INPUT);pinMode(LEDPin,OUTPUT);//LED EDPin,}voidloop() intreading=////if(reading!=lastButtonState)//lastDebounceTime=}if((millis()-lastDebounceTime)>debounceDelay)//if(reading!=buttonState)buttonState=buttonState=////{LEDState=}}}把LED EDPin,//lastButtonState=}程序的功能如下:按一下按鍵,LED熄滅,再次按一下按鍵,LED點亮,如此往復。與LY-51S連接圖:2.2-8個獨立按鍵,低電平有效2.2-ArduinoD2LY-51SJ26任一引腳,有8第三 ADC1、定義需要的模擬量輸入端口。UNO是2.3-10-VCC的變化電壓。2.3-2實物連接圖LED / LED / 如果使用LY-51S獨立模塊開發(fā)板,參考以下 : sorPin=A0;intLEDPin=13;////LED sorValue=0;//模擬輸入數(shù)值變voidsetup() pinMode(LEDPin,}voidloop() sensorValue //點亮LED,LY-51S獨立模塊開發(fā)板上LED模塊則是熄滅LED EDPin,HIGH);//使 EDPin,LOW);//使用 }與LY-51S開發(fā)板連接如下圖:2.3-39圖2.3- 圖2.3-圖2.3-4ArduinoA0LY-51SJ32W3J31W4;2.3-5為電位器調(diào)節(jié)LED閃爍頻率,接法同上第四 脈寬調(diào)制()定義是英文“PulseWidthModi的縮寫,簡稱脈寬調(diào)制。它是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用于測量,通信,功率控制與變換等許多領域。一種模擬控制方式,根據(jù)相應載荷的變化來調(diào)制晶體管柵極或基極的偏置,來實現(xiàn)開關穩(wěn)壓電源輸出晶體管或晶體管導通時間的改變,這種方式能使電源的輸出電壓在工作條件變化時保持恒定。這里用模擬最簡單的,頻率不變,脈沖高電平寬度可以調(diào)節(jié),實際是調(diào)節(jié)做功時間,從而達到調(diào)節(jié)電壓、電流或者功率等參數(shù)。2.4-12.4-2在一些情況下可以替代DAC(數(shù)模轉換)功能。所以在arduino里面使用函數(shù)ogWrite();寫模擬量,arduino的 是8位,換算成數(shù)字量是0~255。 片自帶的發(fā)生器功能,只有在主板上標有的端口才能使用這個功能,否則此函數(shù)寫無效。UNO的 端口是3、5、6、9、10、11。圖2.4-3調(diào)光電路圖2.4- 調(diào)光基本連接,也可以連接到其他 引腳圖2.4-4調(diào)光實物連接 / 利 功能實現(xiàn)調(diào)光效intLED=intbrightness LEDintfadeAmount ////void pinMode(LED,OUTPUT);//獨立模塊LY-51SLED1-LED8}//void //LED ED,//下一個循環(huán)調(diào)整LED//if(brightness==0||brightness=={fadeAmount=-fadeAmount}}打開程序:“\arduino實用樣例程序功能:從0循環(huán)增大數(shù)值,到255后再循環(huán)減小到0,如此循環(huán),LED狀就是這種方法實現(xiàn)的。通過把之前學習過的ADC轉換、調(diào)光功能結合起來,可以實2.4-5電位器控制LEDLED串聯(lián)也能實現(xiàn)調(diào)光功能,這個程序則需要把中間圖2.4-6實物連接圖,連接到9打開程序:“\arduino實用樣例\11-LED 數(shù)據(jù)變化到0-255區(qū)間,使用 引腳調(diào)節(jié)LED亮度如果使用LY-51S獨立模塊開發(fā)板,參考以 //constintogInPin=A0;//模擬輸入引腳constintogOutPin=9;// insorValue=0; //電位器電壓值intoutputValue //模擬量輸出值(voidsetup()//}voidloop() sensorValue //outputValue=map(sensorValue,0,1023,0,//輸出對應 ogOutPin,////這里可以使用arduino Serial.print("sensor="); Serial.print("\toutput=");//2ms//取保能穩(wěn) }程序解讀:定義模擬輸入引腳A0,定義 輸出引腳Pin9,這2種功能都是單片機自帶的硬件功能,所以無需設置初始化參數(shù),arduino已經(jīng)提前設置完成,只需接對端口操作。循環(huán)模擬量,把模擬量進行數(shù)據(jù)變換至0-255,以便適應 從最終現(xiàn)象看到的是:電位器轉動,LED的亮度隨之變化,串口不停的輸出2種即時數(shù)值。這個程序集成了3種功能,模擬轉換、 與LY-51S開發(fā)板連接圖圖2.4- 圖2.4-2.4-7:ArduinoD9接LY-51SJ9任一端。圖2.4-8:電位器調(diào)光,D9接J9任一端A0接J32W3J31W4第五 EEPROM應EER,非易失性器。單片機發(fā)展的起始階段,程序的存貯器都是用高壓編程的,擦除的時候需要用紫外線長時間照射。RAM在掉電后數(shù)據(jù)也丟失了,那個時候沒有發(fā)明EERM只能用廠家設置。現(xiàn)在不同了,這種低價格的器到處都有,比如電腦硬盤,D卡都有反 / arduino使用的是AVR單片機,單片 / arduino使用的是AVR單片機,單片 #include EEPROM的地intaddress=0;bytevalue;{//value=Serial.print(valueDEC);//十進制顯示數(shù)值value=value+1;對應的開機次數(shù)加1EEPROM.write(address,value);//然打開程序:“\arduino實用樣例\13-”}void{} 數(shù)從EEPROM讀出來,然后數(shù)值加一,再到EEPROM,由于單片機掉電后EEPROMArduino里面程序集成了相關函數(shù),只用2個語句就實現(xiàn)讀寫功能。1萬次的時候則認為這個機器的開關EEPROM功能,當開關次數(shù)達到1萬次后把一些必要的信息反映到顯示屏或者直接切第六節(jié)串口通訊的地位。串口通訊適合低速傳輸,通過RS485電平轉換可以實現(xiàn)遠距離傳輸。控制方式和才能發(fā)送下一個數(shù)據(jù),速率不對等則會造成丟包、堵塞。一條路最多能開40碼,如果強行180是主板能否程序,因為程序是通過該串口的。UNO只有1個硬件的串口,如果需arduinoarduino自帶樣例中提供測試函數(shù)部分,參考德飛萊或者arduino。2、藍牙串口調(diào)試界

2.6-

2.6-2.6-第七 7段數(shù)碼2.7-2.7-00011100002010130100401105011060111700008011190110A0111B0111C0011D0101E0111F01112.7-01100111112101031011410015100161000711118100091001A1000B1000C1100D1010E1000F10002.7-順序,0-F的常用輸出。2.7-38個LED8arduino2.7-42.7-58位LED的連接完全一樣。只有實際操作才能發(fā)現(xiàn)數(shù)碼管排列的優(yōu)點。下面是2種類型的實物連接圖。圖2.7-6共陽數(shù)碼管連接方式,公共端接 圖2.7-7共陰數(shù)碼管連接方式,公共端接打開程序:“\arduino實用樣例\16- / / arduino版10-9intintLEDPins[]={0,1,2,3,4,56,7, //對應的LEDvoidsetup()for(intthisLED=0;thisLED<LEDCount;{pinMode(LEDPins[thisLED],}}數(shù)據(jù)處理,把需要處理的bytevoiddeal(unsignedcharvalue){for(inti=0;i<8;i++) EDPins[i],!bitRead(value,i));//使用了 函數(shù),非常簡}//voidloop()0-9for(int }}定義段碼:不同的段點亮的組合形成固定的字符,常用的是0-9,A-F,這里只寫0-9。voiddeal(unsignedcharvalue),其中value是要顯示的數(shù)值,是查詢處理的段碼,如何把這個8位的數(shù)據(jù)到對應的端口上面是整個程序的關鍵。函數(shù)bitRead(value,i),目的是value這個字節(jié)中的每一個bit序許多初學者不能讀懂,但一定要自行慢慢消化并理解顯示原理,因為后面的48與與LY-51S開發(fā)板連接圖圖2.7-8獨立共陽數(shù)碼管電路 圖2.7-9ArduinoD0-D7連接到LY-51SJ6a-第八節(jié)4x4電路圖2.8-2打開程序:“\arduino實用樣例\21-4x4 使用獨立模塊開發(fā)板LY-51S連接詳情:constintnumRows4;//4constintnumCols4;//4constintdebounceTime20;//{'1','2','3','+'{'4','5','6','- constintrowPins[numRows7,6,5,4};//設置硬件對應的引腳constintcolPins[numCols]={11,10,9,8};for(introw=0;row<}for(intcolumn=0;column<}}voidloop//charkey=if(keySerial.print("GotSerial.print("Gotkey");//}}charcharkey=for(intcolumn=0;column<for(introw=0;row<numRows;while(digitalRead(rowPins[row])== ;key=}}digitalWrite(colPins[column],HIGH);//De-activethecurrent}return繼續(xù)掃描。以4x4逐行掃描位例,步驟如下:2、4個列線全部設為輸入,并置高電平(上拉作用第一行線拉低(LOW)4根列線是否有低電平出現(xiàn)?如果有,證明有按鍵按下,則繼續(xù)下一步。改行線(置高HIGHT)。第二行線拉低(LOW)4根列線是否有低電平出現(xiàn)?如果有,證明有按鍵按下,則繼續(xù)下一步。改行線(置高HIGHT)。第三行線拉低(LOW)4根列線是否有低電平出現(xiàn)?如果有,證明有按鍵按下,則繼續(xù)下一步。改行線(置高HIGHT)。第四行線拉低(LOW)4根列線是否有低電平出現(xiàn)?如果有,證明有按鍵按下,則繼續(xù)下一步。改行線(置高HIGHT)。LY-51S中有講解,相關內(nèi)容可以參考LY-51S的書籍或者與LY-51S開發(fā)板連接圖如下,ArduinoJ252.8-圖2.8- ArduinoD4-D11接LY-51S第九 AD鍵加電阻實現(xiàn),連接方式有很多種,這里講解常見的一種。ADC按鍵用于端口數(shù)量有限,按2.9-2.9- /// ///七星蟲旗艦店 /// ///七星蟲旗艦店 arduino版 如果使用LY-51S://constintogInPin=A0;//模擬輸入引腳insorValue=0; //電位器電壓值intkeyValue=0;voidsetup()//}voidloop() sensorValue //// Serial.print("KeyPressis=ADKey");2ms//取保能穩(wěn) }下,A0口會到的不同的電壓值,通過對比電壓值的范圍,可以確定是哪個按鍵按下。一般ADC采樣數(shù)值。不同的按鍵數(shù)值不同,相第十 4位數(shù)碼32UNO主板沒有這么多端口,那么最終有什么方法節(jié)省端口 DIS0111aDPY DIS027 DIS03 DIS042DIS01DIS02DIS03DIS04DIS05DIS07DIS08acfgcfg DIS05 DIS0610DIS07 DIS08e deegc eedafgbeedafgbdcfgde aeedafgbdceafgbdceafgbdd126789869861Kx9869862.10-從電路圖上可以看出,8個數(shù)碼管的數(shù)據(jù)端(a-dp)是連接在一起的,每個數(shù)碼管都有可以實現(xiàn)不同的字符顯示,這個數(shù)據(jù)是控制字形的,稱之為段碼。88個數(shù)碼2.10-2.10-3最終要求顯示效果2.10-這個8位數(shù)碼管的工作原理24位數(shù)碼管拼接在一起的。上圖使用了驅動三2.10-5實物連接圖圖2.10-6硬件不區(qū)分共陰共陽,全部由控 / / 端口直接驅動4位共陰數(shù)碼管,一般情況無需外接限流電阻 intsegCount=4;longpreviousMillis=constunsignedchar,//unsignedcharconstdofly_WeiMa[]={0,1,2,3};intLEDPins[]={12,8,5,3,2,11,6,4,}; //11,7,4,2,1,10,5,3注釋是數(shù)碼管實際引腳數(shù),和 intsegPins[]= //12,9,8,6注釋是數(shù)碼管實際引腳數(shù),和 一樣,逆時針數(shù)德飛萊 unsignedchardisplayTemp[4];//顯示緩沖區(qū)voidsetup(){//for(intthisLED=0;thisLED<LEDCount;{pinMode(LEDPins[thisLED],OUTPUT);for(intthisSeg=0;thisSeg<segCount;{pinMode(segPins[thisSeg],}}//數(shù)據(jù)處理,把需要處理的bytevoiddeal(unsignedcharvalue){for(inti=0;i<8;i++) EDPins[i],bitRead(value,i));//使用了 函數(shù),非常簡//!}//voidloop()staticunsignedintnum;//定義一個數(shù)據(jù)staticunsigned longlastTime=0;if(millis()-lastTime>={lastTime=} displayTemp[0]=dofly_DuanMa[1];//靜態(tài)顯示staticinti;unsignedlongcurrentMillis=millis();if(currentMillis-previousMillis>0){previousMilliscurrentMillis;deal(0);//清除“鬼影”for(inta=0;a<4;a++)//循環(huán)寫位碼,任何時刻只有1if(i==4)//4}}態(tài)掃描,而不是靜態(tài)顯示。44個字節(jié)的緩沖區(qū),緩沖區(qū)可以理解為中轉 / / 端口直接驅動4位共陰數(shù)碼管,一般情況無需外接限流電阻 intsegCount=4;longpreviousMillis= constunsignedchar//unsignedcharconstdofly_WeiMa[]={0,1,2,3};intLEDPins[]={12,8,5,3,2,11,6,4,}; //11,7,4,2,1,10,5,3注釋是數(shù)碼管實際引腳數(shù),和 intsegPins[]= //12,9,8,6注釋是數(shù)碼管實際引腳數(shù),和 一樣,逆時針數(shù)德飛萊 unsignedchardisplayTemp[4];//顯示緩沖區(qū)voidsetup(){//for(intthisLED=0;thisLED<LEDCount;{pinMode(LEDPins[thisLED],OUTPUT);for(intthisSeg=0;thisSeg<segCount;{pinMode(segPins[thisSeg],}}//數(shù)據(jù)處理,把需要處理的bytevoiddeal(unsignedcharvalue){for(inti=0;i<8;i++) EDPins[i],bitRead(value,i));//使用了 函數(shù),非常簡//!}//voidloop()staticunsignedintnum;//定義一個數(shù)據(jù)staticunsigned longlastTime=0;if(millis()-lastTime>={lastTime=}} staticinti;unsignedlongcurrentMillis=millis();if(currentMillis-previousMillis>0)deal(0);//清除“鬼影”for(inta=0;a<4;a++)//循環(huán)寫位碼,任何時刻只有1 if(i==4)//4}}的顯示信息也是可以改變的,這個程序的作用是實現(xiàn) 累計功能,達到最大值有重新第十一節(jié)16022.11-112接電源3弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“

低電平0時選擇指令寄存器。5656EE(或EN)端為使能(enable)端,下降沿使能740位(最低位84194243444546

高4位三態(tài)、雙向數(shù)據(jù)總線7位(最)(也是busyflag)00寫入指令寄存器(清除屏等00寫入指令寄存器(清除屏等 讀busyflag(DB7),以及位址計數(shù)(DB0~DB6) 寫入數(shù)據(jù)寄存器(顯示各字型等 從數(shù)據(jù)寄存器數(shù)1602液晶模塊的字符發(fā)生器(CGROM)已經(jīng)了160個不同的點陣字符圖符都有一個固定的代碼,比如大寫的英文字母“A”01000001B(41H),顯示時模ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如‘A’。以下是160216進制ASCII碼表:ASCII0x42(前0x表示十六進制)2.11-3123456789 4位接線方式原理2.11-4圖2.11-5實物圖,參LiquidCrystal(rs,enable,d4,d5,d6,d7)LiquidCrystal(rs,rw,enable,LiquidCrystal(rs,enable,d4,d5,d6,d7)LiquidCrystal(rs,rw,enable,d4,d5,d6,d7)LiquidCrystal(rs,enable,d0,d1,d2,d3,d4,d5,d6,d7)LiquidCrystal(rs,rw,enable,d0,d1,d2,d3,d4,d5,d6,d7)lcd.begin(cols,rows)lcd:cols:rows:行數(shù)setCursor()--設置光標lcd.setCursor(col,row)lcd:cols:rows:行數(shù)lcd:lcd.print(data,data:(char,byte,int,long,orBASE可選thebaseinwhichtoprintnumbers:BINforbinarybase2DECfordecimalbase10),OCTforoctal(base8),HEXforhexadecimal(base16). / LiquidCrystal / LiquidCrystal庫 oHD44780的LCD16引腳。引腳定義,這里使用4位數(shù)據(jù)模式,只寫數(shù)據(jù),不讀數(shù)據(jù):LCDRSpintodigitalpinLCDEnablepintodigitalpinLCDD4pintodigitalpinLCDD5pintodigitalpinLCDD6pintodigitalpinLCDD7pintodigitalpinLCDR/Wpintoground10K //使用LY-51Sendsto5VandgroundVO引腳接電位器抽頭,用于調(diào)節(jié)對比度,LY-51S開發(fā)板只需要調(diào)節(jié)W1電位器。wipertoLCDVOpin(pin//#include//LiquidCrystallcd(12,11,5,4,3,2);voidsetup(){//lcd.begin(16,// o,}voidloop()//lcd.setCursor(0,1);打印復位后的運行秒值lcd.print("Second");}程序解讀:首先需要包含對應的頭文件“#includeLiquidCrystal.h>”,只有包含這個面的4種定義方式。下面進行一些必要的初始化,設置液晶的行列參數(shù),這里使用1602液晶,所以是2行16lcd.print("oDOFLY!");默0,0位置打印,所以這些與LY-51S開發(fā)板連2.11-71602 與LY-51S配套模塊連線圖LY-51SJ23J23J23J23J23J23J23P25 電磁式蜂鳴器電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。號,阻抗匹配器推動壓電蜂鳴片。)一些器只能發(fā)出“滴滴”聲響的一般都是蜂鳴器。。在看程序之前,先了解的一個函數(shù):tone()和notone()這個2個函數(shù)是的函數(shù),在指定的引腳產(chǎn)生指定頻率占空比50%的方波,其中一個是發(fā)生方波,另外一個就是停止方波。其實由定時器控制,不用去了解結構,直樂譜節(jié)拍規(guī)律改變的頻率和時間就可以實現(xiàn)音樂。tone()有以下2種形式的參數(shù)tone(pin,frequency)notone(),,圖2.12-1電位器改變頻率電路圖2.12-2電位器改變頻率實物打開程序:“打開程序:“\arduino實用樣例\38- 10K電阻另外一段接arduino如果使用如果使用LY-51S獨立模塊開發(fā)板,參考以 voidsetup()//}voidloop()// sorReading //把讀入的模擬量(這種情況下,4001000//換算出頻率范圍(120-intthisPitch=map(sensorReading,400,1000,120, tone(9,thisPitch, //}再看一個單純2.12-3圖2.12-4直接用端口驅動喇叭或者蜂鳴器,的寫法不同(程序中使用8腳,可自行更改程序 /// ///七星蟲旗艦店 /// ///七星蟲旗艦店 arduino版 LY-51S:#include//intmelody[]=NOTE_C4,NOTE_G3,NOTE_G3,NOTE_A3,NOTE_G3,0,NOTE_B3,//音符持續(xù)時間:4=四分音符,8=八分音符等等:intnoteDurations[]={4,8,8,4,4,4,4,4voidsetup()//for(intthisNote=0;thisNote<8;thisNote++)1S//=10004,八分音符=1000/8,tone(8,melody[thisNote],noteDuration);1.3intpauseBetweenNotes=noteDuration*1.30;//停 }}voidloop()//noneedtorepeatthe}與LY-51S開發(fā)板連使用ULN2003驅動,三極管處接可用于調(diào)節(jié)音量,默認不使用該功能,調(diào)節(jié)音表2.12-1LY-51S配套模塊連線圖LY-51SJ42表2.12-2LY-51S配套模塊連線圖LY-51SJ42J32W3J31 RGB三基色RGB三種顏色,R=Red,G=Green,B=Blue,通過這三種顏色不同比例的的,一個LED就是一個像素,這個像素可以通過程序控制顯示任何顏色、任何灰度。在單片機中是通過來實現(xiàn)調(diào)色功能,之前學習過調(diào)光功能,使用1個單色LED,主的彩片一般也會用RGB格式表示,比如24位彩色,RGB三種顏色各占8位,組成的格式RGB=888格式。每種顏色28次方=256個亮度等級,那么整個像素是可以顯224次方=16777216明確,1種顏色用1路,三種顏色就用三路,很幸運,UNO有大于3路功能輸出,所以還有剩余來完成其他功能。下面是電路圖和實物連接他。同樣的RGB也分共陽和共陰,LED一共4個有效引腳,1個公共端,另外3個是三種顏色的另外一端。圖2.13-1RGB / arduino版塊 / arduino版塊 r代表紅色,范圍是0-255,g代表綠色,范圍是0-255,b代表藍色,范圍是0-255三色LED燈的調(diào)光變色功能。TheLED39,10,11 功能進行調(diào)光,實現(xiàn)3種顏色混合顯示 StringinString //intcurrentColor=intred,green,blue=voidsetup//while(!Serial){;//waitforserialporttoconnect.NeededforLeonardo}//Serial.println("\n\nStringtoInt()RGB:");//LED端口方向:pinMode(9,OUTPUT);pinMode(10,OUTPUT);pinMode(11,OUTPUT);13腳LED作為電源指示:pinMode(13,OUTPUT);digitalWrite(13,HIGH);}voidloopint ifSerial.available(){inChar=}if(isDigit(inChar))// inString+=}if(inChar==','){//根 switch(currentColor)case 0redred=//inStringinString=casegreen=}}//if(inChar=='\r')blue=//寫入對應的 ogWrite(9,255-green);ogWrite(10,255-打印對應的數(shù)據(jù)到串口Serial.print("Red:");Serial.print(",Green:");Serial.print(",Blue:");//inString=//currentColor=}}的字符串格式規(guī)定如下:r,g,b,+200,100,150,+回車,這個格式是正確的。機。其中包含2個關鍵信息:1、直流2、電。分為兩部分:定子與轉子。注意:換向極與換向器弄了。直流電調(diào)速就是調(diào)節(jié)兩端的電壓。之前學過,這里也使用通用的方法控制速解,直流電機還有正反轉功能,這需要的驅動配合控制,比如L9110,L298等。ULN2003驅動電機,這2.14-12.14-2打開程序:“\arduino實用樣例\41-直流電機調(diào)速程序”這里不 程序,因為程序與調(diào)光的程序完全一樣,僅僅是電路連接不同程序講解:請參考調(diào)光與LY-51S開發(fā)板連接圖如下:表2.14-1LY-51S配套模塊連線圖LY-J45 4相8拍。1相勵 2相勵 1-2相勵步ABCD步ABCD步ABCD1100011100110002010020110211003601006011060017000810012.15-1方向流向。雙極電機需要H橋驅動,每個線圈可以正反向施加電壓。2.15-2步進電機+ULN2003驅動2.15-3 / //德飛萊 arduino版塊 LY-51S#include / //德飛萊 arduino版塊 LY-51S#include////changethistothenumberofstepsonyourmotor#defineSTEPS512//Stepperstepper(STEPS,8,10,9, intprevious=voidsetup(){}{ AD值,在LY-51Sintval //stepper.step(val-//記下這 previous=}些的函數(shù)電機。結果會在上。與LY-51S2.15-42.15-42.15-2LY-51S配套模塊連線圖LY-51SJ42J42J42J42步進電機直接J44插 里說的舵機主要應用于航模、車模和等多種領域。之前提及的舵機一般是正負90度之舵機的控制信號實際上是信號,周期不變,高電平的時間決定舵機的實際位置。單片機中常用的產(chǎn)生方式有2其一是通過定時器或者延時模擬出信號,其二是單片機包含發(fā)生器圖2.16-19g舵機外形圖 2.16-2舵機連接電路2.16-32.16-4 / / Servo //8intpos={// //}{for(pos0pos180;pos //0度-180 //1 //輸入對應的角度值,舵機會轉到此位}for(pos=180;pos>=1;pos-{}//180度-0//} 與LY-51S開發(fā)板連接圖2.16-1LY-51S配套模塊連線圖LY-51S舵機J52或 echo端會產(chǎn)生高電平回響信號,其持續(xù)時間與所測距離成打開程序:“打開程序:“\arduino實用樣例\47-超聲波測試程序 arduino版 //constconstinttrig //constintecho //pinMode(echo,INPUT);}digitalWrite(trig,1);//置高電平digitalWrite(trig,0);//設為低電平floatS=IntervalTime/58.00;//使用浮點計算出距離,單位cm}}2pulseIn(echo, HIGH);直接用該函數(shù)測量高電平的寬度,自動識別電平,無需等。 體片(光敏層)—空穴對,參與導電,使電路中電流增強。為了獲得高的2.18-3 / / //德飛萊 arduino版塊 通過檢測光敏電阻的變化值,用于控制LED的閃爍頻率,值越大,閃爍越慢如果使用LY-51S獨立模塊開發(fā)板,參考以 sorPin=A0;intLEDPin=13;////LEDintsensorValue=0;//voidsetup() pinMode(LEDPin,}voidloop() sensorValue //點亮LED,LY-51S獨立模塊開發(fā)板上LED模塊則是熄滅LED EDPin,HIGH);//使用 EDPin,LOW);//使用 }LED閃爍頻率完全相同,在實際應用中,也只需要 / / //德飛萊 arduino版塊 通過檢測光敏電阻的變化值,用于控制LED的閃爍頻率,值越大,閃爍越慢如果使用LY-51S獨立模塊開發(fā)板,參考以: sorPin=intLEDPin=13;intrelayPin= sorValue=// voidsetup()pinMode(relayPin,}voidloop() sensorValue 點亮LED,LY-51SLEDLEDif(sensorValue>=800)digitalWrite(relayPin,HIGH); EDPin,HIGH);//使用 EDPin,LOW);//使用 }if(sensorValue>=800)digitalWrite(relayPin,HIGH);elseif(sensorValue<=600)digitalWrite(relayPin,LOW);與LY-51S開發(fā)板連接圖圖2.18-5光敏和熱敏電路圖2.18-2.18-1LY-51S配套模塊連線圖LY-J7 NTC熱敏電阻,由于熱敏電阻應用廣泛,種類繁多,這里進針一種NTC熱敏電阻材料。與光敏電阻電路完全相同,只是更換傳2.19-5與LY-51S開發(fā)板連接圖圖2.19-62.19-1LY-51S配套模塊連線圖LY-J7 2.20-2制LED相同。這里主要講解硬件電路圖。程序和硬件部分是此消彼長的關系,硬件復雜,LED作為狀態(tài)指示燈,電位器是用來調(diào)節(jié)火焰?zhèn)鞲衅鞅容^電路的靈敏度,ULN2003和繼電器是輸出控制部分。在實際應這些設備可以實現(xiàn)自動滅火、等工作。程序同光敏、熱敏控制程序。打開程序:“\arduino實用樣例\60-火焰?zhèn)鞲衅骺刂评^電 工作電壓范 靜態(tài)電 觸發(fā)方 L不可重復觸發(fā)/H重復觸感應角 可重復觸發(fā)方式:即感應輸出高電平后,在延時時間段內(nèi),如果有在其感應范具有感應時間(默認設置:0.2秒):感應模塊在每一次感應輸出后(高電平變?yōu)榈碗娖?,可以緊跟著設置一個時間,在此時間段內(nèi)感應器不接收任何感應信號。此功能模塊的參考原理圖2、模塊除了對紅外敏感,其他的光線,如光、紅外等也可能干擾模塊能時只需要接上電源,外接一個led燈即可完成實驗。 LM35溫度傳感LM35介紹LM35是一種得到廣泛使用的溫度傳感器。由于它采用補償,所以輸出可以從0℃供電模式可提供負溫度的量測;兩種接法的電流-溫度關系,在溫度中自熱效應低(0.08℃),單電源模式在25℃下電流約50μA,工作電壓較寬,可在4—20V的供電電工作電壓4~30V,在上述電壓范圍以內(nèi),從電源吸收的電流幾乎是不變的(約50μA),所以自身幾乎沒有散熱的問題。這么小的電流也使得該在某些應用中特別適下圖是常用的封裝形式,這里使用插件TO-92封裝,類似普通三極管圖2.22-圖2.22-圖2.22-圖2.22- / / arduino版intpotPin0;0LM35void{Serial.begin(9600);//設置波}void{{ Serial.print(dat);//輸出顯示dat的值Serial.println("C");//原樣輸出顯示C字符串delay(500);//延時0.5秒} 2、LM35的測溫精度取決于電路設計,和采樣數(shù)據(jù)優(yōu)化。電路部分應盡量避免干擾, DS18B20溫度傳感DS18B20介紹:處理器與DS18B20的雙向通訊。55℃~+1251④、工作電源3.0~5.5V/DC(可以數(shù)據(jù)線寄生電源⑤、在使用中不需要任何元9~12位數(shù)字量方式串行傳送2.23-12.23-2#include#include//Data#include#include//Datawireispluggedintoport2ontheArduino#defineONE_WIRE_BUS2//SetupaoneWireinstancetocommunicatewithanyOneWiredevices(not/DallastemperatureOneWire//PassouroneWirereferencetoDallasTemperature.DallasTemperaturesensors(&oneWire);void{//startserialportSerial.println("DallasTemperatureICControlLibrary//Startupthelibrary}void{//callsensors.requestTemperatures()toissueaglobal//requesttoalldevicesonthebussensors.requestTemperatures();//SendthecommandtogettemperaturesSerial.print("Temperatureforthedevice1(index0)is:}程序解讀:DS18B20的的時序較為復雜,對時間精度要求較高,arduino自身有精準的多個18B20器件,非常方便。與LY-51S開發(fā)板連接圖:圖2.23-32路溫度傳感 圖2.23-2.23-1LY-51S配套模塊連線圖LY-J48 DHT11濕度傳感4引腳安裝DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感。它應相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應、能力強、性價比極高等優(yōu)點。每個2.24-1 / / 不使用庫文件的DHT11這個程序移植其他,后期會做修改intLED=8;intbyte{bytei=0;{}return}void{}void{bytedht11_dat[5];bytedht11_in;bytei;PORTC&=DDRC&=dht11_in=PINC&_BV(DHT11_PIN);{Serial.println("dht11startcondition1notmet");}dht11_in=PINC&_BV(DHT11_PIN);{Serial.println("dht11startcondition2not}{Serial.println("DHT11checksum}Serial.print("temperature=");}第二十五節(jié)DS1302DS1302是DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,5.5VCPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供也能保持時鐘的連續(xù)運行。DS1302由VCC1或VCC2兩者中的較大者供電。當Vcc2大于VCC1+0.2V時,VCC2給DS1302供電。當VCC2小于VCC1時,DS1302由VCC1供電。X1和X232.768kHz晶振。RST是復位/RST輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送。當RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/OVCC>2.0V之前,RST必須保持低電平。只有在SCLKRST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向)。SCLK為時鐘輸入端。與LY-51S開發(fā)板連接圖2.25-1LY-51S配套模塊連線圖LY-51SJ13J13J13 DS1307時鐘年上線2100。-40808DIP和SOIC封裝器配置:64x電源電壓范圍:4.5Vto5.5V封裝類型:DIPSOP工作溫度范圍:0°Cto封裝類型器容量:56bytes接口類型:Serial,I2C溫度范圍:電壓,Vcc最大:5V標號DS1307IICDS1307TWIDS1307寄存器或RAM中:第一步.START第二步.SLA+W(0xd0)字節(jié),DS1307應答第三步.1字節(jié)內(nèi)存地址(DS1307內(nèi)該地址處),DS1307應答。第五步.STOP 庫的使用,主程序的部分非第二十七節(jié)紅外功 引腳定 2.27-2輸入輸出波形圖(38K載波號,此信號經(jīng)由IC放大器進行放大,然后通過自動增益控制、帶通濾波、解調(diào)、波形38KHz調(diào)制波驅動。這里不做詳細講解,應用較少。在入到LED1個LED閃爍功能通過紅外發(fā)射和接2.27-5Arduino中使用簡化接法。只要接電源和信號線即可。打開程序:“\arduino實用樣IRremote:IRrecvDemo-demonstratesreceivingIRcodeswithAnIRdetector/demodulatormustbeconnectedtotheinputVersion0.1July,Copyright2009Ken intRECV_PIN=11;decode_resultsresults;voidsetup(){irrecv.enableIRIn();//Startthereceiver}voidloop()if{Serial.println(results.value,HEX);irrecv.resume();//Receivethenextvalue}}便捷的。按下的任意按鍵,串口顯示出對應的碼值,一般格式:HHHHHHHHIRremote:IRrecvDemo-demonstratesreceivingIRIRremote:IRrecvDemo-demonstratesreceivingIRcodeswithAnIRdetector/demodulatormustbeconnectedtotheinputVersion0.1July,Copyright2009Ken #include<IRremote.h>intRECV_PIN=11;intRELAY_PIN=4;IRrecvirrecv(RECV_PIN);decode_resultsresults;//Dumpsoutthedecode_results//Callthisafter//void*toworkaroundcompiler//voiddump(void*v) decode_results*results=(decode_results*)vvoiddump(decode_results*results){intcount=results-if(results->decode_type=={Serial.println("Couldnotdecode}elseif(results->decode_type=={Serial.print("DecodedNEC:}elseif(results->decode_type=={Serial.print("DecodedSONY:}elseif(results->decode_type=={Serial.print("DecodedRC5:}elseif(results->decode_type=={Serial.print("DecodedRC6:}Serial.print(results->value,HEX);Serial.print("(");Serial.print(results->bits,DEC);Serial.println("bits)");}Serial.print("Raw(");Serial.print(count,DEC);Serial.print("):");for(inti=0;i<count;i++)ifif((i%2)==1)Serial.print(results- }elseSerial.print(-(int)results- }Serial.print("}}void{pinMode(RELAY_PIN,irrecv.enableIRIn();//Startthe}inton=unsignedlonglast=millis();voidloop(){if(irrecv.decode(&results))//Ifit'sbeenatleast1/4secondsincethe//IRreceived,toggletherelayif(millis()-last>250){on=digitalWrite(RELAY_PIN,on?HIGH:LOW);digitalWrite(13,on?HIGH:LOW);}last=irrecv.resume();//Receivethenext}}與LY-51S開發(fā)板連接圖:2.27-1LY-51S配套模塊連線圖LY-J42RL1或 字庫12864液晶屏檔。樣例程序中使用ST7920字庫液晶。12接電源3456E(或EN)端為使能(enable)端,下降沿使能;串行同740位(最低位84194243444546高4位三態(tài)、雙向數(shù)據(jù)總線7位(最)(也是busy12864負壓輸出端(用于調(diào)節(jié)對比度 字庫ST792012864

arduino版LY-51S PIN1=GNDPIN2=5VPIN4RS(CS)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論