<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AVR單片機(jī)的自行車行車記錄儀,包括軟硬件具體

          基于AVR單片機(jī)的自行車行車記錄儀,包括軟硬件具體

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          2.3 實(shí)現(xiàn)的主要功能

          顯示實(shí)時速度和平均速度

          顯示總里程和單次行車?yán)锍?p>顯示時間和溫度

          節(jié)電保護(hù)

          行車信息存儲

          用戶菜單UI界面

          時間修改

          輪徑設(shè)置,里程設(shè)置,等一些參數(shù)的設(shè)置

          打印行車記錄統(tǒng)計信息

          貪吃蛇小游戲

          3. 硬件系統(tǒng)設(shè)計

          3.1 主控板

          主控板主要包括:CPU,Atmega64;時鐘芯片,DS1302;存儲芯片,24LC64;JTAG在線仿真接口;中斷獨(dú)立按鍵模塊;LED調(diào)試電路;12864液晶顯示接口;DS18B20接口;接口;打印機(jī)驅(qū)動板接口。

          對單片機(jī)的選擇主要有以下要求:

          在存儲方面,使用的是ATMEL公司的AT24LC64 EEPROM存儲器,該小存儲器走的是IIC總線模式,雖然可以用一般的單片機(jī)模擬IIC總線,但是為了提高效率則必須選擇具有IIC總線接口的單片機(jī),這個一般的51單片機(jī)已經(jīng)不能滿足,所以需考慮其它單片機(jī)。

          時鐘模塊,用的是達(dá)拉斯的DS1302芯片,只需普通的端口操作就能完成。

          打印機(jī)模塊,有下面的打印機(jī)實(shí)現(xiàn)原理可知,我們必須選擇具有雙邊沿觸發(fā)的單片機(jī),有這個功能的單片機(jī)ATMEL的AVR系列的中高端單片機(jī)能滿足,比如Atmega64及以上的單片機(jī)都具有這一功能。

          ,測速必須具有兩個內(nèi)置外設(shè),一個是外部下降沿中斷,一個是內(nèi)部定時器。

          內(nèi)存空間要求:在做用戶界面以及制作貪吃蛇等游戲時都必須開很大的緩存,所以必須具備一定的內(nèi)存容量,初步估計需要2K內(nèi)存以上。

          由以上幾點(diǎn)分析,這里我選擇了ATMEL公司的AVR系列單片機(jī)Atmega64,該款單片機(jī)價格便宜,功能強(qiáng)大,能滿足上面幾點(diǎn)的全部要求。

          結(jié)論:最終選擇的單片機(jī)為ATMEL公司的Atmega64八位高性能單片機(jī)。

          主控系統(tǒng)的核心如圖3.1所示。

          圖3.1 核心板最小系統(tǒng)

          圖3.1 核心板最小系統(tǒng)

          3.2 霍爾傳感器

          霍爾傳感器是實(shí)現(xiàn)最核心的部件,記錄儀的核心記錄參數(shù)(車速),便是由霍爾傳感器實(shí)現(xiàn)的,所以在制作霍爾傳感器時必須嚴(yán)格把關(guān)。

          3.2.1霍爾傳感器工作原理

          霍爾傳感器,顧名思義,利用的是霍爾效應(yīng)。

          霍爾效應(yīng)的本質(zhì)是:固體材料中的載流子在外加磁場中運(yùn)動時,因?yàn)槭艿铰鍋銎澚Φ淖饔枚管壽E發(fā)生偏移,并在材料兩側(cè)產(chǎn)生電荷積累,形成垂直于電流方向的電場,最終使載流子受到的洛侖茲力與電場斥力相平衡,從而在兩側(cè)建立起一個穩(wěn)定的電勢差即霍爾電壓。正交電場和電流強(qiáng)度與磁場強(qiáng)度的乘積之比就是霍爾系數(shù)。平行電場和電流強(qiáng)度之比就是電阻率。大量的研究揭示:參加材料導(dǎo)電過程的不僅有帶負(fù)電的電子,還有帶正電的空穴。

          本記錄儀中使用的霍爾元件A3144E正是利用這一效應(yīng)而產(chǎn)生的。其實(shí)物結(jié)構(gòu)圖如圖3.2所示

          圖3.2 霍爾元件結(jié)構(gòu)圖

          圖3.2 霍爾元件結(jié)構(gòu)圖

          霍爾元件工作原理:實(shí)物結(jié)構(gòu)圖如上圖3.2所示,3腳為信號腳,1腳和2腳分別接電源和地。在沒有經(jīng)過磁場時,輸出為高電平,當(dāng)磁場漸漸變強(qiáng)時,則輸出的電平會漸漸變低,當(dāng)磁場周期性的出現(xiàn)時,在輸出腳便會出現(xiàn)一個正弦波電壓,霍爾元件信號輸出如圖3.3所示

          圖3.3 霍爾元件信號輸出

          圖3.3 霍爾元件信號輸出

          3.2.2 霍爾傳感器改良

          如上圖3.3所示在周期性磁場的作用下,霍爾元件,A3144E輸出的是一個周期性的正弦波,而單片機(jī)能識別的只是1或0的高低電平,如果把這個信號直接接單片機(jī)則有很多缺點(diǎn):

          單片機(jī)無法識別該信號除了高電平和低電平時的電平

          霍爾元件靈敏度低,只有在磁鐵靠的很近的時候才有反應(yīng)

          針對以上缺點(diǎn),需要對霍爾傳感器進(jìn)行改良,目的為了提高靈敏度和改善輸出波形,改良的電路圖如圖3.4所示

          圖3.4 改良的霍爾傳感器

          圖3.4 改良的霍爾傳感器

          工作原理:改良的霍爾傳感器如上圖3.4所示,在沒有磁場的情況下,3144輸出高電平,則運(yùn)算放大器輸出低電平,當(dāng)經(jīng)過磁場時,3144輸出電平漸漸變低,當(dāng)電平低于放大器負(fù)極時則放大器輸出低電平,從而通過單片機(jī)采集這個低電平信號。

          由以上工作原理可知,可以通過調(diào)節(jié)滑動變阻器R3,從而來調(diào)節(jié)觸發(fā)電平。并且通過點(diǎn)亮燈LED1來指示信號的輸出。

          改良后的霍爾傳感器信號輸出波形如圖3.5所示

          圖3.5 霍爾傳感器輸出信號

          圖3.5 霍爾傳感器輸出信號

          霍爾傳感器信號輸出如上圖3.5可知,經(jīng)過改良后的霍爾傳感器能輸出一個單片機(jī)能識別的方波,并且可以通過調(diào)節(jié)滑動變阻器R3來調(diào)節(jié)傳感器的觸發(fā)電平,同時通過指示燈LED1來指示信號的輸出,最主要達(dá)到了增強(qiáng)信號的可處理性的目的。

          3.3 打印機(jī)

          打印機(jī)在打印的時候需要大電流提供,而單片機(jī)的IO管腳最多只能提供20mA的電流,所以打印機(jī)在打印之前需要有額外的驅(qū)動電路來提供打印需要的電流。打印機(jī)實(shí)物接口如下圖3.6所示

          圖3.6 打印機(jī)實(shí)物接口

          圖3.6 打印機(jī)實(shí)物接口

          其中的信號接口如圖3.7所示

          圖 3.7 打印機(jī)信號接口

          圖 3.7 打印機(jī)信號接口

          打印機(jī)電機(jī)驅(qū)動如下圖 3.8所示,打印機(jī)主要信號包括,電機(jī)驅(qū)動信號:Motor(+),4個打印針驅(qū)動信號:(6,7,8,9)。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();