在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用AVR微控制器集成的ADC從周圍環境中獲取模擬讀數

454398 ? 來源:工程師吳畏 ? 2019-07-31 16:55 ? 次閱讀

原理圖

怎樣用AVR微控制器集成的ADC從周圍環境中獲取模擬讀數

ADC的快速回顧

大多數人認為模擬領域已經落后于他們,但事實是模擬領域從未如此強大!隨著物聯網的興起和傳感器的生產,全球每秒都在進行數十億的模擬讀數。這只是微控制器生產商將ADC外設直接集成到其器件中的眾多原因之一。

ADC將模擬信號轉換為數字信號

通常測量ADC

由于ADC是數字的,模擬信號被量化為離散的步驟

這意味著ADC只能準確無誤地實現它們的位寬(即10位ADC)測量特定電壓電平

最大數字值等于ADC 正參考電壓(通常為VCC)

最小數字值等于ADC 負參考(通常為GND)

ADC需要時間來轉換信號

在ATmega168中,ADC具有以下特性:

10位分辨率(+ Vref和-Vref之間的1024個離散電壓電平)

精度為2LSB(高8位精度保證)

高達15,000個樣本/秒

6個多路復用輸入源

1.1V 帶隙參考

配置ADC

我們可以使用之前ADC,需要配置用于ADC測量的外設和I/O引腳。

左對齊還是右對齊?

當ADC完成轉換操作后,結果存儲在一對中8位寄存器(10位結果不適合單個8位寄存器)。由于ATmega是原生的8位器件,因此使用8位ADC不如10位結果更有意義,但這會降低結果的分辨率。但是,必須正確讀取10位數的8位結果,否則結果將不正確。為此,我們需要讀取前8位(位9-2),而不是后8位。使用ADLAR位很容易實現,當設置為1時,將使ADC結果保持正確。這意味著我們不需要讀取結果寄存器(ADCH和ADCL)并進行一些操作,而是直接讀取ADCH并忘記ADCL。

配置I/O端口

現在我們可以直接讀取ADCH以獲得8位結果,而不必擔心位操作(在分辨率的成本),我們現在需要配置我們的模擬引腳。默認情況下,ATmega168上的I/O引腳配置為數字引腳,這意味著它們只能處理1和0。因此,要將輸入配置為模擬引腳,我們使用DIDR0寄存器,它代表數字輸入禁用寄存器。不幸的是,并非每個引腳都具有模擬輸入的能力,因此請務必注意帶有標簽ADCx的引腳。例如,引腳23至28是ATmega168上的模擬輸入引腳。

配置ADC模塊

配置ADC的最后階段包括打開ADC,設置預縮放器時間以及確定ADC的參考值。

通過將ADCSRA寄存器中的ADEN位置1來打開ADC模塊。

在大多數情況下,預縮放器不是太重要了,為了簡單起見,我們將預縮放器設置為其最大值(設置ADCSRA寄存器中的所有ADPSx位)。

ATmega168上的ADC可以介于0V和某個參考電壓之間,通常設置為VCC。由于大多數電路都是這種情況,我們需要將Aref引腳連接到也接地的電容,我們還需要將REFSx位設置為使用AVCC作為參考。

使用ADC

使用ADC非常簡單。選擇將從中取出模擬讀數的通道,然后,為了開始轉換,ADSC位(在ADCSRA中找到)將打開。轉換完成后,ADC硬件會自動清零ADSC位。

通過設置ADMUX寄存器中的相應多路復用器位MUX3-MUX0來選擇要讀取的模擬引腳。

軟件示例

此示例從ADC0(PC0,引腳23)讀取模擬值并進行比較他們到一個特定的價值。如果模擬讀數超出指定值(定義為TRIGPOINT),LED(連接到PD0,引腳2)將打開。一旦ADC讀數低于指定值,LED就會關閉!

/*

* AVR IO.c

*

* Created: 03/01/2018 11:25:21

* Author : RobinLaptop

*/

#define F_CPU 1000000UL

#define TRIGPOINT 128

