機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)PPT完整全套教學(xué)課件_第1頁
機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)PPT完整全套教學(xué)課件_第2頁
機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)PPT完整全套教學(xué)課件_第3頁
機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)PPT完整全套教學(xué)課件_第4頁
機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩350頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機最小系統(tǒng)及其搭建機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)第一章ch01單片機最小系統(tǒng)及其搭建.pptxch02單片機并行IO端口應(yīng)用——機器人信息顯示.pptxch03定時器和中斷系統(tǒng)——機器人速度測量與控制.pptxch04單片機計時與鍵盤接口技術(shù)——機器人計時.pptxch05AD、DA轉(zhuǎn)換接口與漫游機器人制作.pptxch06SPI與溫濕度檢測機器人的制作.pptxch07綜合比賽項目——“機器人高鐵游中國”比賽.pptxch08綜合比賽項目——“機器人智能消防”比賽.pptx全套可編輯PPT課件01AT89S52單片機最小系統(tǒng)的搭建時鐘電路的搭建單片機指令的執(zhí)行需要用到時鐘信號,晶振(晶體振蕩器)就是用來為單片機提供基本時鐘信號的。時鐘頻率越高,單片機的運行速度就越快。每個單片機都有它能夠接受的最高時鐘頻率。當(dāng)一個單片機系統(tǒng)中有多個芯片需要時鐘信號時,它們通常共用一個晶振,便于各部分保持同步。晶振通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時鐘頻率。AT89S52單片機最小系統(tǒng)的搭建復(fù)位電路的搭建復(fù)位電路的作用是讓單片機的程序重新執(zhí)行。在上電、斷電或者發(fā)生故障后都需要復(fù)位。復(fù)位電平需要持續(xù)兩個機器周期以上才有效,具體數(shù)值可以由復(fù)位的RC電路計算出時間常數(shù)后確定。AT89S52單片機使用的晶振振蕩頻率為12MHz,每個機器周期為1μs,因此需要持續(xù)2μs以上的高電平才能觸發(fā)復(fù)位。AT89S52單片機最小系統(tǒng)的搭建上電復(fù)位電路AT89系列單片機都是高電平復(fù)位的,通常在復(fù)位引腳RESET上連接一個電容到Vcc,再連接一個電阻接地,由此形成一個RC充放電回路,保證單片機在上電時RESET引腳上有足夠長的高電平時間,使得單片機能夠正常復(fù)位。AT89S52單片機最小系統(tǒng)的搭建按鍵復(fù)位電路按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個開關(guān),當(dāng)開關(guān)被按下時,電容放電,RESET引腳被拉到高電平。電容充電時會保持一段時間的高電平,從而使單片機復(fù)位。AT89S52單片機最小系統(tǒng)的搭建電子設(shè)計產(chǎn)品僅有硬件部分是無法完成所需工作的,需要軟件的配合才能實現(xiàn)預(yù)想的功能,所以需要將編寫好的程序下載到單片機中,這就需要下載電路,其原理圖如圖1.6所示。AT89S52單片機最小系統(tǒng)的搭建圖1.9所示為單片機最小系統(tǒng)的電源電路。AT89S52單片機最小系統(tǒng)的搭建面包板上搭建的電源電路如圖1.10所示。02用搭建的最小系統(tǒng)控制兩輪機器人運動任務(wù)1.1已將時鐘電路、復(fù)位電路、下載電路、電源電路和單片機綜合起來構(gòu)成的單片機最小系統(tǒng)搭建在面包板上。為了控制兩個電機,還需要在最小系統(tǒng)上增加兩個3Pin插針,并將3Pin插針根據(jù)所控制的機器人伺服電機的接口定義與單片機和相應(yīng)電源引腳連接。用搭建的最小系統(tǒng)控制兩輪機器人運動兩輪機器人伺服電機控制線的連接如圖1.11所示。用搭建的最小系統(tǒng)控制兩輪機器人運動機器人伺服電機的連接電路如圖1.12所示。用搭建的最小系統(tǒng)控制兩輪機器人運動將兩個電機的3Pin引腳插針分別插到面包板的左右兩邊。左電機中間紅線端用紅色導(dǎo)線接電源正極,左電機黑線端用黑色導(dǎo)線接地,左電機白線端用白色導(dǎo)線接單片機P10引腳。同理,右電機中間紅線端用紅色導(dǎo)線接電源正極,右電機黑線端用黑色導(dǎo)線接地,右電機白線端用白色導(dǎo)線接單片機P11引腳。用搭建的最小系統(tǒng)控制兩輪機器人運動單片機最小系統(tǒng)控制兩輪機器人運動搭建的完整電路可以參考圖1.13。用搭建的最小系統(tǒng)控制兩輪機器人運動注意:由于這里無法區(qū)分插針引腳的正極和負極,因此一定要注意正負極正確對接,即紅色對紅色,黑色對黑色,否則會立即損壞電源。在搭建電路的過程中要厘清思路,明白工作原理,學(xué)會分析電路,學(xué)會解決問題,多動手,勤動腦,要有鉆研精神,這是成為一名優(yōu)秀的軟硬件工程師所必需的基本素質(zhì)。用搭建的最小系統(tǒng)控制兩輪機器人運動編寫單片機最小系統(tǒng)控制兩輪機器人運動的程序單片機應(yīng)用系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩大部分組成,硬件系統(tǒng)是單片機應(yīng)用系統(tǒng)的基礎(chǔ),軟件系統(tǒng)則在硬件系統(tǒng)的基礎(chǔ)上對其資源進行合理有效地調(diào)配和使用,兩者需要共存才能實現(xiàn)控制功能。用搭建的最小系統(tǒng)控制兩輪機器人運動試一試修改程序,讓自己親手搭建好的機器人“聽從”指揮,使其加速、勻速、減速運動,也可以讓機器人按照規(guī)劃好的場地運動到達目的地。當(dāng)然,還可以進一步搭建更多的電路,將《機器人程序設(shè)計(C語言)》(第2版)教材中的一些案例完成,更深刻地體驗單片機電路設(shè)計的原理和思想。用搭建的最小系統(tǒng)控制兩輪機器人運動03擴展閱讀一個基本的MCS-51子系列單片機通常包括中央處理器(CPU)、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、特殊功能寄存器、定時/計數(shù)器、串行口、4個1/O端口和中斷系統(tǒng),各部分由內(nèi)部總線連接起來,從而實現(xiàn)數(shù)據(jù)通信。單片機的內(nèi)部結(jié)構(gòu)擴展閱讀本書主要以應(yīng)用最為廣泛的Atmel公司的89系列單片機AT89S52為研究對象進行研究和使用,其內(nèi)部基本組成框圖如圖1.14所示。擴展閱讀CPU主要由運算器和控制器組成,是單片機的控制核心。中央處理器(CPU)單片機內(nèi)部有時鐘電路,要實現(xiàn)振蕩器和時序功能需外接石英晶體和微調(diào)電容,產(chǎn)生時鐘脈沖序列,通常振蕩頻率選擇6MHz、12MHz或11.0592MHz。時鐘電路(振蕩器和時序OSC)數(shù)據(jù)存儲器(RAM)共256個存儲單元,通常使用低128個單元,用于存放可讀寫數(shù)據(jù),高128個單元被專用寄存器占用。數(shù)據(jù)存儲器(RAM)擴展閱讀程序存儲器(ROM)。2×16位定時/計數(shù)器。定時/計數(shù)器包含兩個16位的定時/計數(shù)器,可實現(xiàn)定時或計數(shù)功能。中斷系統(tǒng)。中斷系統(tǒng)包含8個中斷源、1個6向量兩級中斷結(jié)構(gòu)。并行I/O端口??删幊倘p工串口。全雙工串口可實現(xiàn)單片機與其他設(shè)備之間的串行數(shù)據(jù)通信。擴展閱讀04工程素質(zhì)和技能歸納①單片機最小系統(tǒng)的概念和原理圖的識別。②根據(jù)最小系統(tǒng)原理圖在面包板上搭建最小系統(tǒng)電路。③給最小系統(tǒng)電路下載測試程序,驗證系統(tǒng)的各部分是否工作正常。④總結(jié)并歸納單片機的內(nèi)部結(jié)構(gòu)和各引腳的功能。工程素質(zhì)和技能歸納謝謝觀看機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)單片機并行I/O端口應(yīng)用——機器人信息顯示機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)第二章01控制8個LED閃爍本任務(wù)要求通過教學(xué)板上的AT89S52單片機來控制8個LED閃爍,進而熟悉單片機并行I/O端口的使用及編程方法。本任務(wù)所需的元件包括:8個LED、8個1kΩ電阻和若干導(dǎo)線。在單片機的P2端口上分別接8個LED,編寫C語言源程序,并在編譯后下載到單片機中,即可實現(xiàn)控制8個LED閃爍的效果??刂?個LED閃爍控制8個LED閃爍AT89S52單片機控制8個LED閃爍的電路原理圖如圖2.1所示。8個LED的正極直接與+5V電源連接,負極則分別接8個1kΩ電阻,然后連接到單片機P2的8個端口上。電路中的電阻有兩個作用:一是限流,二是接到LED的負極以增加單片機端口的輸出電流,提高負載能力。當(dāng)P2端口被拉低為低電平,即輸出為O時,8個LED同時發(fā)光;反之,當(dāng)P2端口被拉高為高電平,即輸出為“1”時,8個LED同時不亮??刂?個LED閃爍舷意:本任務(wù)不用P1端口的原因是下載端口與Pl5、Pl6、PI7引腳相連,已在第1章搭建單片機最小系統(tǒng)時用過了。如果使用Pl端口控制LED,那么在搭建電路后將出現(xiàn)可執(zhí)行文件無法載入單片機的現(xiàn)象。為避免這種現(xiàn)象的發(fā)生,在下載可執(zhí)行文件時,P15、P16、P17引腳不能連接任何電路,這樣可執(zhí)行文件才能正常下載??刂?個LED閃爍控制8個LED閃爍搭建時,將8個LED并排插在面包板上,搭建后的實物圖如圖2.2所示。十六進制數(shù)Ox00轉(zhuǎn)化成二進制數(shù)為00000000,P2=0x00表示將00000000的值賦給P2端口的8個連接LED的引腳,P2端口的8個引腳被清零,即為低電平,就點亮了8個LED。十六進制數(shù)Oxff轉(zhuǎn)化成二進制數(shù)為11111111,P2=0xff表示將11111111的值賦給P2端口,P2端口的8個引腳被置1,即為高電平,就熄滅了8個LED??刂?個LED閃爍試一試修改程序?qū)崿F(xiàn)下面的燈光效果。①偶數(shù)燈先閃爍4次,奇數(shù)燈再閃爍4次,循環(huán)不止。②用8個LED構(gòu)建自己想要的模型,然后點亮。控制8個LED閃爍02流水燈控制主函數(shù)在開始時首先執(zhí)行P2=0xfe的賦初值操作,表示8個LED的初始狀態(tài)是連接P20引腳的LED亮,其他7個LED滅,再執(zhí)行delayms(150)函數(shù),延時150ms。然后進入大循環(huán),在大循環(huán)內(nèi)執(zhí)行“P2=_crol_(P2,1)”語句,將P2中存儲的二進制數(shù)循環(huán)左移1位,即由11111110變成11111101,結(jié)果就是被點亮的LED移動一位(向左還是向右要根據(jù)LED接線方式而定)。流水燈控制單片機的內(nèi)部結(jié)構(gòu)然后執(zhí)行delayms(150)函數(shù),延時150ms。P2循環(huán)向左移動實際上是并行端口P2對應(yīng)的寄存器向高位移動,最左的第8位補充到最右的第1位,這樣P2中的二進制數(shù)就形成循環(huán)移動。在大循環(huán)內(nèi)不斷執(zhí)行“P2=_crol_(P2,1)”和“delayms(150)”語句,表示被點亮的LED不斷地被移位,因此就可以看到LED被流動點亮的現(xiàn)象。流水燈控制單片機的內(nèi)部結(jié)構(gòu)試一試花樣流水燈:8個LED按預(yù)設(shè)的多種花樣變換顯示??梢匝h(huán)移動兩位間隔點亮LED,也可以讓8個LED先依次亮再依次滅。LED模擬交通燈:東西方向綠燈亮若干秒,黃燈閃爍5次后紅燈亮,紅燈亮后,南北方向由紅燈變?yōu)榫G燈,若干秒后南北方向黃燈閃爍5次后變?yōu)榧t燈,東西方向變綠燈,如此重復(fù)。完成LED模擬交通燈需要用到三種顏色的LED,這很容易從電子市場買到。另外,最好在面包板上將LED重新布局并搭建電路,讓交通燈看起來更貼近真實的效果。流水燈控制03數(shù)碼管顯示本任務(wù)介紹用AT89S52單片機并行1/O端口控制LED數(shù)碼管顯示數(shù)字和字母的方法,了解和掌握LED數(shù)碼管的編程控制技術(shù)。利用單片機的并行I/O端口控制1個1位八段共陰數(shù)碼管顯示數(shù)字和字符:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。顯示的方式是循環(huán)顯示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,每次顯示間隔時間為0.5s。本任務(wù)所需元件的清單包括:1個1位八段共陰數(shù)碼管、8個1kΩ電阻和若干導(dǎo)線。數(shù)碼管顯示LED數(shù)碼管(LEDSegmentDisplays)是一種半導(dǎo)體發(fā)光器件,其基本單元是LED。LED數(shù)碼管通過點亮內(nèi)部的LED來顯示數(shù)字或字符,所以LED數(shù)碼管顯示的清晰度與LED的亮度有著密切聯(lián)系。LED數(shù)碼管按段數(shù)可分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多1個小數(shù)點LED單元。本任務(wù)使用的數(shù)碼管是八段數(shù)碼管。八段數(shù)碼管實際上就是把8個LED封裝在一起組成“8”字和1個小數(shù)點。數(shù)碼管顯示LED數(shù)碼管簡介數(shù)碼管顯示圖2.3所示為八段數(shù)碼管實物圖。數(shù)碼管顯示圖2.4所示為八段數(shù)碼管引腳模型。數(shù)碼管顯示共陽數(shù)碼管的內(nèi)部結(jié)構(gòu)如圖2.5所示。數(shù)碼管顯示共陰數(shù)碼管把所有LED的陰極連接起來形成陰極公共端com,共陰數(shù)碼管的內(nèi)部結(jié)構(gòu)如圖2.6所示。數(shù)碼管顯示共陰數(shù)碼管與AT89S52單片機的電路連接如圖2.7所示。電路設(shè)計和搭建數(shù)碼管的陰極公共端com與AT89S52教學(xué)板的GND端連接,數(shù)碼管的a、b、c、d、e、f、g、Dp引腳分別與AT89S52教學(xué)板的P20、P21、P22、P23、P24、P25、P26、P27引腳相連,同時再分別接一個lkΩ的上拉電阻。數(shù)碼管顯示數(shù)碼管顯示八段數(shù)碼管顯示電路連接效果圖如圖2.8所示。數(shù)碼管顯示表2.1給出了共陰數(shù)碼管的顯示編碼。數(shù)碼管顯示表2.2給出了共陽數(shù)碼管的顯示編碼。04字符型液晶顯示(LED)模塊和廣告機器人的制作本任務(wù)的目的是使讀者掌握LCD1602模塊的顯示原理及編程方法。將LCD1602模塊接至教學(xué)板,編寫程序使其顯示兩行字符。本任務(wù)所需元器件包括:1塊LCD1602,兩排10pin等長排針,銅柱、螺母、螺釘若干。字符型液晶顯示(LED)模塊和廣告機器人的制作在智能電子產(chǎn)品中,LED數(shù)碼管只能用來顯示數(shù)字或者少量的字母,當(dāng)需要顯示全部英文字母、圖像或漢字時,必須選擇使用LCD。字符型LCD模塊是用于顯示字母、數(shù)字、符號等的點陣型LCD模塊,目前常用的有16字×1行、16字×2行、20字×2行和40字×2行等字符模組。每個顯示的字符由5×7或5×11點陣組成,點陣字符位之間有一個空格,點陣的間隔起到字符間距和行距的作用。字符型點陣式LCD模塊(LiquidCrystalDisplayModule),簡稱LCM。字符型液晶顯示(LED)模塊和廣告機器人的制作字符型LCD1602模塊簡介LCM雖然顯示的字數(shù)各不相同,但是都具有相同的輸入、輸出界面,其在現(xiàn)實生活中無處不在,已經(jīng)廣泛地應(yīng)用于各個領(lǐng)域。本任務(wù)以16字×2行(簡稱16×2)字符模組、每個字符由5×7點陣組成的LCD模塊為例,詳細介紹字符型LCD模塊的編程技術(shù)。通過介紹并實踐實際的LCD模塊控制程序,使讀者掌握字符型LCD模塊的程序設(shè)計方法,使LCD聽從指揮顯示出各種字符和信息,為產(chǎn)品設(shè)計增色添輝。字符型液晶顯示(LED)模塊和廣告機器人的制作字符型LCD1602模塊簡介①RS用于寄存器選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。②R/W用于讀/寫選擇,高電平時進行讀操作,低電平時進行寫操作。③E為使能信號端,實現(xiàn)LCD模塊與AT89S52的數(shù)據(jù)交互。字符型液晶顯示(LED)模塊和廣告機器人的制作D0~D7為8位雙向數(shù)據(jù)線。LCD模塊的基本操作功能與控制引腳設(shè)置如下。①讀狀態(tài)。②寫指令。③讀數(shù)據(jù)。④寫數(shù)據(jù)。字符型液晶顯示(LED)模塊和廣告機器人的制作字符型液晶顯示(LED)模塊和廣告機器人的制作LCD1602模塊內(nèi)部顯示地址如圖2.9所示。在LCD1602模塊內(nèi)部RAM顯示緩沖區(qū)地址中,00~0F表示LCD1602模塊的上一行的每個字符,40~4F對應(yīng)LCD1602模塊的下一行的每個字符,需要在相應(yīng)的RAM地址中寫入要顯示字符的ASCII代碼才能顯示。字符型液晶顯示(LED)模塊和廣告機器人的制作電路設(shè)計和搭建將兩排10pin等長排針插到AT89S52教學(xué)板的JP2接口上,并在另一端安裝好銅柱、螺母和螺釘。此LCD1602模塊是大灣教育自制的產(chǎn)品,接口方式與安裝位置完全匹配鷗鵬機器人系列,在使用過程中僅需對位安裝即可。此任務(wù)中的LCD1602模塊用5V電壓驅(qū)動,屏幕可顯示兩行(每行16個字符),不能顯示漢字,帶背光,內(nèi)置含128個字符的ASCII字符集字庫和并行接口。字符型液晶顯示(LED)模塊和廣告機器人的制作字符型液晶顯示(LED)模塊和廣告機器人的制作LCD1602模塊與安裝示意圖如圖2.10所示。試一試結(jié)合前面所學(xué)的知識,控制機器人運動,并在LCD1602模塊上用一行顯示機器人的運動狀態(tài),另一行顯示廣告的內(nèi)容。修改程序讓LCD1602模塊上下兩行滾動顯示或者左右時隱時現(xiàn)地移動顯示。字符型液晶顯示(LED)模塊和廣告機器人的制作05擴展閱讀1引腳:VSS為地電源。2引腳:VDD接5V正電源。3引腳:V0為液晶顯示器對比度調(diào)整端,當(dāng)接正電源時對比度最弱,當(dāng)接地電源時對比度最強。擴展閱讀4引腳:RS為寄存器選擇,當(dāng)高電平時選擇數(shù)據(jù)寄存器,當(dāng)?shù)碗娖綍r選擇指令寄存器。5引腳:R/W為讀寫信號線,當(dāng)高電平時進行讀操作,當(dāng)?shù)碗娖綍r進行寫操作。6引腳:E端為使能信號端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。擴展閱讀7~14引腳:D0~D7為8位雙向數(shù)據(jù)線。15~16引腳:空腳。擴展閱讀本章用到的教學(xué)板就是單片機最小系統(tǒng)板。自行設(shè)計和制作教學(xué)板是電子工程師必須具備的基本技能。這里使用Protel99SE軟件簡要介紹其PCB的設(shè)計過程。首先建立一個DDB文件,然后在DDB文件中新建電路圖設(shè)計項目SCH文件,繪制電路原理圖。將所需的元件放進SCH文件中,并設(shè)計元件的封裝、名稱、屬性等,再進行有效連線。擴展閱讀教學(xué)板的制作之后,在Documents目錄下,新建一個PCB文件,添加好封裝庫,將SCH文件導(dǎo)入PCB文件中,再合理調(diào)整元件位置,可以進行自動布線,也可以手動布線。在完成后,將電路圖用熱轉(zhuǎn)印紙打印出來,也可在覆銅板上焊接獲得。由于軟件自帶的庫元件不完全,因此可以制作自己的SCH元件庫,自己制作Protel99SE封裝。在應(yīng)用此類軟件時會遇到很多問題,需要花一定的時間學(xué)習(xí),可以查閱相關(guān)的參考資料。擴展閱讀Protel軟件主要在WindowsXP系統(tǒng)上使用,在Windows7、Windows8和Windows10上使用會出現(xiàn)一些問題,Protel軟件的原廠商Altium公司已經(jīng)推出了Protel系列的最新高端版本AltiumDesigner(簡稱AD),現(xiàn)在WindowsXP系統(tǒng)已停止更新,隨著Windows7、Windows8和Windows10的普及,電子產(chǎn)品開發(fā)系統(tǒng)將會越來越多地用到AD軟件。讀者可以嘗試去學(xué)習(xí)AltiumDesigner軟件的使用方法,然后將單片機最小系統(tǒng)制成板,控制機器人運動,從中享受學(xué)習(xí)的樂趣。擴展閱讀06工程素質(zhì)和技能歸納①AT89S52單片機并行I/O端口設(shè)置和流水燈設(shè)計編程。②8位LED數(shù)碼管的原理和單片機應(yīng)用編程。③LCD1602模塊的使用設(shè)置和顯示編程。④用LCD1602模塊顯示機器人運行信息的程序設(shè)計。⑤AT89S52單片機的并行I/O端口特性總表見表2.4。工程素質(zhì)和技能歸納工程素質(zhì)和技能歸納表2.4AT89S52單片機的并行I/O端口特性總表。謝謝觀看機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)定時器和中斷系統(tǒng)——機器人速度測量與控制機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)第三章01簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量數(shù)字編碼器用于測量機器人輪子的轉(zhuǎn)速。通過數(shù)字編碼器可以改善機器人的運動性能,如改善走迷宮或按照地圖路徑行走的機器人的運動性能。數(shù)字編碼器套件安裝在輪子的旁邊,可利用輪子上的小孔做周期性計數(shù)來測量輪子的轉(zhuǎn)速。簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器介紹簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器套件如圖3.1所示。簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量VDD端在上引腳,其引腳說明如圖3.2所示。簡易數(shù)字編碼器的測速原理數(shù)字編碼器由一個紅外發(fā)射器和一個紅外接收器組成,紅外發(fā)射器以7.8kHz的頻率發(fā)射紅外光。當(dāng)紅外光照射到前方遮擋物時將反射回來,通過紅外接收器檢測是否有紅外光反射回來,若有,則信號線引腳為低電平,若沒有,則信號線引腳為高電平??赏ㄟ^計數(shù)器統(tǒng)計傳回信號的下降沿個數(shù),若有n個下降沿,則說明輪子轉(zhuǎn)過了n個小孔。小車的輪子上有12個小孔,所以接收到12個下降沿表明輪子轉(zhuǎn)一圈。簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量數(shù)字編碼器測速原理圖如圖3.3所示。簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器在機器人小車上的安裝方式與左、右數(shù)字編碼器安裝效果如圖3.4~圖3.6所示。簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器、教學(xué)機器人電機信號引腳與C語言教學(xué)板引腳的連接說明如表3.1所示。簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量左、右數(shù)字編碼器與C語言教學(xué)板的電路連接如圖3.7所示。用簡易數(shù)字編碼器進行電機轉(zhuǎn)速的測量(1)定時/計數(shù)器的設(shè)置和中斷說明(2)簡易數(shù)字編碼器測量左、右電機轉(zhuǎn)速的程序簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量簡易數(shù)字編碼器的安裝和電機轉(zhuǎn)速的測量圖3.8所示為用簡易數(shù)字編碼器測量機器人小車左、右電機轉(zhuǎn)速的示意圖。02用PID控制算法控制小車速度在當(dāng)今大量應(yīng)用的工業(yè)控制器中,有半數(shù)以上采用PID或變形的PID控制算法。實踐證明,PID控制算法對于大多數(shù)控制系統(tǒng)具有廣泛適用性。用PID控制算法控制小車速度PID控制算法簡介用PID控制算法控制小車速度圖3.9所示為模擬PID控制系統(tǒng)原理框圖。比例系數(shù)反映系統(tǒng)的基本偏差e(t)對系統(tǒng)性能的影響。比例系數(shù)大,可加快調(diào)節(jié)速度,減小偏差,但比例系數(shù)過大會使系統(tǒng)穩(wěn)定性下降,甚至造成系統(tǒng)不穩(wěn)定。積分系數(shù)反映系統(tǒng)的累計偏差對系統(tǒng)性能的影響。積分系數(shù)用于消除系統(tǒng)的穩(wěn)定偏差,提高系統(tǒng)無差度??刂?個LED閃爍微分系數(shù)反映系統(tǒng)偏差信號的變化率e(t)-e(t-1)對系統(tǒng)性能的影響。微分調(diào)節(jié)具有預(yù)見性,能預(yù)見偏差變化的趨勢,產(chǎn)生超前的控制作用,在偏差還沒有形成前,已被微分調(diào)節(jié)作用消除。因此,可利用微分調(diào)節(jié)改善系統(tǒng)的動態(tài)性能。但是微分系數(shù)對噪聲干擾有放大作用,微分系數(shù)越大,對系統(tǒng)抗干擾越不利。用PID控制算法控制小車速度比例控制規(guī)律采用比例控制規(guī)律能較快地克服擾動的影響,它的優(yōu)點在于輸出較快,缺點是不能很好地穩(wěn)定在一個理想的數(shù)值上,即不能消除余差。比例積分(PI)控制規(guī)律在工程系統(tǒng)中,比例積分控制規(guī)律是應(yīng)用最為廣泛的。積分控制能在比例控制的基礎(chǔ)上消除余差。用PID控制算法控制小車速度比例微分(PD)控制規(guī)律微分控制具有超前作用,在具有容量滯后的控制通道中引入微分控制,在微分項設(shè)置得當(dāng)?shù)那闆r下,對于提高系統(tǒng)的動態(tài)性能指標(biāo)有著顯著的效果。比例積分微分(PID)控制規(guī)律PID控制規(guī)律是一種較為理想的控制規(guī)律,它在比例控制的基礎(chǔ)上引入積分控制,可以消除余差,再加入微分作用,又能提高系統(tǒng)的穩(wěn)定性。用PID控制算法控制小車速度要編程實現(xiàn)PID控制,必須先將算法離散化。離散化的過程其實很簡單,只需要記住以下幾條即可。①用離散的時刻n代替連續(xù)時間t。②用0到n的求和代替t到t的積分。③用前向差分代替微分。用PID控制算法控制小車速度PID控制算法的編程實現(xiàn)PID控制算法的編程實現(xiàn)非常簡單,只需要將離散PID控制算法的表達式寫到軟件里面就可以。但是要將這個算法寫成實際的控制軟件,需要花費一些時間和精力。用單片機實現(xiàn)數(shù)字閉環(huán)控制器的一個最為重要的概念是閉環(huán)控制周期,也就是離散PID控制算法中兩個相鄰時刻之間的時間。在這個閉環(huán)控制周期里,控制器必須完成以下操作和計算。用PID控制算法控制小車速度①通過傳感器讀取一次需要控制的變量的當(dāng)前值。②將獲得的被控變量的當(dāng)前值與期望的控制值進行比較,獲得當(dāng)前的控制偏差。③按照離散控制算法,根據(jù)偏差計算當(dāng)前的控制作用量的大小。④將控制作用輸出到執(zhí)行裝置中。⑤不斷重復(fù)上述過程。用PID控制算法控制小車速度若完成以上操作和計算的時間超過了所要求的閉環(huán)控制周期,則這個數(shù)字控制器可能無法滿足控制要求。反之,就可以滿足要求。在閉環(huán)控制周期中,多余的時間可以用來完成其他操作或者進行簡單的暫停等待。在這個控制周期內(nèi),可能還要處理一些人機交互的操作,如讀取被控變量的期望控制值,以及給PID控制器的3個控制系數(shù)賦不同的值,以獲得不同的控制效果等。用PID控制算法控制小車速度基于PID控制算法的速度控制將數(shù)字編碼器測得的左輪當(dāng)前轉(zhuǎn)速記為EcodeCounterLeftnow,右輪當(dāng)前轉(zhuǎn)速記為Ecode_CounterRightnow。變量Ecode_Counter_Right_before、Ecode_Counter_Left_before、Ecode_Counter_Right_before1、Ecode_CounterLeftbefore1、EcodeCounterRight_before2、EcodeCounterLeftbefore2、Ecode_CounterRightbefore3、Ecode_CounterLeftbefore3用于保存左、右輪前4次測得的轉(zhuǎn)速。用PID控制算法控制小車速度用PID控制算法控制小車速度圖3.10和圖3.11是兩個運行時刻的電機轉(zhuǎn)速控制程序運行效果。任務(wù)中設(shè)定的機器人速度期望值是12cm/s,在程序?qū)嶋H運行過程中,兩個輪子的線速度基本上都在11~13.8cm/s之間變化,能不能讓輪子的線速度更加準(zhǔn)確呢?答案是否定的。因為影響控制器控制精度的因素有很多,其中一個關(guān)鍵因素是反饋的精度,也就是傳感器的檢測精度。用PID控制算法控制小車速度這里使用的簡易數(shù)字編碼器的最高速度檢測精度是多少呢?它由電機的最高轉(zhuǎn)速和數(shù)字編碼器每轉(zhuǎn)能夠輸出的脈沖個數(shù)決定。伺服電機的最高轉(zhuǎn)速約為60r/min,也就是1r/s,lr(轉(zhuǎn))是6.28rad,同時數(shù)字編碼器能夠輸出8個脈沖,也就是說,每個脈沖對應(yīng)的弧度為6.28/8rad,即0.785rad,這個弧度對應(yīng)輪子轉(zhuǎn)過弧長為0.785×3.5cm,約為2.74cm,因為輪子的半徑為3.5cm,所以2.74cm/s就是數(shù)字編碼器的最高速度檢測精度。如果想要提高檢測精度,必須提高數(shù)字編碼器的分辨率,也就是每轉(zhuǎn)可以輸出的脈沖數(shù)。用PID控制算法控制小車速度另外,程序?qū)ID控制器的積分部分進行了簡化處理。按照原始的PID控制器,必須對所有檢測到的電機轉(zhuǎn)速進行累加積分,而這里只取了前4次進行累加。其實,在速度控制閉環(huán)中,積分環(huán)節(jié)對控制精度的影響較小,這從設(shè)定的K參數(shù)就可以看出來。任務(wù)中的PID控制器的系數(shù)是從哪里得來的呢?這里的數(shù)值是開發(fā)工程師通過多次實驗獲得的,因為在沒有模型的控制系統(tǒng)中,只能按照調(diào)整PID控制器系數(shù)的方法,通過不斷地實驗得到最佳的數(shù)值。這方面的內(nèi)容和技能是后續(xù)自動控制原理和現(xiàn)代控制工程課程的核心內(nèi)容。用PID控制算法控制小車速度03簡易里程計的設(shè)計利用數(shù)字編碼器測量輪子的運動距離很簡單,在任務(wù)3.1中已有詳細的說明。利用計數(shù)器統(tǒng)計數(shù)字編碼器信號線傳回的信號中有幾個下降沿,即可得出輪子轉(zhuǎn)過的角度。機器人小車使用的輪子有8個小孔,所以當(dāng)單片機接收到8個下降沿時,表明輪子旋轉(zhuǎn)一圈。簡易里程計的設(shè)計簡易里程計設(shè)計原理簡易里程計的程序設(shè)計定時/計數(shù)器的設(shè)置和中斷說明與前面兩個任務(wù)相同,這里不再贅述。(1)簡易里程計程序?qū)崿F(xiàn)說明;(2)簡易里程計程序。簡易里程計的設(shè)計簡易里程計的設(shè)計圖3.12和圖3.13是兩次運行簡易里程計程序的運行效果。04擴展閱讀擴展閱讀該寄存器各位的定義如表3.2所示。①GATE——門控制位。當(dāng)GATE=0時,定時/計數(shù)器啟動和停止只受控制寄存器TCON中的TRX(X=0,1;表示定時/計數(shù)器0,定時/計數(shù)器1)控制;當(dāng)GATE=1時,定時/計數(shù)器啟動和停止由控制寄存器TCON中的TRX和外部中斷引腳(INT0或INT1)上的電平狀態(tài)來共同控制。②C/T——定時器模式與計數(shù)器模式選擇位。當(dāng)C/T=1時,為計數(shù)器模式;當(dāng)C/T=0時,為定時器模式。擴展閱讀擴展閱讀③M1、M0——工作方式選擇位。T0和T1都有4種工作方式,它們都由M1、M0設(shè)定。MI、M0各值對應(yīng)的4種工作方式如表3.3所示。擴展閱讀T0和T1的控制寄存器TCON各位的定義如表3.4所示。①TF1——T1溢出標(biāo)志。當(dāng)T1計滿溢出時,硬件自動置TFl為1,并申請中斷。進入中斷后,由硬件自動對TF1清零。②TR1——T1運行控制位。該控制位由軟件清零關(guān)閉T1。當(dāng)GATE=1,且INT1為高電平時,TR1置1表示啟動T1;當(dāng)GATE=0時,TR1置1表示啟動T1。③TF0——T0溢出標(biāo)志。當(dāng)T0計滿溢出時,硬件自動置TF0為1,并申請中斷。進入中斷后,由硬件自動對TF0清零。擴展閱讀④TR0——T0運行控制位。該控制位由軟件清零關(guān)閉T0。當(dāng)GATE=1,且INT0為高電平時,TR0置1表示啟動T0;當(dāng)GATE=0時,TR0置1表示啟動T0。⑤IE1——外部中斷1請求標(biāo)志??刂仆獠恐袛?,與定時/計數(shù)器無關(guān)。對于初學(xué)者來說,不需要操作外部中斷,所以此處不詳細介紹該寄存器位。⑥IT1——外部中斷1觸發(fā)方式選擇位??刂仆獠恐袛?,與定時/計數(shù)器無關(guān)。對于初學(xué)者來說,不需要操作外部中斷,所以此處不詳細介紹該寄存器位。擴展閱讀⑦IE0——外部中斷0請求標(biāo)志??刂仆獠恐袛啵c定時/計數(shù)器無關(guān)。對于初學(xué)者來說,不需要操作外部中斷,所以此處不詳細介紹該寄存器位。⑧IT0——外部中斷0觸發(fā)方式選擇位。控制外部中斷,與定時/計數(shù)器無關(guān)。對于初學(xué)者來說,不需要操作外部中斷,所以此處不詳細介紹該寄存器位。擴展閱讀T0和T1的計數(shù)寄存器TH0、TL0、TH1、TL1TH0、TL0(TH1、TL1)是T0(T1)的高8位和低8位計數(shù)器,TH0、TL0(TH1、TL1)是連在一起的計數(shù)器。當(dāng)?shù)?位TL0(TL1)計數(shù)器計滿溢出時,向高8位TH0(TH1)計數(shù)器進1;當(dāng)高8位和低8位計數(shù)器都計滿溢出時,將TF0(TF1)置1并申請中斷,進入中斷程序,再將TF0(TF1)置0。擴展閱讀T2的T2CON寄存器和T2MOD寄存器T2作為AT89S52芯片新增的一類定時器,只有52系列單片機才具有。T2是16位定時/計數(shù)器,可通過設(shè)置特殊功能寄存器T2CON中的C/T2來設(shè)置T2是作為定時器還是計數(shù)器使用。特殊功能寄存器T2CON還可以設(shè)置T2的工作方式,其工作方式有3種:捕獲方式、自動重裝方式(遞增或遞減計數(shù))和波特率發(fā)生器。T2的T2MOD寄存器用于設(shè)定定時/計數(shù)器在自動重裝方式下是遞增計數(shù)還是遞減計數(shù)。擴展閱讀擴展閱讀當(dāng)單片機復(fù)位時,T2CON寄存器全部被清零,該寄存器各位的定義如表3.5所示。在將T2設(shè)置為捕獲工作方式后,還需要設(shè)定EXEN2的值,這樣捕獲功能才能正常實現(xiàn)。當(dāng)EXEN2=1時,捕獲功能被激活,允許捕獲T2EX引腳的下降沿觸發(fā)信號;當(dāng)EXEN2=0時,捕獲功能被禁止,T2EX引腳的下降沿觸發(fā)信號對T2無效。擴展閱讀捕獲方式中斷的目的是提高單片機處理外部或內(nèi)部事件的能力。由于事件有一般事件和緊急事件之分,在一般情況下,程序會按照事件的先后順序執(zhí)行,但在發(fā)生一件緊急事件需要緊急處理時,就需要中斷當(dāng)前的一般事件,優(yōu)先去做緊急事件,在處理完緊急事件后再回來做被中斷的一般事件,這就是中斷的作用。在日常生活中,中斷事件經(jīng)常發(fā)生。擴展閱讀中斷相關(guān)知識及中斷寄存器介紹對于單片機來說,中斷就是CPU在處理事件A時發(fā)生了事件B,但CPU只能處理一件事,當(dāng)前事件B更為緊急,必須馬上處理,于是,CPU暫停處理事件A(做出中斷響應(yīng)),轉(zhuǎn)去處理事件B(執(zhí)行中斷程序)。等處理完事件B后,CPU再回來處理未做完的事件A(中斷程序執(zhí)行完畢,返回原先執(zhí)行的程序。)。擴展閱讀中斷相關(guān)知識介紹我們常把事件B的中斷請求稱為中斷源。在單片機中有6個中斷源,每個中斷源都有對應(yīng)的中斷條件,6個中斷源也有中斷優(yōu)先級之分。當(dāng)有多個中斷同時發(fā)生時,單片機會根據(jù)中斷源的優(yōu)先級高低,先從優(yōu)先級高的中斷源開始處理,一直執(zhí)行到優(yōu)先級最低的中斷源,最后再回到原中斷的程序位置。擴展閱讀擴展閱讀6個中斷源的符號、名稱及優(yōu)先級如表3.8所示。05工程素質(zhì)和技能歸納①電機轉(zhuǎn)速測量原理和實現(xiàn)方法。②簡易數(shù)字編碼器的安裝、編程和測試。③用簡易數(shù)字編碼器測量電機轉(zhuǎn)速的程序?qū)崿F(xiàn)。④與電機轉(zhuǎn)速測量相關(guān)的定時/計數(shù)器的初始化程序和中斷服務(wù)程序的編寫。工程素質(zhì)和技能歸納⑤閉環(huán)控制的基本概念和PID控制器程序的編寫。⑥機器人小車的速度控制和控制精度分析。⑦機器人簡易里程計的設(shè)計和實現(xiàn)。工程素質(zhì)和技能歸納謝謝觀看機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)單片機計時與鍵盤接口技術(shù)——機器人計時機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)第四章01用8位八段數(shù)碼管制作簡易秒表8位八段數(shù)碼管顯示模塊可用于開發(fā)時間或日期的顯示裝置,由兩個4位八段數(shù)碼管顯示模塊組成,可以通過10Pin扁平電纜直接連接到擴展學(xué)習(xí)板的10Pin擴展插座上。8位八段數(shù)碼管顯示模塊由MAX7219芯片驅(qū)動,對于MAX7219芯片,這里不做介紹,讀者可以自行上網(wǎng)查找相關(guān)資料。用8位八段數(shù)碼管制作簡易秒表8位八段數(shù)碼管和擴展學(xué)習(xí)板簡介用8位八段數(shù)碼管制作簡易秒表圖4.1所示為8位八段數(shù)碼管顯示模塊的原理圖。圖中的P1為8位八段數(shù)碼管10Pin扁平的外接口。8位八段數(shù)碼管顯示模塊具有操作簡單的優(yōu)點,單片機只需通過模擬SPI三線接口就可以將相關(guān)的指令寫入MAX7219內(nèi)的指令和數(shù)據(jù)寄存器中,同時允許用戶選擇多種譯碼方式和譯碼位。用8位八段數(shù)碼管制作簡易秒表用8位八段數(shù)碼管制作簡易秒表表4.1給出了8位八段數(shù)碼管顯示模塊各寄存器的說明。用8位八段數(shù)碼管制作簡易秒表MAX7219的譯碼控制寄存器譯碼表如表4.2所示。用8位八段數(shù)碼管制作簡易秒表MAX7219掃描界限控制寄存器設(shè)置如表4.3所示。用8位八段數(shù)碼管制作簡易秒表數(shù)據(jù)讀/寫時序如圖4.2所示。用8位八段數(shù)碼管制作簡易秒表圖4.3所示為驅(qū)動測試程序運行效果。用8位八段數(shù)碼管制作簡易秒表圖4.4所示為拓展學(xué)習(xí)板實物圖。簡易秒表的制作與程序設(shè)計(1)T2的設(shè)置和中斷說明;(2)簡易秒表的制作;(3)簡易秒表的程序設(shè)計。用8位八段數(shù)碼管制作簡易秒表用8位八段數(shù)碼管制作簡易秒表把8位八段數(shù)碼管顯示模塊安裝在擴展學(xué)習(xí)板上,8位八段數(shù)碼管顯示模塊與C語言教學(xué)板的連接方式如表4.5所示。用8位八段數(shù)碼管制作簡易秒表圖4.6所示為8位八段數(shù)碼管顯示模塊與C語言教學(xué)板的連接實物圖。用8位八段數(shù)碼管制作簡易秒表圖4.7所示為簡易秒表程序運行效果,左邊顯示00的部分是分部分,右邊顯示08的部分是秒部分。02裁判機器人的制作——測量選手的反應(yīng)時間本任務(wù)要求利用LED、按鍵、LCD1602測量選手的反應(yīng)時間。具體要求:選手看到LED亮?xí)r按下按鍵,單片機計算從LED開始亮到按鍵被按下的這段時間的時長,并將時長顯示在LCD上。本任務(wù)類似于電視節(jié)目中的搶答器,當(dāng)選手看到LED亮?xí)r便按下按鍵,反應(yīng)時間最短的選手獲得答題權(quán)。裁判機器人的制作——測量選手的反應(yīng)時間裁判機器人的制作要求裁判機器人的制作——測量選手的反應(yīng)時間裁判機器人的外圍電路原理圖如圖4.8所示。裁判機器人的制作——測量選手的反應(yīng)時間圖4.9為完成的電路連接實物圖。測量選手反應(yīng)時間的程序(1)T0的設(shè)置和中斷函數(shù);(2)編寫程序。將這段測量選手反應(yīng)時間的程序下載到單片機中進行測試。顯然,這個程序與真正能夠作為產(chǎn)品的程序相差甚遠!因為程序在開始運行后,固定延時4s后點亮LED,這樣人們就可以預(yù)測LED的點亮?xí)r間,而無須看到LED亮再按下按鍵,測得的時間并不是選手的真實反應(yīng)時間。裁判機器人的制作——測量選手的反應(yīng)時間03具有簡單設(shè)置功能的計時機器人制作在任務(wù)4.1中,我們完成了用8位八段數(shù)碼管制作簡易秒表的任務(wù),但制作的秒表只能計時,不能設(shè)置起始時間。在本任務(wù)中,我們將引入輸入設(shè)備,用于在程序運行時把原始數(shù)據(jù)或待處理數(shù)據(jù)輸入計算機中。在日常生活中,常見的人機交互設(shè)備有鼠標(biāo)、鍵盤、攝像頭、掃描儀、游戲桿等。本任務(wù)將介紹如何利用4×4矩陣鍵盤制作一個計時器的輸入設(shè)備,用于時間設(shè)置。具有簡單設(shè)置功能的計時機器人制作本任務(wù)所需元器件包括:4×4矩陣鍵盤1個、1kΩ電阻4個、8位八段數(shù)碼管1個、10Pin扁平電纜1根、AT89S52教學(xué)機器人1套、導(dǎo)線若干。本任務(wù)要求利用4×4矩陣鍵盤完成對計時器的設(shè)置,如設(shè)置計時器停止計時的終止時間。數(shù)碼管能夠進行分和秒的實時計時顯示,其顯示時間每秒更新一次。當(dāng)計時到矩陣鍵盤設(shè)定的終止時間時,計時器停止計時,數(shù)碼管顯示設(shè)定的終止時間。具有簡單設(shè)置功能的計時機器人制作4×4矩陣鍵盤簡介鍵盤由一系列按鍵開關(guān)組成,它是一種常見的輸入設(shè)備。用戶可以通過鍵盤向程序輸入數(shù)據(jù)、地址和命令。鍵盤上的每個按鍵都被賦予了一個代碼,即鍵碼。比較常見的鍵盤是矩陣式鍵盤,它的按鍵采用矩陣式排列,各鍵處于矩陣行與列的交點處。程序通過對連在行(列)上的I/O線發(fā)送已知電平信號,然后讀取列(行)的狀態(tài)信息,逐線掃描,得出鍵碼。矩陣式鍵盤具有按鍵較多且占用I/O線較少的優(yōu)點,但判斷鍵碼的速度較慢,因此只適用于鍵數(shù)不多的場合。具有簡單設(shè)置功能的計時機器人制作具有簡單設(shè)置功能的計時機器人制作4×4矩陣鍵盤實物圖如圖4.13所示。具有簡單設(shè)置功能的計時機器人制作4×4矩陣鍵盤原理圖如圖4.14所示。具有簡單設(shè)置功能的計時機器人制作圖4.15所示為4x4矩陣鍵盤與C語言教學(xué)板的連接電路圖。從圖中可以看出,矩陣鍵盤的行0~行3的一端分別與C語言教學(xué)板的P00~P03連接,列0~列3分別與C語言教學(xué)板的P04~P07連接。行0~行3的另一端先與10kΩ的電阻連接,再連接到5V的電源上。表4.6給出了4×4矩陣鍵盤與C語言教學(xué)板的引腳連接方式。具有簡單設(shè)置功能的計時機器人制作矩陣鍵盤編碼4×4矩陣鍵盤共有16個按鍵,矩陣鍵盤的行和列與C語言教學(xué)板的PO端口相連。每個按鍵有唯一對應(yīng)的行值和列值。確定被按下按鍵的行值和列值的方法是:首先給予j(j=0,1,2,3)列低電平,其他列高電平,然后輪流檢測4行中是否有哪一行為低電平,若第i(i=0,1,2,3)行為低電平,則被按下的按鍵的行值和列值為i和j。若未發(fā)現(xiàn)任何一行為低電平,則再回到第一步,一直這樣循環(huán)掃描矩陣鍵盤。具有簡單設(shè)置功能的計時機器人制作矩陣鍵盤編碼和掃描程序說明具有簡單設(shè)置功能的計時機器人制作矩陣鍵盤掃描的流程圖如圖4.17所示。由于鍵盤的行和列與C語言教學(xué)板的PO端口相連,鍵盤上的每個按鍵對應(yīng)唯一的行值和列值,因此掃描到的P0端口編碼與行值、列值一樣,和按鍵是一一對應(yīng)的。為了便于識別讀取的行值,對低位編號做取反處理。具有簡單設(shè)置功能的計時機器人制作具有簡單設(shè)置功能的計時機器人制作表4.8所示為P0端口的鍵碼。矩陣鍵盤掃描程序首先確定鍵盤的行和列與C語言教學(xué)板的連接方式,再定義鍵盤列掃描碼。scanner(函數(shù)用于實現(xiàn)鍵盤按鍵掃描,首先按照數(shù)組scan的列掃描碼給予第col列低電平,再讀取KEYP低4位的值,并對讀取的值取反。在獲得行值信息后,判斷行值是否為0。若不為0,則該行按鍵被按下,由此判斷按鍵的位置,并返回按鍵的位置信息;若為0,則繼續(xù)掃描其他行列的按鍵。具有簡單設(shè)置功能的計時機器人制作鍵盤接口程序的實現(xiàn)(1)程序?qū)崿F(xiàn)功能說明;(2)帶鍵盤接口的機器人計時器程序。具有簡單設(shè)置功能的計時機器人制作04具有簡單設(shè)置功能的時鐘機器人制作本任務(wù)所需元器件包括:4×4矩陣鍵盤1個、lkΩ電阻4個、8位八段數(shù)碼管1個、10Pin扁平電纜1根、AT89S52教學(xué)機器人1套、導(dǎo)線若干。本任務(wù)要求利用8位八段數(shù)碼管顯示時鐘的時、分和秒,并用4×4矩陣鍵盤對時鐘的起始時間按照時、分、秒進行設(shè)置。在設(shè)置完成后,按下K15鍵,機器人從設(shè)置的時間點開始計時,并在數(shù)碼管上顯示每次更新的時間,時間每秒更新一次。具有簡單設(shè)置功能的時鐘機器人制作時鐘機器人的設(shè)計思路本任務(wù)的硬件連接電路和任務(wù)4.3完全相同。任務(wù)4.3制作的是具有簡單設(shè)置功能的計時機器人,其計時功能只有分和秒兩部分。本任務(wù)要制作的是具有起始時間設(shè)置功能的時鐘機器人,包含時、分和秒三部分。在任務(wù)4.3程序的基礎(chǔ)上,增加時的顯示功能,數(shù)碼管的顯示由兩部分改為三部分。數(shù)碼管從左到右依次顯示時、分、秒。具有簡單設(shè)置功能的時鐘機器人制作具有簡單設(shè)置功能的時鐘機器人制作時、分、秒之間各由一個不顯示的數(shù)碼管隔開,數(shù)碼管顯示時間初始化如圖4.24所示。具有簡單設(shè)置功能的時鐘機器人制作設(shè)置時的操作效果如圖4.25所示。具有簡單設(shè)置功能的時鐘機器人制作設(shè)置分的操作效果如圖4.26所示。具有簡單設(shè)置功能的時鐘機器人制作設(shè)置秒的操作效果如圖4.27所示。具有簡單設(shè)置功能的時鐘機器人制作設(shè)置時、分和秒完成的效果如圖4.28所示。具有簡單設(shè)置功能的時鐘機器人制作開始計時的效果如圖4.29所示。05工程素質(zhì)和技能歸納①了解和掌握8位八段數(shù)碼管電路原理圖、顯示設(shè)置和數(shù)據(jù)讀/寫時序圖。②根據(jù)數(shù)據(jù)讀/寫時序圖編寫驅(qū)動程序,并測試驅(qū)動程序和數(shù)碼管。③用定時器中斷功能和8位八段數(shù)碼管開發(fā)簡易計時裝置。④矩陣鍵盤的接口技術(shù)和鍵碼掃描程序的編寫。⑤帶有時間設(shè)置功能的機器人時鐘制作和編程。工程素質(zhì)和技能歸納謝謝觀看機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)A/D、D/A轉(zhuǎn)換接口與漫游機器人制作機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)第五章01基于紅外測距導(dǎo)航的漫游機器人的制作和編程本任務(wù)使用紅外傳感器SHARP2Y0A21F2Y作為機器人導(dǎo)航傳感器制作漫游機器人。該傳感器輸出的模擬電壓表示檢測到的不同距離。本任務(wù)涉及的元器件包括:智能機器人小車1輛,紅外傳感器(測距)及安裝套件1套,TLC549A/D轉(zhuǎn)換芯片1個,1602LCD顯示模塊1個,跳線、導(dǎo)線和杜邦線若干。基于紅外測距導(dǎo)航的漫游機器人的制作和編程基于紅外測距導(dǎo)航的漫游機器人的制作和編程SHARP紅外傳感器實物圖如圖5.1所示。SHARP紅外傳感器的測量原理物體對紅外光的反射、環(huán)境溫度及操作時間都不會輕易影響距離探測的準(zhǔn)確度。SHARP2Y0A21F2Y紅外傳感器采用模擬量輸出,由PSD(位置靈敏探測器)、IRED(紅外發(fā)射二極管)及信號處理電路組成,可以用于近距離的探測,探測范圍是8~80cm?;诩t外測距導(dǎo)航的漫游機器人的制作和編程基于紅外測距導(dǎo)航的漫游機器人的制作和編程圖5.2所示為輸出電壓與探測距離的關(guān)系曲線。由圖可知,在0~8cm范圍內(nèi),隨著探測距離的減小,輸出電壓急劇下降;在8~30cm范圍內(nèi),隨著探測距離的增大,輸出電壓下降幅度較大;在30~80cm范圍內(nèi),隨著探測距離的增大,輸出電壓變化得較為平緩。即當(dāng)探測距離足夠?。ㄐ∮?cm)時,輸出電壓急劇下降,雖然物體離得很近,但探測到的距離好像越來越遠了,傳感器反而“看”不到了。因此要探測更遠的物體,需要用分辨率更高的傳感器?;诩t外測距導(dǎo)航的漫游機器人的制作和編程根據(jù)SHARP紅外傳感器的特性,在實際使用前,需要對傳感器的測量特性進行曲線擬合。在進行曲線擬合時,如果不分段擬合,得到的測距函數(shù)只在某個范圍內(nèi)比較準(zhǔn)確,在其他的范圍內(nèi)誤差會比較大。對于SHARP2Y0A21F2Y紅外傳感器,合理的分段擬合方案是將距離分成8~30cm、30~50cm兩段?;诒救蝿?wù)的應(yīng)用要求,只在10~30cm范圍內(nèi)進行擬合?;诩t外測距導(dǎo)航的漫游機器人的制作和編程注意:對于不同型號的傳感器,其輸出特征曲線不同,需要在實際使用前對所使用的傳感器進行標(biāo)定校正?;诩t外測距導(dǎo)航的漫游機器人的制作和編程基于紅外測距導(dǎo)航的漫游機器人的制作和編程A/D轉(zhuǎn)換芯片的連接原理圖和連接實物圖分別如圖5.3和圖5.4所示。先把TLC549芯片插到面包板上,然后用導(dǎo)線連接相對應(yīng)的引腳。俯視A/D轉(zhuǎn)換芯片TLC549,以標(biāo)記有小圓點的左上角引腳為1引腳,逆時針方向依次為2~8引腳。將1、8引腳接至Vce;2引腳接紅外傳感器信號輸出端口。在圖5.4中,用了1個擴展學(xué)習(xí)板將紅外傳感器接入單片機系統(tǒng),紅外傳感器的3Pin電纜直接接到擴展學(xué)習(xí)板的4號3Pin插口上,與它相通的是面包板旁邊的4號插孔,所以將4號插孔用連接線連接到芯片的2引腳上;3、4引腳接地;5、6、7引腳分別接單片機的P34、P16、P15引腳?;诩t外測距導(dǎo)航的漫游機器人的制作和編程注意:在下載程序時需要先將單片機P16、PI5引腳的導(dǎo)線斷開,在下載完成后再接上。這是因為這兩個引腳是與下載器接口復(fù)用的。基于紅外測距導(dǎo)航的漫游機器人的制作和編程注意:當(dāng)用到較多的單片機IO端口時,必須正確分配可用端口,否則會出現(xiàn)意想不到的結(jié)果。基于紅外測距導(dǎo)航的漫游機器人的制作和編程例如,如果將TLC549的輸入端、輸出端或者片選信號的接線接至P10、P11舵機控制引腳,這時經(jīng)AD轉(zhuǎn)換芯片轉(zhuǎn)換的數(shù)據(jù)就輸出不到LCD上了;如果使用了P2端口的液晶端口,或者在使用定時器中斷時,占用了單片機第二功能引腳的中斷設(shè)置端口,同樣會出現(xiàn)錯誤。因此,在使用單片機IO端口時要特別注意端口資源的合理分配?;诩t外測距導(dǎo)航的漫游機器人的制作和編程程序說明上述程序?qū)崿F(xiàn)的漫游機器人功能是,一邊向前運動,一邊測量其與前方物體的距離,LCD1602第一行顯示廣告字符串,第二行顯示距離值,若前方20cm的范圍內(nèi)有物體,則機器人向左轉(zhuǎn)(可以自行更改設(shè)定的規(guī)則),然后繼續(xù)向前運動,一直循環(huán)下去。用8位八段數(shù)碼管制作簡易秒表程序說明TLC549是一種新型的A/D轉(zhuǎn)換器,具有8位的分辨率。由于在實際應(yīng)用中的A/D轉(zhuǎn)換器輸入數(shù)據(jù)可能由于受到干擾而有突然的變化,因此為了讓測量的結(jié)果更加準(zhǔn)確,可以采用多次采集再計算的方式得到相對準(zhǔn)確的數(shù)值,這種方法稱為軟件濾波。軟件濾波有很多算法,最簡單的算法是對多次采樣的數(shù)據(jù)求平均值,即均值濾波法。用8位八段數(shù)碼管制作簡易秒表首先,在10~30cm范圍內(nèi)均勻采樣20個數(shù)據(jù),從距離10cm開始,每隔lcm記錄1次紅外傳感器的測量電壓值。每次紅外傳感器的測量電壓都可以通過LCD1602顯示出來。然后,將這20組數(shù)據(jù)分別填入Excel表格(以Excel2013為例)中。接著,選中所有的數(shù)據(jù),選擇“插入”一“散點圖”-“帶平滑線和數(shù)據(jù)標(biāo)記的散點圖”選項,得到一個散點圖,在圖中的曲線上右擊鼠標(biāo),在彈出的快捷菜單中選擇“添加趨勢線”選項,在“設(shè)置趨勢線格式”窗格中選中“冪”選項,然后勾選“顯示公式”復(fù)選框?;诩t外測距導(dǎo)航的漫游機器人的制作和編程基于紅外測距導(dǎo)航的漫游機器人的制作和編程就可以生成圖5.5所示的紅外傳感器輸出電壓和測量距離的擬合曲線,并得到對應(yīng)的公式,根據(jù)該擬合曲線及對應(yīng)的公式,每次測量的距離誤差可以控制在0.5cm范圍內(nèi)。也可以對標(biāo)定數(shù)據(jù)進行多項式擬合,只需將上述步驟中的“冪”選項改選為“多項式”選項,并設(shè)置多項式的最高次數(shù)。由于本任務(wù)中僅測量10~30cm之間的距離,因此無須進行分段擬合,在實踐中可以根據(jù)需要按同樣的方法進行擬合操作?;诩t外測距導(dǎo)航的漫游機器人的制作和編程基于紅外測距導(dǎo)航的漫游機器人的制作和編程編寫A/D轉(zhuǎn)換子函數(shù)要根據(jù)TLC549的工作時序圖(如圖5.6所示)來完成。02拓展閱讀A/D轉(zhuǎn)換器的作用是將模擬量轉(zhuǎn)換為數(shù)字量,這里的模擬量既可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉(zhuǎn)換前,輸入A/D轉(zhuǎn)換器的信號必須轉(zhuǎn)換成電壓信號。由于這些輸入信號在時間上是連續(xù)的,而輸出的數(shù)字信號是離散的,因此每個離散的數(shù)字量實際上代表的是一個區(qū)間的模擬量,如用255代表[4.98V,5V]的連續(xù)瞬時量,這個區(qū)間的大小實際上就是A/D轉(zhuǎn)換器的分辨率。拓展閱讀分辨率說明了A/D轉(zhuǎn)換器對輸入信號的分辨能力。A/D轉(zhuǎn)換器輸出的數(shù)字信號位數(shù)可以是8位、10位、12位、14位、16位等,在輸入電壓一定時,輸出位數(shù)越多,輸出的數(shù)字信號分辨率越高。例如,當(dāng)輸入信號最大為5v,最小為OV時,8位A/D轉(zhuǎn)換器輸出的數(shù)字信號的分辨率為19.53mV(5V/23≈19.53mV),12位A/D轉(zhuǎn)換器輸出的數(shù)字信號的分辨率為1.22mV(5V/232≈1.22mV)。拓展閱讀A/D轉(zhuǎn)換器的另一個指標(biāo)是轉(zhuǎn)換時間,即從A/D轉(zhuǎn)換器轉(zhuǎn)換控制信號到來開始,到輸出端得到穩(wěn)定的數(shù)字信號所需的時間。不同類型轉(zhuǎn)換器的轉(zhuǎn)換速度是不同的,所以轉(zhuǎn)換時間也不同。其中,并行比較型A/D轉(zhuǎn)換器轉(zhuǎn)換速度最高,一般的8位并行A/D轉(zhuǎn)換器的轉(zhuǎn)換時間可達50ns,而逐次比較型A/D轉(zhuǎn)換器的轉(zhuǎn)換時間為10~50μs,有的也可達到幾百納秒。拓展閱讀在選擇A/D轉(zhuǎn)換器時,除了要考慮轉(zhuǎn)換器的分辨率、轉(zhuǎn)換時間,還要考慮項目實際需要的分辨率和轉(zhuǎn)換時間。拓展閱讀03紅外測距云臺導(dǎo)航機器人的制作人們在用眼睛尋找目標(biāo)時,不會只注視前方,而會通過脖子的轉(zhuǎn)動來掃描四周。為了讓機器人能夠進行類似的搜索,可在機器人前方安裝一個角度舵機,并將紅外傳感器裝在角度舵機的輸出軸上,這樣紅外傳感器就可以隨著角度舵機進行0°~180°的轉(zhuǎn)動了。紅外測距云臺導(dǎo)航機器人的制作紅外測距云臺導(dǎo)航機器人的制作舵機控制脈沖示意圖如圖5.7所示。角度舵機角度舵機的控制信息與連續(xù)旋轉(zhuǎn)伺服舵機一樣,只是其高電平脈沖寬度(簡稱脈寬)對應(yīng)的是輸出軸的角度,而不是速度,例如,1.5ms高電平脈寬可控制舵機回到中間位置,即90°位置。為了方便說明,這里規(guī)定從右往左的角度依次為0°~180°,即最右邊為0°,最左邊為180°。紅外測距云臺導(dǎo)航機器人的制作紅外測距云臺導(dǎo)航機器人的制作根據(jù)任務(wù)需要,取5個角度,角度舵機轉(zhuǎn)動角度與20ms周期內(nèi)高電平持續(xù)時間之間的關(guān)系如表5.1所示。紅外測距云臺導(dǎo)航機器人的制作角度舵機安裝后的實物圖如圖5.8所示。紅外測距云臺導(dǎo)航機器人的制作云臺舵機接線電路如圖5.9所示。紅外測距云臺導(dǎo)航機器人的制作完整的紅外測距云臺導(dǎo)航機器人的實物圖如圖5.10所示。使紅外傳感器左右掃描的方法是:首先使紅外傳感器的方向在右邊第一個測量角度的位置(18°)上,并在右邊的第一個測量角度(18°)和左邊的第一個測量角度(162°)上設(shè)置左轉(zhuǎn)和右轉(zhuǎn)標(biāo)志,據(jù)此控制角度舵機從右向左轉(zhuǎn)或者從左向右轉(zhuǎn)。紅外測距云臺導(dǎo)航機器人的制作程序說明機器人一邊向前運動,一邊不斷測量5個不同方位前方物體的距離,并存在數(shù)組中。在每次掃描測得數(shù)據(jù)后,都要比較所得5個距離的大小,以決定機器人下一步的運動方向,然后將數(shù)組內(nèi)的數(shù)據(jù)還原為初始數(shù)據(jù),依此一直循環(huán)執(zhí)行。判斷執(zhí)行條件是:若與前方90°、54°、126°方位的距離同時滿足小于23.4cm,則轉(zhuǎn)180°;若與18°和54°方位的距離之一小于23.4cm,則向左轉(zhuǎn);若與126°和162°方位的距離之一小于23.4cm,則向右轉(zhuǎn)。紅外測距云臺導(dǎo)航機器人的制作程序說明為了方便學(xué)習(xí),這里只做了簡單的處理。在實際應(yīng)用或者比賽過程中,需要根據(jù)實際情況進行更仔細、更合理或者更有效的規(guī)劃。測距子函數(shù)中的計算距離單位改成了mm,也就是數(shù)值擴大了10倍,然后取整,這樣測得的數(shù)據(jù)就可以存放在數(shù)組里了。這樣做一方面是因為AT89S52單片機中的數(shù)組不能存放浮點型數(shù)據(jù),另一方面是因為數(shù)據(jù)存儲器容量有限,不能存儲大量數(shù)據(jù)。float型數(shù)據(jù)占用64字節(jié),所以將其強制轉(zhuǎn)換成無符號整型,以節(jié)約存儲空間,也可以用無符號字符型表示。紅外測距云臺導(dǎo)航機器人的制作讓機器人一邊運動、一邊測距的技巧是:在機器人運動時,電機低電平延時的20ms用來執(zhí)行角度舵機的轉(zhuǎn)動(因為電機低電平延時需要20ms,剛好是角度舵機轉(zhuǎn)動的一個周期)。角度舵機從右向左轉(zhuǎn)、從左向右轉(zhuǎn)的起始角度需要設(shè)置標(biāo)志,分別進行遞增和遞減計數(shù)。在數(shù)組內(nèi)存儲的數(shù)據(jù)用完后就還原為初值。紅外測距云臺導(dǎo)航機器人的制作04D/A轉(zhuǎn)換和機器人LED的亮度控制D/A轉(zhuǎn)換器是一種將數(shù)字量信號轉(zhuǎn)換成模擬量信號的器件。要想使單片機輸出模擬信號,需要在輸出級中加上D/A轉(zhuǎn)換器,即D/A轉(zhuǎn)換芯片。D/A轉(zhuǎn)換芯片的輸出可以是電流,也可以是電壓,由數(shù)字輸入和參考電壓組合進行控制。大多數(shù)常用D/A轉(zhuǎn)換芯片的輸入數(shù)據(jù)采用二進制碼或BCD碼的形式。較常用的D/A轉(zhuǎn)換芯片有20個引腳封裝的8位數(shù)據(jù)并行通信芯片DAC0832,以及8個引腳封裝的串行輸入且輸出為電壓型的芯片TLC6519,通過3根串行總線就可以完成10位數(shù)據(jù)的串行輸入。D/A轉(zhuǎn)換和機器人LED的亮度控制本任務(wù)使用的是價格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率、電流型輸出的D/A轉(zhuǎn)換芯片DAC0832,它主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器及輸入控制電路4部分組成。通過對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器設(shè)置不同的控制方式,DAC0832可以工作在3種不同方式下:直通方式、單緩沖方式和雙緩沖方式。D/A轉(zhuǎn)換和機器人LED的亮度控制本任務(wù)選擇直通方式。DAC寄存器的輸出在實際應(yīng)用時需要外接運算放大器(簡稱運放),使之成為電壓型輸出的。這里使用的是LM324運放。本任務(wù)所用元器件包括:智能機器人小車1輛,DAC0832芯片1個,LM324運放芯片1個,直流電源模塊(提供12V和-12V直流電源)1個,跳線、導(dǎo)線、杜邦線若干。D/A轉(zhuǎn)換和機器人LED的亮度控制D/A轉(zhuǎn)換和機器人LED的亮度控制DAC0832芯片和LM324芯片的連接電路如圖5.11所示。D/A轉(zhuǎn)換和機器人LED的亮度控制LM324芯片的電路連接實物圖如圖5.13所示。D/A轉(zhuǎn)換和機器人LED的亮度控制DAC0832芯片的電路連接實物圖如圖5.14所示。05工程素質(zhì)和技能歸納①A/D轉(zhuǎn)換的原理和芯片的選擇。②根據(jù)轉(zhuǎn)換芯片的工作時序編寫芯片驅(qū)動程序,即數(shù)據(jù)讀/寫程序。③紅外傳感器(測距)的使用和編程。④角度舵機的使用和基于紅外云臺測距傳感器的漫游機器人的制作和編程。⑤D/A轉(zhuǎn)換的原理和芯片的選擇。工程素質(zhì)和技能歸納謝謝觀看機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)SPI與溫濕度檢測機器人的制作機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)第六章01溫濕度傳感器與溫濕度測量在庫房存放物品時,常需要將庫房內(nèi)的溫濕度控制在一定的范圍內(nèi)。例如,糧倉內(nèi)溫濕度不合適會導(dǎo)致糧食霉變;檔案室內(nèi)溫濕度不合適會導(dǎo)致字跡產(chǎn)生油滲、擴散和褪色等現(xiàn)象,或?qū)е录垙垙姸认陆挡⒆躺泻ι?;一些特殊倉庫在某一溫濕度條件下甚至?xí)a(chǎn)生有毒氣體。為了保證庫存物品安全和良好的工作環(huán)境,對庫房溫濕度的檢測是必要的。溫濕度傳感器與溫濕度測量市面上已經(jīng)出現(xiàn)了一些智能化的“庫房溫濕度巡檢和聯(lián)動控制系統(tǒng)”,此類系統(tǒng)通過傳感器檢測溫濕度,并將數(shù)據(jù)傳回計算機,計算機系統(tǒng)實時監(jiān)控庫房溫濕度的變化情況,當(dāng)溫濕度超過一定范圍時,啟動或關(guān)閉溫濕度控制設(shè)備,從而實現(xiàn)實時調(diào)節(jié)庫房溫濕度的功能。溫濕度傳感器與溫濕度測量本任務(wù)要求利用Sensirion溫濕度傳感器和C51教學(xué)機器人設(shè)計一款溫濕度檢測機器人,它能夠?qū)崟r檢測機器人所在位置的溫濕度和露點,并將所測數(shù)據(jù)通過串口以9600bit/s的速度傳給計算機。溫濕度傳感器與溫濕度測量本任務(wù)的學(xué)習(xí)目的如下①認識Sensirion溫濕度傳感器。②認識Sensirion溫濕度傳感器的通信接口。③編寫程序,讀取傳感器數(shù)據(jù)。溫濕度傳感器與溫濕度測量溫濕度傳感器與溫濕度測量Sensirion溫濕度傳感器實物圖如圖6.1所示。Sensirion溫濕度傳感器簡介由圖可知,Sensirion溫濕度傳感器采用一塊貼片式的SHT11數(shù)字溫濕度傳感器芯片。通過標(biāo)定得到的校準(zhǔn)系數(shù)以程序形式存儲在芯片本身的OTP(OneTimeProgrammable)內(nèi)存中。通過兩線制的串口與內(nèi)部的電壓調(diào)整,使外圍系統(tǒng)集成變得快速而簡單。微小體積、極低功耗等優(yōu)點使其成為各類應(yīng)用的首選。溫濕度傳感器與溫濕度測量溫濕度傳感器的工作原理Sensirion溫濕度傳感器包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的溫度敏感元件,這兩個敏感元件與一個14位的A/D轉(zhuǎn)換器及一個串口電路設(shè)計在同一個芯片上。敏感元件所產(chǎn)生的模擬信號通過A/D轉(zhuǎn)換器被轉(zhuǎn)換為數(shù)字信號,信號通過兩線制數(shù)字接口輸出。該傳感器可用于測量相對濕度、溫度和露點。各物理量的值可以根據(jù)讀到的數(shù)據(jù)按照一定的方法計算得到。溫濕度傳感器與溫濕度測量溫濕度傳感器與溫濕度測量濕度轉(zhuǎn)換系數(shù)C1、C2、C3見表6.1。溫濕度傳感器與溫濕度測量溫度補償系數(shù)T1、T2見表6.2。溫濕度傳感器與溫濕度測量溫度轉(zhuǎn)換系數(shù)D1、D2的取值參照表6.3。露點指空氣在含水量和氣壓都不改變的條件下,冷卻到飽和時的溫度。形象地說就是空氣中的水蒸氣在變?yōu)槁吨闀r的溫度。當(dāng)空氣中的含水量已達到飽和時,氣溫與露點相同;當(dāng)含水量未達到飽和時,氣溫一定高于露點,所以露點與氣溫的差值可以表示空氣中的含水量距離飽和的程度?;诩t外測距導(dǎo)航的漫游機器人的制作和編程溫濕度傳感器與溫濕度測量圖6.2所示為Sensirion溫濕度傳感器的引腳說明。各引腳的具體定義如下。①DATA:1引腳,數(shù)據(jù)輸出端。②SCK:3引腳,時鐘信號輸入端,輸入Clock信號。③Vss:4引腳,地。④VDD:8引腳,電源。溫濕度傳感器與溫濕度測量Sensirion溫濕度傳感器一共有8個引腳,其中2、5、6、7是空引腳。在本任務(wù)中使用AT89S52單片機作為控制芯片,將DATA(數(shù)據(jù))引腳接至單片機的P13引腳,SCK引腳接至單片機的P12引腳。基于紅外測距導(dǎo)航的漫游機器人的制作和編程溫濕度傳感器與溫濕度測量Sensirion溫濕度傳感器的電路連接如圖6.3所示。①電源(VDD)。SHT11芯片的供電電壓為2.4~5.5V,這里使用兩輪機器人上的5V電源。傳感器在上電后要等待11ms來完成“休眠”,在此期間發(fā)送任何指令均無效。②時鐘信號(Clock信號)。Clock信號用于微處理器與SHT11之間的通信同步。由于端口包含了完全靜止邏輯,因而不存在最小時鐘頻率。③數(shù)據(jù)輸出端(DATA)。DATA端口用于數(shù)據(jù)的輸出,在Clock信號下降沿之后改變狀態(tài),并僅在Clock信號上升沿有效。溫濕度傳感器與溫濕度測量在數(shù)據(jù)傳輸期間,當(dāng)Clock信號為高電平時,DATA輸出必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動DATA為低電平,需要一個外部的上拉電阻將信號拉至高電平。需要注意的是,SHT11應(yīng)用的串口技術(shù)是SPI技術(shù),在傳感器信號讀取及電源損壞方面都做了優(yōu)化處理,但與r2C接口不兼容。溫濕度傳感器與溫濕度測量溫濕度傳感器與溫濕度測量通信復(fù)位時序圖如圖6.4所示。溫濕度傳感器與溫濕度測量啟動傳輸時序圖如圖6.5所示。當(dāng)Clock信號為高電平時,DATA翻轉(zhuǎn)為低電平,接著Clock信號變?yōu)榈碗娖?,然后在Clock信號為高電平時,DATA翻轉(zhuǎn)為高電平,如圖6.5所示。后續(xù)命令包含3個地址位(目前只支持“000”)和5個命令位。SHT11會以下述方式表示已正確地接收到指令:在第8個Clock信號下降沿之后,將DATA被拉為低電平(ACK位)。在第9個Clock信號下降沿之后,釋放DATA(恢復(fù)高電平)。溫濕度傳感器與溫濕度測量程序通過向傳感器發(fā)送命令測量溫濕度,發(fā)送00000011表示測量溫度,發(fā)送00000101表示測量濕度。在發(fā)送測量命令后,控制器需要等待測量結(jié)束,這個過程大概需要11/55/210ms(分別對應(yīng)8/12/14位的測量),確切時間與晶振有關(guān)。SHT11模塊通過下拉DATA至低電平,表示測量結(jié)束。控制器在觸發(fā)Clock信號前,必須等待這個完成信號。溫濕度傳感器與溫濕度測量在啟動傳輸后,接著傳輸2字節(jié)的測量數(shù)據(jù)和1字節(jié)的CRC奇偶校驗位。單片機需要通過下拉DATA為低電平,來確認每字節(jié)。所有的數(shù)據(jù)從MSB開始,右邊的數(shù)據(jù)有效(例如,對于12位數(shù)據(jù),從第5個Clock信號起算作MSB;而對于8位數(shù)據(jù),首字節(jié)則無意義)。用CRC數(shù)據(jù)的確認位表明通信結(jié)束。如果不使用CRC-8校驗,控制器可以在測量值LSB后,通過保持確認位ASK高電平來中止通信。溫濕度傳感器與溫濕度測量對于所測數(shù)據(jù)如何換算成物理量,已在本任務(wù)前面介紹過,這里不再贅述。程序根據(jù)當(dāng)前所讀取的數(shù)據(jù),通過公式計算,得到溫濕度及露點,然后輸出溫濕度和露點的值?;诩t外測距導(dǎo)航的漫游機器人的制作和編程02溫濕度檢測機器人的制作本任務(wù)要求將在任務(wù)6.1中編寫的溫濕度檢測程序與在第5章中開發(fā)的漫游機器人結(jié)合起來,讓機器人在漫游的過程中每隔5s測量1次溫濕度,并將測量結(jié)果顯示到LCD上。溫濕度檢測機器人的制作修改并補充任務(wù)6.1中的主程序,讓機器人一邊漫游,一邊通過LCD顯示測量到的溫濕度數(shù)據(jù)。機器人漫游可以采用第5章中的紅外測距云臺傳感器進行導(dǎo)航。在修改程序時注意單片機接口資源的分配。溫濕度檢測機器人的制作03工程素質(zhì)和技能歸納①SPI技術(shù)與智能傳感器技術(shù)的應(yīng)用。②智能溫濕度傳感器驅(qū)動程序的編寫。③溫濕度檢測機器人的制作。工程素質(zhì)和技能歸納謝謝觀看機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)綜合比賽項目——“機器人高鐵游中國”比賽機器人制作與開發(fā)(單片機技術(shù)及應(yīng)用)(第2版)第七章01采用RFID讀卡器讀取RFID卡號采用RFID讀卡器讀取RFID卡號本章使用的RFID讀卡器如圖7.2所示。該讀卡器具有以下特點。①可低功耗讀取無源RFID卡(標(biāo)簽卡)。②采用串口,波特率為9600bit/s。③輸入Oxab時,允許啟用軟件。采用RFID讀卡器讀取RFID卡號該讀卡器只能讀取EM4100無源電子標(biāo)簽卡,這些電子標(biāo)簽卡屬于只讀系列125kHz標(biāo)簽卡,每個標(biāo)簽卡包含一個唯一的標(biāo)識符(ID)。RFID讀卡器在讀到ID后,通過串口將其傳輸給單片機或其他信息處理設(shè)備。采用RFID讀卡器讀取RFID卡號當(dāng)RFID讀卡器開始工作,并且RFID標(biāo)簽在其有效讀取的范圍內(nèi)時,其將唯一的ID以l4字節(jié)的十六進制ID和1字節(jié)的校驗碼的方式發(fā)送給主機。采用RFID讀卡器讀取RFID卡號采用RFID讀卡器讀取RFID卡號發(fā)送信息的格式如表7.1所示。單片機在接收RFID讀卡器發(fā)回的信息時,校驗碼有助于識別正確的接收信息。前面4字節(jié)是實際標(biāo)簽卡的唯一ID,最后1字節(jié)是校驗碼。例如,1個標(biāo)簽卡的有效ID是008e3dc6(0009321926),將按照如下位來發(fā)送:0x00,0x8e,0x3d,0xc6,0x75。所有的通信都傳送8個數(shù)據(jù)位(無校驗位)、1個停止位,從最低位開始。RFID讀卡器串口通信波特率固定為9600bit/s。采用RFID讀卡器讀取RFID卡號當(dāng)RFID讀卡器上電且單片機TX端口給模塊發(fā)一次啟動信號時,RFID讀卡器進入一次有效狀態(tài),驅(qū)動天線查詢標(biāo)簽卡。該模塊處于活動狀態(tài),電流消耗會增加。當(dāng)標(biāo)簽卡面對天線且在RFID天線區(qū)域的正前方,保證距離不超過5cm時,RFID讀卡器即可正常讀取標(biāo)簽卡信息。在復(fù)雜電磁環(huán)境中,建議在讀取標(biāo)簽卡信息過程中增加1s間隔,避免由于電磁噪聲導(dǎo)致誤讀發(fā)生。采用RFID讀卡器讀取RFID卡號RFID讀卡器接口特性采用RFID讀卡器讀取RFID卡號在Vcc=5V,Ta=25℃時,RFID讀卡器的直流特性如表7.2所示。采用RFID讀卡器讀取RFID卡號RFID讀卡器僅用4個引腳(Vec,TX,RX,GND),4個引腳的說明如表7.3所示。采用RFID讀卡器讀取RFID卡號引腳排列如圖7.3所示。RFID讀卡器的安裝和電路連接RFID讀卡器的安裝本任務(wù)需要將RFID讀卡器安裝到機器人的前端,安裝RFID讀卡器所需的配件包括:RFID讀卡器1個、M3×20單通銅螺柱1個、開槽連接桿件1個、4-Pin杜邦線1條、螺釘和螺母若干、導(dǎo)線若干。采用RFID讀卡器讀取RFID卡號采用RFID讀卡器讀取RFID卡號在安裝RFID讀卡器所需的機械配件中,M3×20單通銅螺柱和開槽連接桿件分別如圖7.4和圖7.5所示。采用RFID讀卡器讀取RFID卡號采用RFID讀卡器讀取RFID卡號用連接件和連接桿將RFID讀卡器固定于機器人的前端,具體的安裝方式如圖7.6和圖7.7所示。采用RFID讀卡器讀取RFID卡號采用RFID讀卡器讀取RFID卡號RFID讀卡器各引腳與C51教學(xué)板的連接方式如表7.4所示。RFID讀卡器讀取標(biāo)簽卡信息程序程序設(shè)計先將RFID讀卡器安裝在機器人的底部中心,并將RFID讀卡器與C51教學(xué)板連接好,接著編寫一個用RFID讀卡器讀取標(biāo)簽卡信息的程序。采用RFID讀卡器讀取RFID卡號該程序要完成如下功能。①

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論