0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在MSP430G2中使用ADC使用Energia IDE讀取模擬電壓

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-16 17:24 ? 次閱讀

幾乎所有嵌入式應(yīng)用中使用的一個(gè)共同特性是ADC模塊(模數(shù)轉(zhuǎn)換器)。這些模數(shù)轉(zhuǎn)換器可以從溫度傳感器、傾斜傳感器電流傳感器、柔性傳感器等模擬傳感器讀取電壓。因此,在本教程中,我們將學(xué)習(xí)如何在MSP430G2中使用ADC使用Energia IDE讀取模擬電壓。我們將一個(gè)小電位計(jì)連接到MSP板,并向模擬引腳提供變化的電壓,讀取電壓并將其顯示在串行監(jiān)視器上。

了解 ADC 模塊:

相信我,連接和編程 MSP430G2 以讀取模擬電壓幾乎不需要 10 分鐘。但是,讓我們花一些時(shí)間來了解MSP板中的ADC模塊,以便我們能夠在所有即將推出的項(xiàng)目中有效地使用它。

微控制器是一種數(shù)字設(shè)備,這意味著它只能理解1和0。但在現(xiàn)實(shí)世界中,幾乎所有東西,如溫度、濕度、風(fēng)速等,本質(zhì)上都是模擬的。為了與這些模擬變化進(jìn)行交互,微控制器使用稱為ADC的模塊。有許多不同類型的ADC模塊可用,我們的MSP中使用的模塊是SAR 8通道10位ADC。

逐次逼近 (SAR) ADC:SAR ADC在比較器和一些邏輯對話的幫助下工作。這種類型的ADC使用基準(zhǔn)電壓(可變的),并使用比較器將輸入電壓與基準(zhǔn)電壓進(jìn)行比較,并從最高有效位(MSB)中保存差值(數(shù)字輸出)。比較的速度取決于MSP運(yùn)行的時(shí)鐘頻率(Fosc)。

10 位分辨率:該ADC是一款8通道10位ADC。這里術(shù)語 8 通道意味著有 8 個(gè) ADC 引腳,我們可以使用這些引腳測量模擬電壓。術(shù)語10位意味著ADC的分辨率。10 位表示 2 的 10 次方 (210) 即 1024。這是我們的ADC的樣本步進(jìn)數(shù),因此我們的ADC值范圍將從0到1023。該值將根據(jù)每步電壓值從 0 增加到 1023,可以使用以下公式計(jì)算

poYBAGN0rDKAYOCjAAAZDAaJasY915.png

注意:默認(rèn)情況下,在Energia中,參考電壓將設(shè)置為Vcc(~3v),您可以使用analogReference()選項(xiàng)改變參考電壓。

電路圖:

在之前的教程中,我們已經(jīng)學(xué)習(xí)了如何將LCD與MSP430G2接口,現(xiàn)在我們只需向MSP430添加一個(gè)電位計(jì),為其提供可變電壓并在LCD上顯示電壓值。如果您不知道LCD的接口,請回退到上面的鏈接并通讀它,因?yàn)槲覍⑻^信息以避免悔改。該項(xiàng)目的完整電路圖如下。

poYBAGN0rDaAOl86AACET8FINtM846.png

poYBAGN0rDqAGsAOAADxL49zQ98313.jpg

如您所見,這里使用了兩個(gè)電位計(jì),一個(gè)用于設(shè)置LCD的對比度,另一個(gè)用于為電路板提供可變電壓。在該電位器中,電位計(jì)的一端連接到Vcc,另一端連接到接地。中心引腳(藍(lán)線)連接到引腳P1.7。該引腳P1.7將提供0V (地)至3.5V (Vcc)的可變電壓。因此,我們必須對引腳P1.7進(jìn)行編程以讀取此可變電壓并將其顯示在LCD上。

在 Energia 中,我們需要知道引腳 P1.7 屬于哪個(gè)模擬通道?這可以通過參考下圖找到

poYBAGN0rD-AY4pcAAGlRcpsaTg495.jpg

您可以在右側(cè)看到P1.7引腳,該引腳屬于A7(通道7)。同樣,我們也可以找到其他引腳的相應(yīng)通道號。您可以使用從 A0 到 A7 的任何引腳來讀取模擬電壓,我選擇了 A7。