#include

#include

int main(void)

{

// Configure PORT D bit 0 to an output

DDRD = 0b00000001;

// Configure PORT C bit 0 to an input

DDRC = 0b00000000;

// Configure ADC to be left justified, use AVCC as reference, and select ADC0 as ADC input

ADMUX = 0b01100000;

// Enable the ADC and set the prescaler to max value (128)

ADCSRA = 0b10000111;

// Main program loop

while (1)

{

// Start an ADC conversion by setting ADSC bit (bit 6)

ADCSRA = ADCSRA | (1 《《 ADSC);

// Wait until the ADSC bit has been cleared

while(ADCSRA & (1 《《 ADSC));

if(ADCH 》 TRIGPOINT)

{

// Turn LED on

PORTD = PORTD | (1 《《 PD0);

}

else

{

// Turn LED off

PORTD = PORTD & ~(1 《《 PD0);

}

}

}

結論

本文僅介紹ADC背后的基礎知識,但我們已經開始從現實世界中進行模擬測量。當然,您可以閱讀數據表并了解其他更高級的功能,包括觸發和其他電壓參考。但就目前而言,這應該為您提供足夠的知識,開始制作需要讀取模擬值的AVR項目!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • AVR
    AVR
    +關注

    關注

    11

    文章

    1124

    瀏覽量

    78782
  • adc
    adc
    +關注

    關注

    98

    文章

    6525

    瀏覽量

    545235
