




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
單片機(jī)基礎(chǔ)電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心單片機(jī)基礎(chǔ)單片機(jī)基礎(chǔ)Arduino單片機(jī)創(chuàng)新作品Blink閃燈單片機(jī)基礎(chǔ)函數(shù)控制IO口定時器中斷串口SPIIICArduino模塊編程應(yīng)用-幫助同學(xué)快速入門,以經(jīng)典系統(tǒng)構(gòu)建為例,初步建立系統(tǒng)設(shè)計和創(chuàng)新能力。單片機(jī)結(jié)構(gòu)與運行機(jī)制-幫助同學(xué)建立程序與硬件、C語言與單片機(jī)的關(guān)系,培養(yǎng)系統(tǒng)設(shè)計和實現(xiàn)能力。單片機(jī)基礎(chǔ)51單片機(jī)點亮發(fā)光二極管單片機(jī)基礎(chǔ)單片機(jī)基礎(chǔ)單片機(jī)基礎(chǔ)Arduino之入門電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之入門Arduino是什么?硬件標(biāo)準(zhǔn)化、軟件代碼開源的單片機(jī)模塊在藝術(shù)創(chuàng)作、業(yè)余愛好者、創(chuàng)客群體等領(lǐng)域應(yīng)用廣泛Arduino之入門Arduino的誕生這個最經(jīng)典的開源硬件項目,誕生于意大利的一間設(shè)計學(xué)校幾乎任何人,即使不懂電腦編程,也能用Arduino做出很酷的東西,比如對感測器作出回應(yīng),閃爍燈光,還能控制馬達(dá)G.Martino,ItalyD.Molis,ItalyD.Cuartielles,SpainT.Igoo,USAM.Banzi,ItalyArduino之入門Arduino的優(yōu)勢成熟的生態(tài)圈:Arduino中文社區(qū)供討論硬件標(biāo)準(zhǔn)化:設(shè)計規(guī)范,有完整的手冊支持,做工精湛軟件代碼開源:文檔齊全,寫法規(guī)范,范例程序易上手Arduino之入門接口標(biāo)準(zhǔn)化開源硬件模塊Arduino硬件平臺軟件工具Arduino之入門ArduinoUNO組成LED復(fù)位按鍵Arduino之入門Arduino常用產(chǎn)品ArduinoUNOR3ArduinoMega2560ArduinoNano詳見https://www.arduino.cc/en/Main/ProductsArduino之入門硬件Arduino實驗板與下載線LED燈杜邦線330歐姆電阻面包板Arduino之入門軟件:ArduinoIDE打開網(wǎng)頁輸入網(wǎng)址:http://arduino.cc/en/Main/Software進(jìn)入頁面,如下圖所示Arduino之入門ArduinoIDE先簡單認(rèn)識看一下Arduino的這個編譯器界面Arduino之入門Arduino開發(fā)USB連接ArduinoUNO和計算機(jī)在IDE中編寫程序點擊編譯程序生成可執(zhí)行文件Arduino加載可執(zhí)行文件加載完成后,Arduino即可運行Arduino之IO口電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之IO口使用數(shù)字I/O的13號引腳控制LED亮滅。輸出高電平點亮,輸出低電平熄滅LED燈Blink實驗單片機(jī)驅(qū)動發(fā)光二極管發(fā)光二極管工作原理二極管具有單向?qū)щ娦訟rduino之IO口N型電子與P型空穴碰撞,產(chǎn)生光子光子發(fā)出能量,形成光發(fā)光二極管工作原理直插式:短腳為負(fù)級貼片式:綠點標(biāo)志為負(fù)極Arduino之IO口發(fā)光二極管節(jié)壓降與額定電流Arduino之IO口導(dǎo)通電壓:2.0-2.2V額定電流:20mA導(dǎo)通電壓:1.8-2.0V額定電流:20mA導(dǎo)通電壓:3.0-3.2V額定電流:20mA導(dǎo)通電壓1.82-1.88V1.75-1.82V1.7-1.8V3.1-3.3V3.0-3.2V額定電流5-8mA3-5mA3-5mA8-10mA10-15mAArduino之IO口LED工作原理
Arduino之IO口LED工作原理高發(fā)光低不發(fā)光高不發(fā)光低發(fā)光灌入電流Arduino之IO口數(shù)字I/O的常用函數(shù):pinMode(pin,MODE)指定引腳的輸出模式MODE為指定引腳的輸出模式INPUT(輸入),INPUT_PULLUP(輸入帶內(nèi)部上拉電阻)OUTPUT(輸出模式)digitalWrite(pin,value)指定引腳的輸出電平value為輸出電壓HIGH或LOWdigitalRead(pin)讀取指定引腳的邏輯電平返回值為輸入電壓HIGH或LOWArduino之IO口程序說明Arduino程序結(jié)構(gòu)包含兩部分:setup()函數(shù)和loop()函數(shù)先執(zhí)行這里的內(nèi)容再循環(huán)執(zhí)行這里的內(nèi)容Arduino之IO口Blink實驗連接硬件程序內(nèi)容Arduino之IO口點擊編譯點擊上傳板子連接電腦后點擊上傳,將程序燒錄到板子中Arduino之IO口亮1S滅1S,這個時間是準(zhǔn)確的嗎?CPU忙不忙單片機(jī)基礎(chǔ)定時器電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心概念定時器和計數(shù)器物理器件相同*計數(shù)器(Counter)記錄外部脈沖定時器(Timer)記錄內(nèi)部晶振兩者本質(zhì)上都是“數(shù)脈沖”計數(shù)器數(shù)門控信號范圍內(nèi)外部引腳脈沖的個數(shù)定時器通過內(nèi)部晶振計數(shù)脈沖的個數(shù)(N),定義了的單片機(jī)中的“時間”概念單片機(jī)之定時器*兩者本質(zhì)上是同一物理器件的兩種工作狀態(tài),為防止混淆,統(tǒng)稱物理器件位定時器T0/T1N個脈沖
單片機(jī)之定時器N個脈沖內(nèi)部晶振CLK工作原理(計數(shù)器)累加計數(shù)器記錄計數(shù)脈沖(定時器)個數(shù)N僅在門控信號為1時工作單片機(jī)之定時器外部引腳Px.x門控信號TRx溢出位TFxN=2組成定時器(T0/T1)各由2個8位特殊功能寄存器組成(TH0/TH1/TL0/TL1)工作方式寄存器TMOD:用于設(shè)置工作模式和工作方式控制寄存器TCON,用于啟動和停止定時器計數(shù),并控制其狀態(tài)寄存器THx/TLx,用于存儲計數(shù)值單片機(jī)之定時器*THx/TLx/TCON/TMOD都通過總線與CPU相連*當(dāng)單片機(jī)復(fù)位時候,TMOD/TCON內(nèi)的值都被清零
設(shè)定定時器流程1.對TMOD賦值以確定定時器的工作模式(定時器/計數(shù)器)2.對TMOD賦值以確定定時器的工作方式3.置定時器的初值,直接將其寫入THx/TLx4.對TCON寄存器中的TRx進(jìn)行置位,啟動定時器/計數(shù)器完成以上步驟之后,定時/計數(shù)器將按照規(guī)定的工作模式與初值進(jìn)行計數(shù)/開始定時單片機(jī)之定時器Value+2Value+N
單片機(jī)之定時器…Init初值Max最大值每個時鐘周期增加1t觸發(fā)中斷定時時間t
單片機(jī)之定時器如何確定定時器以何種方式工作?改變工作方式寄存器TMOD四種工作方式
方式0(M1=0,M0=0):13位定時器(TH8位TL低5位)方式1(M1=0,M0=1):16位定時器方式2(M1=1,M0=0):自動重裝入初值的8位計數(shù)器方式3(M1=1,M0=1):(T0)分成兩個獨立的8位定時器;(T1)停止工作單片機(jī)之定時器M1/M0控制TH/TL的計數(shù)方式如何啟動定時器?確定用什么信號來啟動計數(shù)器(門控信號)
門控由TMOD寄存器中的GATE位(D7/D3)確定GATE=0,用TCON中運行控制位TRx來控制定時器的啟動與否GATE=1,用外部中斷引腳INTx來控制定時器的啟動與否單片機(jī)之定時器定時器如何反饋?控制寄存器TCON:低4位與外部中斷有關(guān)計數(shù)溢出標(biāo)志位(TF1/TF0):當(dāng)定時器T0/T1溢出時,硬件自動將此位置1TFx可以由程序查詢,也是定時中斷的請求源計數(shù)運行控制位(TR1/TR0):置1表示工作,置0表示停止數(shù)據(jù)寄存器THx/TLxTH0存放了定時器T0的初值或計數(shù)結(jié)果的高8位(TL0為低8位)TH1存放了定時器T1的初值或計數(shù)結(jié)果的高8位(TL1為低8位)單片機(jī)之定時器N=2例子讓引腳P1的LED燈每隔1s閃爍一次將TL0置初值0,將TR0置1以啟動定時器將Timer0是否溢出作為事件發(fā)生的指示主頻為11.0592M,每65536個脈沖溢出產(chǎn)生一個溢出的時間是71.1ms,14個則約為1s每計算14個溢出,則翻轉(zhuǎn)P1口狀態(tài)。單片機(jī)之定時器Arduino之中斷電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心中斷機(jī)制設(shè)一個鬧鐘,鬧鐘響了,CPU才去查看,這就是中斷機(jī)制Arduino之中斷中斷的原理Arduino之中斷Command1主程序中斷服務(wù)程序(ISR)Command2Command3Command4Command5閃燈閃燈保護(hù)現(xiàn)場恢復(fù)現(xiàn)場Arduino之中斷內(nèi)部中斷函數(shù)Timer1.initialize(Period)用于初始化定時器,配置定時周期,以微秒為單位調(diào)用后自動啟動定時器Timer1.attachInterrupt(timerIsr)設(shè)置中斷回調(diào)函數(shù)Arduino之中斷內(nèi)部中斷函數(shù)Timer1.setPeriod(Period)配置定時周期,以微秒為單位Timer1.start()/Timer1.stop()/Timer1.restart()/Timer1.read()啟動/停止/重啟定時器/讀取定時器當(dāng)前值A(chǔ)rduino之中斷程序說明程序內(nèi)容初始化定時器設(shè)置中斷回調(diào)函數(shù)回調(diào)函數(shù)單片機(jī)基礎(chǔ)電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之串口Arduino使用TTL邏輯電平高電平:5V或3.3V,低電平:0V。RS-232串口的使用滿足RS-232電氣標(biāo)準(zhǔn),即-15V到-3V之間為邏輯1,3V到15V之間為邏輯0。Arduino之串口Arduino串口通信時需要連接收、發(fā)、地三根線。Arduino之串口ArduinoUno開發(fā)板的硬件串口位于RX(0)和TX(1)引腳,USB口通過轉(zhuǎn)換芯片與這兩個引腳連接。Arduino串口采用串行比特流方式發(fā)送數(shù)據(jù),每次發(fā)送一個比特的數(shù)據(jù)。Arduino之串口串口的常用函數(shù):Serial.begin(speed[,config])串口波特率定義函數(shù),用于開啟串口、設(shè)置串口的速率、數(shù)據(jù)位數(shù)、奇偶校驗、停止位等參數(shù)。通常置于setup()函數(shù)中。speed為波特率,一般取值9600,115200等。config取如下常量:SERIAL_8N1(缺省配置,8個數(shù)據(jù)位,無校驗位,1個停止位)。Arduino之串口串口的常用函數(shù):Serial.available()返回緩沖區(qū)可讀字節(jié)數(shù)目。Serial.read()從串口緩存中讀取一個字節(jié)的數(shù)據(jù)。Serial.write(val)將數(shù)據(jù)以二進(jìn)制數(shù)據(jù)形式輸出。Serial.print(val)將數(shù)據(jù)以ASCII文本形式輸出。Serial.println(val)在函數(shù)Serial.print()的功能基礎(chǔ)之上輸出結(jié)束時跟上回車與換行。Arduino之串口實例:PC發(fā)送“R”,Arduino上傳“HelloWorld!”串口監(jiān)視器Arduino之串口發(fā)送接收Arduino之串口接收發(fā)送Arduino之串口Arduino之串口Arduino之串口—定時器中斷Blink實驗程序說明程序內(nèi)容Arduino之串口—Blink實驗Arduino的SPI通信電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心串行通信異步模式—RS232同步模式—SPISPI傳輸速度快,不適合遠(yuǎn)距離傳輸SPI通信主從工作模式(MasterSlave)一個主機(jī)和一個或多個從機(jī)主機(jī)通過CS線選一個從機(jī)進(jìn)行通信未選擇的從機(jī)不會影響總線活動SPI通信主從工作模式連接方式MOSI(MasterOutputSlaveInput)MISO(MasterInputSlaveOutput)SCLK(時鐘信號)CS(從機(jī)選擇線)SPI通信工作過程SPI通信協(xié)議SPI時鐘控制SPI控制寄存器CPOL和CPHA,決定時鐘的4種工作模式CPOL時鐘極性CPOL=1,空閑時SCK為高電平CPOL=0,空閑時SCK為低電平CPHA時鐘相位CPHA=1,SCK偶數(shù)邊沿數(shù)據(jù)采樣CPHA=0,SCK奇數(shù)邊沿數(shù)據(jù)采樣Arduino中的SPI庫函數(shù)主機(jī)工作流程從機(jī)工作流程SPI.begin()SPI.setClockDivider(divider)SPI.setBitOrder(order)SPI.setDataMode(mode)digitalWrite(CS,LOW)SPI.transfer(val)/
SPI.transfer16(val16)SPCR|=_BV(SPE)SPI.attachInterrupt()Arduino中的SPI庫函數(shù)SPI庫函數(shù)SPI.begin()初始化SPI總線的參數(shù)將SCLK和MOSI初始化為低電平,CS初始化為高電平。SPI.setClockDivider(divider)指定SCLK時鐘信號的頻率,SCLK時鐘信號的頻率為系統(tǒng)時鐘頻率除以分頻系數(shù)。分頻系數(shù)可以為2,4,8,16,32,64,128divider默認(rèn)設(shè)置為SPI_CLOCK_DIV4,即4分頻.SPI.setBitOrder(order)設(shè)置SPI的字節(jié)傳輸順序order:MSBFIRST(從高位到低位發(fā)送),LSBFIRST(從低位到高位發(fā)送)Arduino中的SPI庫函數(shù)SPI庫函數(shù)SPI.setDataMode(mode)設(shè)置SPI的工作模式mode:SPI_MODE0,SPI_MODE1,SPI_MODE2,SPI_MODE3SPI.transfer(val)/SPI.transfer16(val16)val:要傳輸?shù)淖止?jié)數(shù)據(jù)SPI.transfer()函數(shù)一次通信傳輸一個字節(jié)數(shù)據(jù)SPI.transfer16()函數(shù)一次通信傳輸兩個字節(jié)數(shù)據(jù)Arduino之按鍵電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之按鍵一個簡單的按鍵電路通過IO口操作的函數(shù):pinMode(pin,MODE)、digitalWrite(pin)、digitalRead(pin),通過digitalRead(pin),Arduino即可得到按鍵的狀態(tài)。第一種按鍵電路第二種按鍵電路按下01松開10Arduino之按鍵示波器觀察抖動我們用示波器看一下按鍵按下去,在IO口電平的變化:用示波器觀察實際波形理想按鍵波形實際按鍵波形<10msArduino之按鍵硬件去抖和軟件去抖硬件去抖:用電容搭建濾波器。軟件去抖:首先讀取按鍵狀態(tài),當(dāng)檢測到按鍵摁下后,等待10ms,再次讀取按鍵狀態(tài),若此時仍然是摁下狀態(tài),則說明是按鍵摁下了。否則,即為抖動。<10msArduino之按鍵Arduino之矩陣鍵盤電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之矩陣鍵盤矩陣鍵盤結(jié)構(gòu)3X4鍵盤內(nèi)部線路內(nèi)部線路4X4鍵盤Arduino之矩陣鍵盤掃描法Arduino之矩陣鍵盤掃描法00001111Arduino之矩陣鍵盤掃描法00000111Arduino之矩陣鍵盤掃描法01110111Arduino之矩陣鍵盤掃描法01111011Arduino之矩陣鍵盤掃描法01111111Arduino之矩陣鍵盤掃描法10111111Arduino之矩陣鍵盤掃描法11011111Arduino之矩陣鍵盤掃描法11101111Arduino之矩陣鍵盤反轉(zhuǎn)法00001111Arduino之矩陣鍵盤反轉(zhuǎn)法00000111Arduino之矩陣鍵盤反轉(zhuǎn)法01110000Arduino之矩陣鍵盤安裝庫文件Keypad.h為了確定按下了哪個鍵,我們需要連續(xù)掃描行和列。幸運的是,庫文件Keypad.h的編寫減少了這種不必要的復(fù)雜性。矩陣鍵盤所需庫文件Keypad.h在ArduinoIDE1.8.0或者以上版本中,項目->加載庫->管理庫中搜索Keypad,然后安裝即可。Arduino之矩陣鍵盤安裝庫文件Keypad.hArduino之矩陣鍵盤硬件準(zhǔn)備4x4矩陣鍵盤Uno開發(fā)板USB數(shù)據(jù)線杜邦線硬件準(zhǔn)備Arduino之矩陣鍵盤電路連接Keypad正面從左到右pin為1-8,對應(yīng):KeypadPin1–>ArduinoPin9KeypadPin2–>ArduinoPin8KeypadPin3–>ArduinoPin7KeypadPin4–>ArduinoPin6KeypadPin5–>ArduinoPin5KeypadPin6–>ArduinoPin4KeypadPin7–>ArduinoPin3KeypadPin8–>ArduinoPin2電路連接Arduino之矩陣鍵盤程序說明在本次實驗中,我們調(diào)用函數(shù)Keypad(makeKeymap(keys),rowPins
,colPins,ROWS,COLS),函數(shù)中五個參數(shù)說明如下:然后,我們采用ROWS、COLS兩個參數(shù)來
定義要使用的鍵盤上的行數(shù)和列數(shù)。constbyteROWS=4;//四行constbyteCOLS=4;//四列接著,我們采用rowPins、colPins兩個參數(shù)來定義Arduino引腳與鍵盤引腳的連接方式
byterowPins[ROWS]={9,8,7,6};//連接到矩陣鍵盤的行引腳 bytecolPins[COLS]={5,4,3,2};//連接到矩陣鍵盤的列引腳Arduino之矩陣鍵盤程序說明首先,參數(shù)makeKeymap(keys)用于將鍵盤上的第幾行第幾列,
映射為有意義的字符: charkeys[ROWS][COLS]={ {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} };定義所有字符后,我們可以發(fā)出一個簡單的命令getKey()來檢查按下了哪個鍵。Arduino之?dāng)?shù)碼管電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之?dāng)?shù)碼管數(shù)碼管數(shù)碼管是最常用的一種顯示方法,由數(shù)個LED燈組成“8”字型數(shù)碼管Arduino之?dāng)?shù)碼管8段數(shù)碼管結(jié)構(gòu)分類共陽極數(shù)碼管共陰極數(shù)碼管Arduino之?dāng)?shù)碼管8段數(shù)碼管顯示共陽極Arduino之?dāng)?shù)碼管電路連接Arduino之?dāng)?shù)碼管代碼編寫Arduino之?dāng)?shù)碼管電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之?dāng)?shù)碼管如何控制多位數(shù)碼管?靜態(tài)顯示動態(tài)顯示所需IO口數(shù)目:所需IO口數(shù)目:Arduino之?dāng)?shù)碼管動態(tài)顯示循環(huán)交替點亮多個數(shù)碼管,往復(fù)刷新Arduino之?dāng)?shù)碼管動態(tài)顯示的機(jī)理亮度時間電源斷開“余暉效應(yīng)”示意圖“視覺暫留”示意圖1~10ms40ms數(shù)碼管掃描周期應(yīng)小于10ms,每個數(shù)碼管通電時間應(yīng)大于1msArduino之?dāng)?shù)碼管動態(tài)顯示的實現(xiàn)電路圖使用分立多個數(shù)碼管使用集成多位數(shù)碼管Arduino之?dāng)?shù)碼管動態(tài)顯示的實現(xiàn)邏輯實現(xiàn)選通高位顯示1顯示2選通低位Arduino之?dāng)?shù)碼管動態(tài)顯示的優(yōu)勢動態(tài)顯示可以極大節(jié)省IO口占用,但亮度相對較低段選復(fù)用位選選擇動態(tài)顯示IO口占用數(shù)目IO口占用數(shù)目段選靜態(tài)顯示Arduino之?dāng)?shù)碼管動態(tài)顯示的實現(xiàn)實驗現(xiàn)象(放實驗結(jié)果錄像)Arduino之旋鈕電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心楊彬young_being@Arduino之旋鈕旋鈕旋鈕電位器旋轉(zhuǎn)編碼器旋鈕電位器旋轉(zhuǎn)編碼器Arduino之旋鈕旋鈕電位器的引腳電位器(滑動變阻器)旋鈕電阻體動觸點電位器等效電路R1R2Arduino之旋鈕ArduinoUno引腳電位器引腳5VVCCGNDGNDA0OUT
電位器的接線方式Arduino之旋鈕旋轉(zhuǎn)編碼器旋轉(zhuǎn)編碼器電路原理Arduino之旋鈕ArduinoUno引腳旋轉(zhuǎn)編碼器引腳5VVCCGNDGNDD2CLK(Clock時鐘)D3DT(Data數(shù)據(jù))D4SW
(按鈕開關(guān))
旋轉(zhuǎn)編碼器的接線方式Arduino之旋鈕代碼-讀取旋轉(zhuǎn)編碼器定義連接引腳啟動串口通訊當(dāng)前的旋轉(zhuǎn)編碼器讀數(shù)>先前數(shù)據(jù)→CW。當(dāng)前的旋轉(zhuǎn)編碼器讀數(shù)<先前數(shù)據(jù)→CCWArduino之旋鈕讀取旋轉(zhuǎn)編碼器:串行顯示器輸出結(jié)果Arduino之旋鈕讀取旋轉(zhuǎn)編碼器:串行顯示器輸出結(jié)果Arduino之LED點陣電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之LED點陣LED點陣介紹共陽LED點陣Arduino之LED點陣LED點陣介紹共陽LED點陣1(+)Arduino之LED點陣LED點陣介紹共陽LED點陣1(+)0(-)Arduino之LED點陣LED點陣介紹共陽LED點陣1(+)0(-)Arduino之LED點陣LED點陣介紹共陽LED點陣1(+)0(-)Arduino之LED點陣LED點陣介紹共陽LED點陣0(-)0(-)0(-)0(-)0(-)0(-)0(-)0(-)1(+)1(+)1(+)1(+)1(+)1(+)1(+)1(+)Arduino之LED點陣LED點陣介紹共陽LED點陣0(-)0(-)0(-)0(-)0(-)0(-)0(-)0(-)1(+)1(+)1(+)1(+)0(-)0(-)1(+)0(-)Arduino之LED點陣LED點陣介紹共陽LED點陣0(-)0(-)0(-)0(-)0(-)0(-)0(-)1(+)1(+)1(+)1(+)0(-)0(-)1(+)0(-)1(+)Arduino之LED點陣LED點陣介紹共陽LED點陣0(-)0(-)0(-)0(-)0(-)0(-)0(-)1(+)1(+)1(+)1(+)0(-)0(-)1(+)0(-)0(-)Arduino之LED點陣LED點陣介紹共陽LED點陣0(-)0(-)0(-)0(-)0(-)0(-)0(-)0(-)1(+)1(+)1(+)1(+)0(-)0(-)1(+)0(-)Arduino之LED點陣LED點陣介紹共陽LED點陣0(-)0(-)0(-)0(-)0(-)0(-)0(-)1(+)1(+)1(+)1(+)0(-)0(-)1(+)0(-)1(+)Arduino之LED點陣使用ArduinoUno點亮一個8×8的LED點陣不同點陣屏封裝不同,8×8點陣內(nèi)部結(jié)構(gòu)、管腳定義圖如下:8x8內(nèi)部結(jié)構(gòu)點陣管腳定義Arduino之LED點陣使用ArduinoUno點亮一個8×8的LED點陣根據(jù)點陣屏管腳定義,下表為引腳連接表(行H列L)及原理圖行點陣屏開發(fā)板列點陣屏開發(fā)板H11310L196H2316L21411H3417L385H4107L4129H563L5114H6118L674H71512L7215H81613L852Arduino之LED點陣使用ArduinoUno點亮一個8×8的LED點陣連接開發(fā)板,設(shè)置好對應(yīng)端口號和開發(fā)板類型,進(jìn)行程序下載。程序下載及實物連接圖如下所示:Arduino之LED點陣使用ArduinoUno點亮一個8×8的LED點陣實驗現(xiàn)象:LED點陣屏點亮然后熄滅,然后逐列、逐行點亮。通過兩個for循環(huán)嵌套來進(jìn)行操作,外部循環(huán)控制列,內(nèi)部循環(huán)遍歷行,或者外部循環(huán)控制行,內(nèi)部循環(huán)遍歷列。當(dāng)逐行或者逐列掃描足夠快的時候,人眼就會因視覺暫存而看到動態(tài)點亮的畫面。Arduino之LCD顯示電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心楊彬young_being@LCD屏基本概念A(yù)rduino之LCD由灰色的排列,非常小的灰色像素組成根據(jù)分辨率可分為1602、2004、12864等規(guī)格低電壓、低功耗、平板結(jié)構(gòu)、顯示信息大、壽命長等特點LCD1602引腳介紹Arduino之LCD注:VDD要求4.5-5.5V,所有數(shù)據(jù)口均為5VTTL電平。LCD1602引腳介紹Arduino之LCD注:VDD要求4.5-5.5V,所有數(shù)據(jù)口均為5VTTL電平。RS端口高代表數(shù)據(jù)選擇、低代表指令選擇LCD1602引腳介紹Arduino之LCD注:VDD要求4.5-5.5V,所有數(shù)據(jù)口均為5VTTL電平。RS端口高代表數(shù)據(jù)選擇、低代表指令選擇RW端高代表寫數(shù)據(jù)/指令,低代表讀數(shù)據(jù)指令LCD1602引腳介紹Arduino之LCD注:VDD要求4.5-5.5V,所有數(shù)據(jù)口均為5VTTL電平。RS端口高代表數(shù)據(jù)選擇、低代表指令選擇RW端高代表寫數(shù)據(jù)/指令,低代表讀數(shù)據(jù)指令E端口為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令LCD1602指令碼Arduino之LCD根據(jù)需求寫入不同指令或者數(shù)據(jù)LCD1602指令碼Arduino之LCD根據(jù)需求寫入不同指令或者數(shù)據(jù)指令主要用于設(shè)置光標(biāo)、顯示模式等LCD1602指令碼Arduino之LCD根據(jù)需求寫入不同指令或者數(shù)據(jù)指令主要用于設(shè)置光標(biāo)、顯示模式等數(shù)據(jù)則會被顯示在屏幕上LCD1602地址映射Arduino之LCD00~0F第一行,40~4F為第二行LCD1602地址映射Arduino之LCD00~0F第一行,40~4F為第二行10~27和50~67為緩沖區(qū)LCD1602地址映射Arduino之LCD00~0F第一行,40~4F為第二行10~27和50~67為緩沖區(qū)指令格式為:0X80+地址碼LCD1602寫操作時序Arduino之LCD1.將RS端配置為數(shù)據(jù)/指令選擇,即高/低電平digitalWrite(rs,HIGH/LOW)LCD1602寫操作時序Arduino之LCD1.將RS端配置為數(shù)據(jù)/指令選擇,即高/低電平digitalWrite(rs,HIGH/LOW)2.將RW控制端配置為寫操作,即低電平digitalWrite(rw,LOW)LCD1602寫操作時序Arduino之LCD1.將RS端配置為數(shù)據(jù)/指令選擇,即高/低電平digitalWrite(rs,HIGH/LOW)2.將RW控制端配置為寫操作,即低電平digitalWrite(rw,LOW)3.將數(shù)據(jù)或命令送達(dá)數(shù)據(jù)線上LCD1602寫操作時序Arduino之LCD1.將RS端配置為數(shù)據(jù)/指令選擇,即高/低電平digitalWrite(rs,HIGH/LOW)2.將RW控制端配置為寫操作,即低電平digitalWrite(rw,LOW)3.將數(shù)據(jù)或命令送達(dá)數(shù)據(jù)線上4.給E端口一個高脈沖,將命令或數(shù)據(jù)送至液晶顯示屏digitalWrite(en,HIGH)ArduinoLiquidCrystal庫函數(shù)Arduino之LCD定義LCD接口——LCD=LiquidCrystal(rs,en,d4,d5,d6,d7)ArduinoLiquidCrystal庫函數(shù)Arduino之LCD定義LCD接口——LCD=LiquidCrystal(rs,en,d4,d5,d6,d7)LCD.begin(16,2) //指定顯示屏為16列*2行LCD.clear() //清除LCD屏幕上的內(nèi)容,并將光標(biāo)置于左上角LCD.setCursor(3,1) //將光標(biāo)設(shè)置在第二行第四列處LCD.write(0) //向當(dāng)前光標(biāo)處寫入數(shù)字0LCD.print(“helloworld”)//在當(dāng)前光標(biāo)處顯示字符串Arduino之LCDLCD顯示實驗電路連接Arduino之LCDLCD顯示實驗電路連接Arduino之LCD程序內(nèi)容Arduino之LCD程序內(nèi)容Arduino之LCD程序內(nèi)容Arduino之LCD程序內(nèi)容Arduino之LCD程序內(nèi)容Arduino之模擬IO電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之模擬IO數(shù)字IO與模擬IO的區(qū)別數(shù)字IO只有High、Low兩種狀態(tài)以ArduinoUNO5V參考電壓為例High-5V高電平Low–0V低電平模擬IO是0-5V之間的任意值A(chǔ)rduino之模擬IO數(shù)字IO與模擬IO的區(qū)別數(shù)字IO口可設(shè)定輸入輸出模擬IO口的輸入輸出是固定的以ArduinoUNO為例A0-A5為模擬IO輸入口3,5,6,9,10,11為模擬IO輸出口模擬IO輸入模擬IO輸出Arduino之模擬IO模擬IO的輸入模擬IO的輸入引腳帶有10bitADC0-5V模擬電壓0-1023整數(shù)0V0;5V1023;analogRead(pin)函數(shù)pin為被讀取的引腳編號pin必須為模擬IO的輸入引腳讀取pin的輸入電壓并轉(zhuǎn)換為數(shù)字信號返回數(shù)字信號,即0-1023之間的整數(shù)
analogRead(A0):讀入引腳A0的模擬電壓,轉(zhuǎn)化為數(shù)字信號Arduino之模擬IO模擬IO的輸出模擬IO輸出沒有DAC功能脈沖寬度調(diào)制PWM通過數(shù)字方式獲得模擬結(jié)果的技術(shù)表現(xiàn)為占空比可變的脈沖矩形波Arduino的PWM周期約為2ms注意:PWM是數(shù)字信號,僅有0和1兩種狀態(tài)Arduino之模擬IOLED亮燈實驗視覺暫留效應(yīng)占空比為1LED100%亮度5V模擬電壓
占空比為0.5LED50%亮度2.5V模擬電壓
Arduino之模擬IO模擬IO的輸出通過輸出PWM達(dá)到模擬信號的效果analogWrite(pin,value)函數(shù)pin為模擬IO輸出引腳value控制PWM占空比,取值范圍0-2550%占空比value=050%占空比value=127100%占空比value=255
Arduino之模擬IO1.讀取引腳A0的模擬輸入電壓2.將數(shù)值0-1023等比映射至0-2553.在9號引腳輸出PWM波控制LED亮度LED亮燈實驗代碼Arduino之模擬IOLED亮燈實驗實驗流程analogRead函數(shù)讀取模擬輸入值map函數(shù):0-10230-255analogWrite函數(shù)輸出PWM波控制LEDArduino之搖桿電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之搖桿雙軸按鍵搖桿模塊也叫游戲搖桿、控制桿傳感器,經(jīng)常用作航模遙控,游戲手柄。搖桿模塊由兩個高精度電位計和一個按鍵開關(guān)構(gòu)成,用于控制鍵盤等,可以自由地控制方向。Arduino之搖桿工作原理撥動搖桿,阻值發(fā)生變化,對應(yīng)的X/Y電壓值也發(fā)生變化,而用力按下?lián)u桿就會觸發(fā)按鍵按下,對應(yīng)的SW信號變?yōu)榈碗娖?。GND:接地VCC:供電VRx:X軸電壓Vry:Y軸電壓SW:Z軸開關(guān)Arduino之搖桿電路連接Arduino之搖桿代碼編寫啟用上拉電阻、初始化串口模擬讀取X軸電壓模擬讀取Y軸電壓讀取Z軸開關(guān)狀態(tài)Arduino之PWM電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之PWMPWM簡介脈沖寬度調(diào)制PWM通過數(shù)字方式獲得模擬結(jié)果的技術(shù)在時域上表現(xiàn)為高低變化的矩形脈沖PWM是數(shù)字信號,僅有0/1兩種狀態(tài)Arduino之PWMPWM參數(shù)幅度以ArduinoUNO為例1代表5V高電平0代表0V低電平周期Arduino的PWM周期約為2ms占空比脈沖寬度占整個周期百分比占空比為1,保持高電平占空比為0.5,高低電平均勻切換Arduino之PWMArduino輸出PWM輸出引腳只有模擬IO可以輸出PWM信號analogWrite(pin,value)函數(shù)pin為模擬IO輸出引腳value控制占空比,取值范圍0-2550%占空比,value=050%占空比,value=127100%占空比,value=255PWM應(yīng)用-SPWM用等幅不等寬的脈沖來代替一個正弦波將正弦波在時域等間隔劃分,脈沖寬度按正弦規(guī)律變化正弦波幅度為0時,脈沖占空比為0;幅度為1時,占空比為1Arduino之PWMPWM應(yīng)用-SPWM根據(jù)面積等效原理,SPWM的平均電壓接近正弦曲線脈沖越精確,切換頻率越高,曲線越平滑Arduino之PWMArduino之蜂鳴器電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之蜂鳴器蜂鳴器計算機(jī)行業(yè)(主板蜂鳴器)打印機(jī)(控制板蜂鳴器)報警器(警報蜂鳴器)電子玩具(音樂蜂鳴器)汽車電子(車載蜂鳴器)……Arduino之蜂鳴器蜂鳴器分類——構(gòu)造方式壓電式蜂鳴器、電磁式蜂鳴器Arduino之蜂鳴器蜂鳴器分類——驅(qū)動方式有源蜂鳴器、無源蜂鳴器Arduino之蜂鳴器有源蜂鳴器引腳長度不同,塑封無源蜂鳴器引腳長度相同,能夠看到電路板有源蜂鳴器無源蜂鳴器Arduino之蜂鳴器Tone(pin,frequency,duration)pin:輸出引腳Frequency:輸出頻率(單位Hz)Duration:聲音持續(xù)時間(單位ms)noTone(pin)pitches.hArduino之蜂鳴器電路連接——無源蜂鳴器Arduino之蜂鳴器代碼編寫——無源蜂鳴器不同音調(diào)對應(yīng)的頻率樂譜的音調(diào)樂譜的節(jié)拍控制程序Arduino之電機(jī)電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之電機(jī)電機(jī)簡介電機(jī)又稱電動機(jī)、馬達(dá)實現(xiàn)電能轉(zhuǎn)換和傳遞的電磁裝置產(chǎn)生驅(qū)動轉(zhuǎn)矩,作為機(jī)械的動力源電機(jī)的分類工作電源:直流、交流、交直流電機(jī)用途:直流電機(jī)、伺服電機(jī)、步進(jìn)電機(jī)Arduino之電機(jī)SG90電機(jī)簡介伺服電機(jī)工作在直流電壓下工作原理將電壓信號轉(zhuǎn)換為轉(zhuǎn)矩和轉(zhuǎn)速內(nèi)置電路對輸出軸進(jìn)行角度反饋可以控制模型運行方向,又稱舵機(jī)Arduino之電機(jī)SG90電機(jī)工作原理角度控制線脈沖寬度決定輸出軸的角度以180°舵機(jī)為例1.5ms脈沖長度90°(中性位置)小于1.5ms更接近0°大于1.5ms更接近180°脈沖寬度不變轉(zhuǎn)軸角位置不變
長度可變的脈沖信號:PWM波Arduino之電機(jī)直流電機(jī)工作原理正負(fù)極兩根引線連接電源,電機(jī)轉(zhuǎn)動引線交換,反向旋轉(zhuǎn)平均電壓決定轉(zhuǎn)速PWM占空比越高,轉(zhuǎn)速越快H橋電路無需交換引線,控制旋轉(zhuǎn)方向Q1,Q4打開,左引線接電源Q2,Q3打開,右引線接電源電機(jī)正轉(zhuǎn)電機(jī)反轉(zhuǎn)Arduino之電機(jī)PWM簡介脈沖寬度調(diào)制PWM表現(xiàn)為占空比可變的脈沖矩形波通過數(shù)字方式獲得模擬結(jié)果的技術(shù)Arduino的PWM周期約為2msanalogWrite(pin,value)函數(shù)pin為模擬IO輸出引腳value控制占空比,取值范圍0-255注意:PWM是數(shù)字信號,僅有0和1兩種狀態(tài)Arduino之電機(jī)電機(jī)控制實驗實驗器材ArduinoUNO開發(fā)板電位器SG90舵機(jī)面包板以及杜邦線若干電路連接電機(jī)VCC接5V直流電電位器輸出接模擬輸入A0引腳電機(jī)輸出軸接數(shù)字IO7號引腳Arduino之電機(jī)1.讀取引腳analogPin的模擬輸入電壓2.將數(shù)值0-1023等比映射至0-2553.在7號引腳輸出PWM波控制電機(jī)角度電機(jī)控制實驗代碼Arduino之電機(jī)電機(jī)控制實驗實驗流程電位器控制輸入電壓值analogRead函數(shù)讀取模擬輸入值map函數(shù):0-10230-255analogWrite函數(shù)輸出PWM波控制電機(jī)Arduino之電機(jī)電機(jī)控制實驗實驗結(jié)果電位器控制模擬輸入電壓Arduino等比例輸出PWM波PWM波占空比改變電機(jī)角度改變
Arduino之傳感器電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之傳感器Arduino作品組成模塊實現(xiàn)功能傳感器傳感器(transducer/sensor)是能夠檢測外部物理量變化的裝置。器件參數(shù)測量范圍溫度:0~50℃濕度:20%~90%RH誤差溫度:±2℃濕度:±5%RHRelativeHumidity:相對濕度DHT11溫濕度傳感器器件管腳①:VDD
給DHT11供電②:DATA
數(shù)據(jù)傳輸
通訊同步③:NC
懸空④:GND
接地DHT11溫濕度傳感器①②③④DHT11溫濕度傳感器DHT11內(nèi)部結(jié)構(gòu)電阻式測濕元件濕度越高,電極間的電阻越小DHT11溫濕度傳感器DHT11內(nèi)部結(jié)構(gòu)NTC測溫元件溫度越高,電極間的電阻越小DHT11溫濕度傳感器DHT11內(nèi)部結(jié)構(gòu)高性能8位單片機(jī)模數(shù)轉(zhuǎn)換輸出帶有溫濕度的數(shù)字信號DHT11數(shù)據(jù)傳輸原理采用單總線協(xié)議與單片機(jī)通信DHT11溫濕度傳感器DHT11數(shù)據(jù)傳輸原理單片機(jī)發(fā)送開始信號DHT11溫濕度傳感器單片機(jī)發(fā)送開始信號DHT11數(shù)據(jù)傳輸原理DHT11傳輸數(shù)據(jù)8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和DHT11溫濕度傳感器DHT11傳輸數(shù)據(jù)DHT11溫濕度傳感器DHT11與Arduino連接VDD連接至3.3V電源口DATA連接到數(shù)字口的任意一個NC空接GND連接到接地口DHT11溫濕度傳感器DHT11程序?qū)崿F(xiàn)添加DHT庫函數(shù)用法#include<DHT.h>:加載DHT庫DHTTHSensor(6,DHT11):設(shè)置DATA連接引腳及傳感器型號THSnsor.begin():開啟DHT11的數(shù)據(jù)通信THSensor.readTemperature():讀取溫度數(shù)據(jù)THSensor.readHumidity():讀取濕度數(shù)據(jù)Arduino之超聲波測距電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之超聲波測距0Tt距離(s)=聲速(v)
×?xí)r間(T)/2距離(s)Arduino之超聲波測距超聲波模塊性能參數(shù):使用電壓:DC5V
靜態(tài)電流:小于2mA
高電平輸出:+5V
低電平輸出:0V
感應(yīng)角度:不大于15度 探測距離:2cm-450cm
精度:0.3cm引腳定義:Vcc:5V供電端
Trig:觸發(fā)信號端
Echo:回響信號輸出端
Gnd:供電接地端Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距距離(s)=高電平持續(xù)時間(T)×聲速(v)
/2Arduino之超聲波測距Arduino之超聲波測距pulseln():檢測引腳的高低電平的脈沖寬度說明:讀取引腳上脈沖信號(高電平或低電平)的寬度。語法:pulseln(pin,value);
pulseln(pin,value,timeout);
參數(shù)pin:要讀取脈沖寬度的引腳序號
參數(shù)value:要讀取寬度的脈沖的形式,高/低電平脈沖參數(shù)timeout:超時時間,Arduino在超時時間timeout內(nèi)沒有讀到
脈沖信號,則該函數(shù)返回值為0返回值:
脈沖持續(xù)時間長,時間單位為微秒Arduino之超聲波測距高級IO控制tone():產(chǎn)生固定頻率的方波noTone():停止tone()觸發(fā)產(chǎn)生的方波pulseIn():檢測引腳脈沖寬度Arduino之超聲波測距tone():產(chǎn)生固定頻率的方波說明:
產(chǎn)生固定頻率的方波(占空比為50%),用來控制蜂鳴器等進(jìn)行
發(fā)聲語法:tone(pin,frequency);tone(pin,frequency,duration);
參數(shù)pin:要輸出方波(發(fā)聲)的引腳序號
參數(shù)frequency:輸出方波(發(fā)聲)的頻率,單位為Hz
參數(shù)duration:輸出方波(發(fā)聲)的時長,單位為微秒返回值:無返回值A(chǔ)rduino之超聲波測距noTone():停止tone()觸發(fā)產(chǎn)生的方波輸出說明:
用來停止函數(shù)tone()產(chǎn)生的方波輸出
(注:如果需要多個引腳發(fā)聲,需要在調(diào)用函數(shù)tone()之前,通
過調(diào)用noTone()停止當(dāng)前的發(fā)聲)語法:noTone(pin);
參數(shù)pin:要停止tone()方波(發(fā)聲)的引腳序號返回值:無返回值A(chǔ)rduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距Arduino之超聲波測距
≈雙程時間(us)/58.8超聲波測距原理距離(cm)=(雙程時間(us)/1000000)×速度(340m/s)/2×100Arduino之時鐘芯片DS1302電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之時鐘芯片DS1302Arduino時鐘芯片DS1302內(nèi)含一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM實時時鐘/日歷電路提供秒、分、時、日、星期、月、年的信息通過串行三線接口與單片機(jī)通信功耗低設(shè)置時間讀取時間器件管腳①主電源供電電壓2.0~5.5V②32.768KHz
晶振管腳③同②④接地管腳Arduino之時鐘芯片DS1302⑤復(fù)位管腳⑥數(shù)據(jù)輸入/輸出引腳⑦串行時鐘⑧備用電源Arduino之時鐘芯片DS1302DS1023的地址字節(jié)(控制字節(jié))控制字節(jié)總是從最低位開始傳輸位6:操作的寄存器是RAM(取1)或時鐘寄存器(取0)位0:進(jìn)行讀(取1)或?qū)?取0)操作操作單元地址Arduino之時鐘芯片DS1302
地址字節(jié)數(shù)據(jù)字節(jié)Arduino之時鐘芯片DS1302
地址字節(jié)數(shù)據(jù)字節(jié)Arduino之時鐘芯片DS1302DS1302內(nèi)部寄存器寄存器名稱READWRITEBIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0RANGE秒寄存器81h80hCH10SecondsSeconds00-59分寄存器83h82h10MinutesMinutes00-59小時寄存器85h84h010HourHour1-12/
0-23日寄存器87h86h0010DateDate1-31月寄存器89h88h00010MonthMonth1-12星期寄存器8Bh8Ah00000Day1-7年寄存器8Dh8Ch10YearYear00-99寫保護(hù)寄存器8Fh8EhWP0000000-Arduino之時鐘芯片DS1302DS1302時鐘模塊與Arduino連接VCC連接至3.3V或5V電源口CLK、DAT、RST連接到數(shù)字口的任意一個GND連接到接地口Arduino之時鐘芯片DS1302庫函數(shù)安裝Arduino之時鐘芯片DS1302程序?qū)崿F(xiàn)引腳設(shè)置初始化主體程序ThreeWiremyWire(4,5,2);RtcDS1302<ThreeWire>Rtc(myWire);Serial.begin(57600);Rtc.Begin();voidloop(){RtcDateTimenow=Rtc.GetDateTime();printDateTime(now);delay(10000);}Arduino之運動傳感器MPU6050電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心楊
彬Arduino之運動傳感器MPU6050MPU6050介紹全球首例整合性6軸運動處理組件集成了三軸加速度計、三軸陀螺儀,以及一塊可擴(kuò)展的數(shù)字運動處理器DMP免除了組合陀螺儀與加速度計時間軸之差的問題減少了大量的封裝空間Arduino之運動傳感器MPU6050運動傳感器應(yīng)用場景平衡車無人機(jī)智能手機(jī)手勢遙控(VR)慣導(dǎo)電子穩(wěn)像、光學(xué)穩(wěn)像Arduino之運動傳感器MPU6050MPU6050介紹MPU6050模塊引腳:VCC:5V供電端GND:供電接地端SCL:IIC通信協(xié)議的時鐘線SDA:IIC通信協(xié)議的數(shù)據(jù)線XDA:連接外部傳感器的IIC數(shù)據(jù)線XCL:連接外部傳感器的IIC時鐘線AD0:IIC從地址最低位INT:用于中斷模塊運行Arduino之運動傳感器MPU6050MPU6050介紹通過IIC通信協(xié)議進(jìn)行數(shù)據(jù)傳輸三軸陀螺儀→16位三軸角速度數(shù)據(jù)→俯仰角、橫滾角、偏航角→姿態(tài)三軸加速度計→16位三軸加速度數(shù)據(jù)→三軸速度、位移→位置Arduino之運動傳感器MPU6050MPU6050主要寄存器介紹0x1A:ConfigurationArduino之運動傳感器MPU6050MPU6050主要寄存器介紹0x1B:GyroscopeConfigurationArduino之運動傳感器MPU6050MPU6050主要寄存器介紹0x1C:AccelerometerConfigurationArduino之運動傳感器MPU6050MPU6050主要寄存器介紹0x3B-0x40:AccelerometerMeasurements
Arduino之運動傳感器MPU6050MPU6050主要寄存器介紹0x43-0x48:GyroscopeMeasurements
Arduino之運動傳感器MPU6050IIC通信協(xié)議介紹I2C總線具有兩根雙向信號線,一根是數(shù)據(jù)線SDA,另一根是時鐘線SCLIIC總線上可以掛很多設(shè)備:多個主設(shè)備,多個從設(shè)備(外圍設(shè)備)每個接到I2C總線上的器件都有唯一的地址Arduino之運動傳感器MPU6050IIC通信協(xié)議介紹時序介紹Arduino之運動傳感器MPU6050Arduino控制MPU6050MPU6050模塊與Arduino開發(fā)板連接方式:VCC→開發(fā)板5V電源端GND→開發(fā)板接地端SCL→開發(fā)板A5端口SDA→開發(fā)板A4端口Arduino之運動傳感器MPU6050Arduino控制MPU6050Arduino自帶Wire庫函數(shù)介紹Arduino之運動傳感器MPU6050Arduino控制MPU6050配置濾波器配置角速度量程配置加速度量程讀取三軸加速度數(shù)據(jù)讀取三軸角速度數(shù)據(jù)打印信息MPU6050在IIC總線中的地址一般為0x68Arduino之運動傳感器MPU6050Arduino控制MPU6050Arduino之藍(lán)牙模塊電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之藍(lán)牙藍(lán)牙簡介一種短距離無線通訊技術(shù)無線電波替換電纜藍(lán)牙技術(shù)具備成本低、功耗低、體積小、通信距離短等技術(shù)特性“藍(lán)牙”技術(shù)的目的是使特定的移動電話、便攜式電腦以及各種便攜式通信設(shè)備的主機(jī)之間在近距離內(nèi)實現(xiàn)無縫的資源共享Arduino之藍(lán)牙模塊參數(shù)特點引出接口包括:VCC——電源GND——地TXD——藍(lán)牙模塊信息發(fā)送端RXD——藍(lán)牙模塊信息接收端EN——使能端,當(dāng)此引腳懸空或連接到3.3V時,模塊使能。如果此引腳連接到GND,模塊將被禁用STATE——狀態(tài)輸出腳,當(dāng)模塊未連接到任何設(shè)備時,此引腳為低電平;當(dāng)模塊成功配對時,此引腳為高電平,單片機(jī)可通過該腳判斷藍(lán)牙是否已經(jīng)連接BT04A實物圖Arduino之藍(lán)牙模塊參數(shù)特點發(fā)射功率:4dBm最大通信距離:10m板載LED燈指示藍(lán)牙連接狀態(tài),閃爍表示沒有藍(lán)牙連接,常亮表示藍(lán)牙已連接并打開了端口工作電壓3.6~6V,通信電平3.3V,未配對時電流約30mA,配對后約10mA在未建立藍(lán)牙連接時,支持通過AT指令設(shè)置波特率、名稱、配對密碼,設(shè)置的參數(shù)掉電保存,藍(lán)牙連接之后自動切換到透傳模式BT04A實物圖Arduino之藍(lán)牙模塊藍(lán)牙模塊與Arduino連接硬件準(zhǔn)備BT04A藍(lán)牙模塊ArduinoUNO開發(fā)板燒寫線杜邦線電路連接VCC→Arduino的5VGND→Arduino的GNDTXD→Arduino的D3RXD→Arduino的D2Arduino之藍(lán)牙模塊藍(lán)牙模塊與Arduino連接線路連接成功后,藍(lán)牙模塊板載LED閃爍:藍(lán)牙配對成功后,藍(lán)牙模塊板載LED常亮:Arduino之藍(lán)牙模塊Arduino通過藍(lán)牙模塊與安卓手機(jī)通信首先安裝手機(jī)APP,有多種選擇,大家可以根據(jù)自己的喜好下載,這里我們以Arduinobluetoothcontroller為例(下方提供了安裝包)Arduinobluetoothcontroller下載:Arduino之藍(lán)牙模塊Arduino通過藍(lán)牙模塊與安卓手機(jī)通信程序說明Arduino之藍(lán)牙模塊Arduino通過藍(lán)牙模塊與安卓手機(jī)通信手機(jī)與藍(lán)牙模塊配對:打開Arduinobluetoothcontroller選擇”BT04A”進(jìn)行配對輸入配對密碼‘1234’選擇’Controllermode’Arduino之藍(lán)牙模塊Arduino通過藍(lán)牙模塊與安卓手機(jī)通信步驟三:藍(lán)牙連接點擊右上角“設(shè)置”選項把前后左右四個按鈕的值分別設(shè)置為:f,b,l,rArduino之藍(lán)牙模塊Arduino通過藍(lán)牙模塊與安卓手機(jī)通信演示效果:Arduino之GSM模塊電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心Arduino之GSMArduinoGSM全球移動通信系統(tǒng)(GlobalSystemforMobileCommunications)主要采用TDMA(時分多址)和FDMA(碼分多址)第二代(2G)移動電話系統(tǒng)Arduino之GSM模塊ArduinoGSM模塊具有發(fā)送SMS短信,語音通話,GPRS數(shù)據(jù)傳輸?shù)然贕SM網(wǎng)絡(luò)進(jìn)行通信的所有基本功能GSM模塊加上鍵盤、顯示屏和電池,就是一部簡易手機(jī)可使用單片機(jī)通過串口與GSM模塊通信,使用標(biāo)準(zhǔn)的AT命令來控制GSM模塊實現(xiàn)各種無線通信功能SIM868SIM800CSIM900ArduinoGSMshieldArduino之GSM模塊ArduinoGSM庫ArduinoIDE的版本需要為1.0.4及其之后的版本使用的GSM模塊需為ArduinoGSMshield使用時需要加上頭文件:
#include<GSM.h>該函數(shù)庫能夠執(zhí)行GSM電話的大部分操作:撥打和接收語音呼叫、發(fā)送和接收短信,以及通過GPRS網(wǎng)絡(luò)連接到互聯(lián)網(wǎng)ArduinoGSMshieldArduino之GSM模塊ArduinoGSM庫由于該庫能夠?qū)崿F(xiàn)多種類型的功能,因此其分為許多不同的類GSM類負(fù)責(zé)無線電調(diào)制解調(diào)器的命令,并在GSM基礎(chǔ)設(shè)施中注冊系統(tǒng),所有GSM/GPRS項目都需要包括此類的對象,如GSM
gsmacss·gsmacss.begin()連接到SIM卡上標(biāo)識的GSM網(wǎng)絡(luò)·gsmacss.shutdown()關(guān)閉調(diào)制解調(diào)器,與GSM網(wǎng)絡(luò)斷開連接GSMVoiceCall類負(fù)責(zé)語音呼叫處理,如GSMVoiceCallvcs
·vcs.ready()返回語音命令的執(zhí)行狀態(tài)·vcs.voiceCall(phoneNumber)撥打電話·vcs.hangCall()掛斷電話Arduino之GSM模塊ArduinoGSM庫GSM_SMS類負(fù)責(zé)管理發(fā)送/接收短信,如GSM_SMSsms·sms.beginSMS(phonenumber)識別要發(fā)送短信的電話號碼·sms.print(message)編輯需要發(fā)送的短信內(nèi)容·sms.endSMS()通知調(diào)制解調(diào)器短信已編輯完成并將其發(fā)送出去GPRS類用于連接到互聯(lián)網(wǎng)GSMClient類包括針對客戶端的實現(xiàn),類似于以太網(wǎng)和WIFI庫GSMSever類包括類似于以太網(wǎng)和WiFi庫的服務(wù)器實現(xiàn)一些其他的類:GSMModem、GSMScanner、GSMPIN、GSMBand等Arduino之GSM模塊ArduinoSIM800C開發(fā)板SIM800C開發(fā)板工作頻率為850/900/1800/1900MHz,可以低功耗實現(xiàn)語音、SMS和數(shù)據(jù)信息的傳輸通過AT命令控制
,如:·AT查詢是否與模塊建立連接·AT+CSQ查詢信號強度·AT+CPIN?查詢是否檢測到SIM卡·AT+COPS?查詢SIM卡運營商
·……Arduino之GSM模塊ArduinoSIM800C開發(fā)板SIM800C開發(fā)板兩個LED指示燈:一個是網(wǎng)絡(luò)指示燈,一個電源指示燈。
·電源指示燈通電后常亮·網(wǎng)絡(luò)指示燈快閃(1秒滅1秒亮),表示該模塊正在運行,但尚未建立與蜂窩網(wǎng)絡(luò)的連接
·2秒滅1秒亮→請求的GPRS數(shù)據(jù)連接已激活·3秒滅1秒亮→模塊與蜂窩網(wǎng)絡(luò)建立了聯(lián)系,可以發(fā)送/接收語音/SMS
使用Arduino和SIM800CGSM模塊進(jìn)行電話呼叫實驗材料ArduinoUNO開發(fā)板SIM800CGSM模塊杜邦線燒寫線SIM卡usb線(GSM模塊供電)實驗使用Arduino和SIM800CGSM模塊進(jìn)行電話呼叫電路連接Usb線接SIM800C模塊micro-b口供電這里我們通過SoftwareSerial庫使用D2、D3引腳來模擬串口通信實驗SIM800C模塊ArduinoUNOUART的RXDD2UART的TXDD3UART的VMCU5VUART的GNDGND使用Arduino和SIM800CGSM模塊進(jìn)行電話呼叫程序說明實驗使用Arduino和SIM800CGSM模塊進(jìn)行電話呼叫實驗效果
實驗單片機(jī)之簡介電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心單片機(jī)之簡介Arduino模塊編程應(yīng)用-幫助同學(xué)快速入門,以經(jīng)典系統(tǒng)構(gòu)建為例,初步建立系統(tǒng)設(shè)計和創(chuàng)新能力。單片機(jī)結(jié)構(gòu)與運行機(jī)制-幫助同學(xué)建立程序與硬件、C語言與單片機(jī)的關(guān)系,培養(yǎng)系統(tǒng)設(shè)計和實現(xiàn)能力。單片微型計算機(jī)(Single-ChipMicrocomputer)組成微型計算機(jī)的各功能部件中央處理單元(CPU)、一定容量的隨機(jī)存儲器(RAM)和只讀存儲器(ROM)、IO接口電路、定時器/計數(shù)器以及串行口等制作在一塊芯片中的計算機(jī)。微控制器MCU(MicroControllerUnit)特點:結(jié)構(gòu)簡單、控制功能強、可靠性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020公路通信及電力管道設(shè)計規(guī)范
- 2025商場地七夕情人節(jié)露營聯(lián)誼相親交友游園會(七夕露營聯(lián)誼派對主題)活動策劃方案-63P
- 語文人教版七下《貓》教學(xué)設(shè)計之四
- 小學(xué)奧數(shù)思維訓(xùn)練 數(shù)論專項:物不知數(shù)問題(含解析)
- 2025年光伏運行試題及答案解析
- 2025年安全知識競賽題庫及答案
- 互聯(lián)網(wǎng)生活服務(wù)平臺政策法規(guī)解讀考核試卷
- 市場細(xì)分在刀剪產(chǎn)品競爭中的優(yōu)勢考核試卷
- 企業(yè)價值觀的內(nèi)涵與外延探討考核試卷
- 財務(wù)戰(zhàn)略中的現(xiàn)金流量管理優(yōu)化考核試卷
- 醫(yī)院服務(wù)禮儀培訓(xùn)_醫(yī)護(hù)禮儀培訓(xùn) 課件
- 原地面測量記錄
- fragstat指數(shù)歸納
- 脂肪醇聚氧乙烯醚型非離子表面活性劑的生產(chǎn)技術(shù)
- 建設(shè)管理部的工作職責(zé)
- 招標(biāo)代理機(jī)構(gòu)從業(yè)人員考試模擬試題及答案
- 湘教版分式的乘法和除法教案
- 固體火箭發(fā)動機(jī)制造工藝
- 電機(jī)潛在失效模式及后果分析
- GB_T 12736-2021 輸送帶 機(jī)械接頭強度的測定 靜態(tài)試驗方法(高清-現(xiàn)行)
- 慕安德烈文集
評論
0/150
提交評論