針對 ADC 對 MSP430 進(jìn)行編程:

對MSP430 進(jìn)行編程以讀取模擬電壓非常簡單。在此程序中,將讀取值的模擬值并使用該值計(jì)算電壓,然后在LCD屏幕上顯示兩者。完整的程序可以在此頁面的底部找到,下面我將以片段形式解釋該程序,以幫助您更好地理解。

我們首先定義LCD引腳。這些定義了 LCD 引腳連接到 MSP430 的哪個(gè)引腳。您可以參考您的連接以確保引腳分別連接

#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7

接下來,我們包括LCD顯示器的頭文件。這將調(diào)用包含有關(guān) MSP 應(yīng)如何與 LCD 通信的代碼的庫。默認(rèn)情況下,此庫將安裝在Energia IDE中,因此您無需費(fèi)心添加它。還要確保使用我們上面剛剛定義的引腳名稱調(diào)用函數(shù)液晶。

#include //This librarey is insatlled by default along with IDE LiquidCrystal lcd(RS, EN, D4, D5, D6, D7); //Let the librarey know how we have connected the LCD

在我們的 setup() 函數(shù)中,我們只會給出一條介紹消息以顯示在 LCD 屏幕上。我沒有深入,因?yàn)槲覀円呀?jīng)學(xué)會了如何將LCD與MSP430G2一起使用。

lcd.begin(16, 2); //We are using a 16*2 LCD display

lcd.setCursor (0,0); //Place the cursor at 1st row 1st column

lcd.print("MSP430G2553"); //Display a intro message

lcd.setCursor(0, 1); // set the cursor to 1st column 2nd row

lcd.print("-CircuitDigest"); //Display a intro message

最后,在我們的無限循環(huán)()函數(shù)中,我們開始讀取提供給A7引腳的電壓。正如我們已經(jīng)討論過的,微控制器是一個(gè)數(shù)字設(shè)備,它不能直接讀取電壓電平。使用SAR技術(shù),電壓電平從0映射到1024。這些值稱為 ADC 值,要獲取此 ADC 值,只需使用以下行

int val = analogRead(A7); // read the ADC value from pin A7

這里函數(shù)analogRead()用于讀取引腳的模擬值,我們在它里面指定了 A7,因?yàn)槲覀円褜⒖勺冸妷哼B接到引腳 P1.7。最后,我們將此值保存在名為“val”的變量中。此變量的類型是整數(shù),因?yàn)槲覀冎粫@取要存儲在此變量中的 0 到 1024 之間的值。

下一步是根據(jù)ADC值計(jì)算電壓值。為此,我們有以下公式

Voltage = (ADC Value / ADC Resolution) * Reference Voltage

在我們的例子中,我們已經(jīng)知道微控制器的ADC分辨率是1024。ADC 值也在上一行中找到,并存儲了名為 val 的變量。基準(zhǔn)電壓等于微控制器的工作電壓。當(dāng) MSP430 板通過 USB 電纜供電時(shí),工作電壓為3.6V。您還可以使用Vcc上的萬用表和電路板上的接地引腳來測量工作電壓。所以上面的公式適合我們的情況,如下所示

float voltage = (float(val)/1024) * 3.6; //formulae to convert the ADC value to voltage

您可能會對線浮點(diǎn)數(shù) (val) 感到困惑。這用于將變量 “val” 從 int 數(shù)據(jù)類型轉(zhuǎn)換為 “float” 數(shù)據(jù)類型。這種轉(zhuǎn)換是必需的,因?yàn)橹挥挟?dāng)我們在浮點(diǎn)數(shù)中得到 val/1024 的結(jié)果時(shí),我們才能將其乘以 3.6。如果以整數(shù)形式接收值,則始終為 0,結(jié)果也將為零。一旦我們計(jì)算了ADC值和電壓,剩下的就是在LCD屏幕上顯示結(jié)果,這可以使用以下行來完成

lcd.setCursor(0, 0); // set the cursor to column 0, line 0

lcd.print("ADC Val:");

lcd.print(val); //Display ADC value

lcd.setCursor(0, 1); // set the cursor to column 0, line 1