收藏 人收藏

    評論

    相關推薦

    汽車微控制器虛擬控制器的分類與實踐

    虛擬控制器(V-ECU)是指通過軟件在模擬環境運行,模仿實際硬件控制器功能的系統組件。它可用于開發、測試和驗證嵌入式系統,而無需依賴實際的
    的頭像 發表于 01-06 15:23 ?593次閱讀
    汽車<b class='flag-5'>微控制器</b>虛擬<b class='flag-5'>控制器</b>的分類與實踐

    新唐科技推出專為高溫度環境設計的微控制器

    高溫高壓環境微控制器的智慧之選 在當今科技飛速發展的時代,各行各業對于電子設備的性能要求日益提升,尤其是在極端環境下,微控制器的穩定性和可靠性更是成為了衡量產品品質的關鍵因素。面對高
    的頭像 發表于 12-23 13:54 ?262次閱讀

    嵌入式系統微控制器與微處理的區別

    它們在現代電子設備的核心作用,并探討它們如何持續推動技術創新的未來。什么是嵌入式微控制器?嵌入式微控制器是設計用于在電子系統執行特定任務的緊湊型
    的頭像 發表于 10-14 11:02 ?504次閱讀
    嵌入式系統<b class='flag-5'>中</b><b class='flag-5'>微控制器</b>與微處理<b class='flag-5'>器</b>的區別

    什么是微控制器/它的關鍵組成部分有哪些?

    微控制器
    芯廣場
    發布于 :2024年09月18日 15:02:33

    針對Stellaris?系列微控制器ADC過采樣技術

    電子發燒友網站提供《針對Stellaris?系列微控制器ADC過采樣技術.pdf》資料免費下載
    發表于 08-29 14:46 ?0次下載
    針對Stellaris?系列<b class='flag-5'>微控制器</b>的<b class='flag-5'>ADC</b>過采樣技術

    微控制器內部的存儲有哪些

    微控制器(MCU)內部的存儲微控制器系統的重要組成部分,它負責存儲程序代碼、數據以及控制邏輯等信息。這些存儲類型多樣,各具特點,共同支
    的頭像 發表于 08-22 10:41 ?837次閱讀

    微控制器的結構和應用

    微控制器(Microcontroller Unit,簡稱MCU)作為嵌入式系統的核心部件,其原理和應用在現代科技發展占據了舉足輕重的地位。本文將從微控制器的原理、基本結構、工作原理、性能特點以及廣泛的應用領域等方面進行詳細闡述
    的頭像 發表于 08-22 10:40 ?1243次閱讀

    可以為XMC 1400系列微控制器使用哪種集成開發環境

    我們可以為 XMC 1400 系列微控制器使用哪種集成開發環境
    發表于 07-22 07:41

    在TC3Exx微控制器中使用QSPI,RXEXIT寄存返回0xFFFFFF的原因?

    嗨, 我在 TC3Exx 微控制器中使用 QSPI。 我已將其編碼為回環模式。 問題是,每當我試圖 RXEXIT 寄存讀取數據時,結果都是 1。 我知道默認讀數會得出這個值。 我
    發表于 06-21 06:35

    微控制器與運動控制器的區別

    隨著現代工業技術的快速發展,控制技術在各種機械設備扮演著越來越重要的角色。微控制器和運動控制器作為兩種常見的控制設備,在各自的領域發揮著重
    的頭像 發表于 06-13 14:52 ?678次閱讀

    微控制器的定義和工作原理

    微控制器,作為現代電子技術的核心部件,其發展歷程與電子技術的進步息息相關。自20世紀70年代中期誕生以來,微控制器憑借其高度集成化、低成本、高性能等優勢,已廣泛應用于電機
    的頭像 發表于 05-24 17:17 ?1802次閱讀

    如何將CYKIT-028 TFT模塊與Raspberry Pi和ESP32微控制器結合使用?

    我目前正在探索如何將 CYKIT-028 TFT 模塊與 Raspberry Pi 和 ESP32 微控制器結合使用。 不過,在選擇集成開發環境(IDE)和使用 PSOC Creator 的必要性
    發表于 05-21 07:36

    嵌入式微控制器的自動代碼生成

    然而,在工作,電氣工程師經常被分配對嵌入式微控制器進行編程的任務,這是有充分理由的:他們在如何控制電力電子電路方面擁有經驗,并且了解整個系統的要求。此外,他們對微控制器的片上外設(例
    發表于 05-03 17:33 ?487次閱讀
    嵌入式<b class='flag-5'>微控制器</b>的自動代碼生成

    電力電容器的使用對周圍環境有哪些要求

    電力電容器,在電力系統扮演著重要的角色。它不僅能夠提高電力質量,還能提高電力傳輸的效率。然而,在使用電力電容器的過程,我們需要注意一些環境要求,以確保其正常運行,同時減少對周圍環境
    的頭像 發表于 03-15 14:35 ?918次閱讀

    針對 C2000? 微控制器集成微控制器 (MCU) 電源解決方案數據表

    電子發燒友網站提供《針對 C2000? 微控制器集成微控制器 (MCU) 電源解決方案數據表.pdf》資料免費下載
    發表于 03-04 14:12 ?0次下載
    針對 C2000? <b class='flag-5'>微控制器</b>的<b class='flag-5'>集成</b><b class='flag-5'>微控制器</b> (MCU) 電源解決方案數據表
    主站蜘蛛池模板: 国卡一卡二卡三免费网站| 色播六月| 在线99热| 日本特级黄录像片| 天天操夜夜操美女| 天天干夜夜笙歌| 欧美在线bdsm调教一区| 一级不卡毛片| 精品99久久| 国产亚洲美女| 男人的天堂色偷偷之色偷偷| 美女h片| 国产欧美乱码在线看| 91大神大战丝袜美女在线观看| 午夜精品久久久久久久| 成人在线网| 夜夜爱夜夜爽| 久久国产精品免费| 免费又黄又爽的禁片视频| 久久久美女视频| 日日操夜夜| 特黄日韩免费一区二区三区| 久热国产精品| 看黄网站在线看| 妇女交性大片| 免费一区二区三区| 亚洲国产成人久久99精品| 色多多黄色| 国产欧美久久久精品影院| 午夜影院啊啊啊| 91福利网winktv| 免费伦费一区二区三区四区| 无遮挡一级毛片| 久久噜噜噜久久亚洲va久| 亚洲第一视频在线| 天天曰夜夜曰| 8050午夜| 一色屋免费视频| 人与牲动交xxxxbbb| www.av在线| 天天操夜夜艹|