lcd.print("Voltage:");

lcd.print(voltage); //Display voltage

在這里,我們在第一行顯示了ADC的值,在第二行顯示了電壓的值。最后,我們延遲 100 磨秒并清除 LCD 屏幕。這是每 100 密耳將更新的值。

測試您的結(jié)果!

最后,我們歸結(jié)為有趣的部分,即測試我們的程序并使用它。只需按照電路圖所示進(jìn)行連接即可。我使用小型面包板進(jìn)行連接,并使用跳線將面包板連接到 MSP430。連接完成后,我的如下所示。

然后通過 Energia IDE 將下面給出的程序上傳到 MSP430 板。您應(yīng)該能夠在LCD上看到介紹文字,如果不使用電位計(jì)調(diào)整LCD的對比度,直到看到清晰的文字。另外,請嘗試按下重置按鈕。如果一切按預(yù)期工作,那么您應(yīng)該能夠看到以下屏幕。

pYYBAGN0rEOAC4JxAADpxYRPAb8944.jpg

現(xiàn)在改變電位計(jì),您還應(yīng)該看到LCD中顯示的電壓發(fā)生變化。讓我們驗(yàn)證一下是否正確測量了電壓 為此,請使用萬用表測量 POT 中心和地面上的電壓。萬用表上顯示的電壓應(yīng)接近LCD上顯示的值,如下圖所示。

poYBAGN0rESACGhKAADJHDZ8RRs569.jpg

就是這樣,我們已經(jīng)學(xué)會了如何使用MSP430板的ADC測量模擬電壓?,F(xiàn)在,我們可以將許多模擬傳感器與我們的電路板連接,以讀取實(shí)時(shí)參數(shù)

/*

* Reading Analog Voltage with MSP430 using Energia

*/


#define RS 2

#define EN 3

#define D4 4

#define D5 5

#define D6 6

#define D7 7





#include //This librarey is insatlled by default along with IDE

LiquidCrystal lcd(RS, EN, D4, D5, D6, D7); //Let the librarey know how we have connected the LCD


void setup() {

lcd.begin(16, 2); //We are using a 16*2 LCD display

lcd.setCursor (0,0); //Place the cursor at 1st row 1st column

lcd.print("MSP430G2553"); //Display a intro message

lcd.setCursor(0, 1); // set the cursor to 1st column 2nd row

lcd.print("-CircuitDigest"); //Display a intro message




delay(2000); //Wait for display to show info

lcd.clear(); //Then clean it


}



void loop() {

int val = analogRead(A7); // read the ADC value from pin A7

Voltage = (ADC Value / ADC Resolution) * Reference Voltage

float voltage = (float(val)/1024) * 3.6; //formulae to convert the ADC value to voltage



lcd.setCursor(0, 0); // set the cursor to column 0, line 0

lcd.print("ADC Val:");

lcd.print(val); //Display ADC value

lcd.setCursor(0, 1); // set the cursor to column 0, line 1

lcd.print("Voltage:");

lcd.print(voltage); //Display voltage



}


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • adc
    adc
    +關(guān)注

    關(guān)注

    98

    文章

    6396

    瀏覽量

    543806
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

    46614
  • 模擬電壓
    +關(guān)注

    關(guān)注

    6

    文章

    64

    瀏覽量

    18278
  • MSP430G2
    +關(guān)注

    關(guān)注

    1

    文章

    18

    瀏覽量

    12873
收藏 人收藏

    評論

    相關(guān)推薦

    Protues可不可以仿真MSP430G2系列???

    各位有么有MSP430G2系列的Protues仿真模型???
    發(fā)表于 01-24 15:36

    MSP430G2 LaunchPad的USB求解決

    MSP430G2 LaunchPad的USB求解決
    發(fā)表于 04-21 09:57

    MSP430G2系列單片機(jī)原理與實(shí)踐教程完整版

    MSP430G2系列單片機(jī)原理與實(shí)踐教程完整版,
    發(fā)表于 05-11 10:49

    msp430G2系列原理與實(shí)踐教程

    msp430G2系列原理與實(shí)踐教程
    發(fā)表于 05-13 13:19

    請問有ADS1120多機(jī)與MSP430G2通訊的例程程序嗎?

    MSP430G2與多個(gè)ADS1120通訊,單獨(dú)焊接一塊ADS1120一切正常,連接多個(gè)ADS1120芯片后,雖然其余ADS1120的CS拉高,工作的ADS1120只能讀取一次數(shù)值,請問有無多機(jī)通信案例程序以供參考。
    發(fā)表于 05-15 14:31

    如何使用MSP430G2 LaunchPad開發(fā)板驅(qū)動伺服電機(jī)

    在本篇文章,我們將主要介紹一些有關(guān)伺服電機(jī)的基礎(chǔ)知識以及如何將伺服電機(jī)與MSP430G2 LaunchPad開發(fā)板進(jìn)行連接。 MSP-EXP430G2是德州儀器提供的開發(fā)工具,也稱為
    發(fā)表于 06-28 09:10

    如何使用MSP430G2 LaunchPad開發(fā)板驅(qū)動伺服電機(jī)?

    如何使用MSP430G2 LaunchPad開發(fā)板驅(qū)動伺服電機(jī)?
    發(fā)表于 09-29 07:08

    有沒有人嘗試過使用MSP430G2板或任何其他發(fā)射板來對ESP-01進(jìn)行通信和編程?

    有沒有人嘗試過使用 MSP430G2 板或任何其他發(fā)射板來對 ESP-01 進(jìn)行通信和編程? 如果是這樣,任何人都可以指導(dǎo)我如何做到這一點(diǎn)。 我已經(jīng)用選擇的通用 esp8266 板設(shè)置了
    發(fā)表于 05-16 07:25

    MSP430G2系列單片機(jī)原理與實(shí)踐教程完整版.PDF

    MSP430G2系列單片機(jī)原理與實(shí)踐教程完整版.。
    發(fā)表于 02-11 16:04 ?0次下載

    關(guān)于MSP430G2系列Launchpad的作品開發(fā)實(shí)例教程編寫和制作說明

    關(guān)于MSP430G2系列Launchpad的作品開發(fā)實(shí)例教程編寫和制作說明。
    發(fā)表于 05-03 11:35 ?40次下載
    關(guān)于<b class='flag-5'>MSP430G2</b>系列Launchpad的作品開發(fā)實(shí)例教程編寫和制作說明

    MSP430G2試驗(yàn)板的使用

    MSP—EXP430G2 LaunchPad試驗(yàn)板是一款適用于德州儀器(TI)MSP—EXP430G2系列的完整開發(fā)解決方案。其基于USB的集成型仿真器可為全系列
    發(fā)表于 05-04 16:48 ?16次下載
    <b class='flag-5'>MSP430G2</b>試驗(yàn)板的使用

    MSP430G2口袋實(shí)驗(yàn)平臺例程資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是MSP430G2口袋實(shí)驗(yàn)平臺例程資料免費(fèi)下載。
    發(fā)表于 07-17 08:00 ?36次下載
    <b class='flag-5'>MSP430G2</b>口袋實(shí)驗(yàn)平臺例程資料免費(fèi)下載

    混合信號微控制器MSP430G2文資料

    混合信號微控制器MSP430G2文資料免費(fèi)下載。
    發(fā)表于 04-27 09:21 ?4次下載

    MSP430G2 單片機(jī) 內(nèi)部芯片溫度 ADC 顯示

    利用MSP430G2口袋實(shí)驗(yàn)平臺(LaunchPad需焊接32.768kHz晶振,具體方法參見文獻(xiàn)[3] p2)的相應(yīng)模塊,基于MSP430G2553 MCU,設(shè)計(jì)方案、編寫程序(C語言)、進(jìn)行調(diào)試
    發(fā)表于 11-19 16:51 ?14次下載
    <b class='flag-5'>MSP430G2</b> 單片機(jī) 內(nèi)部芯片溫度 <b class='flag-5'>ADC</b> 顯示

    何在MSP430?MCU中使用智能模擬組合

    電子發(fā)燒友網(wǎng)站提供《如何在MSP430?MCU中使用智能模擬組合.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 10:19 ?0次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>MSP430</b>?MCU<b class='flag-5'>中使</b>用智能<b class='flag-5'>模擬</b>組合