精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

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

了解 ADC 模塊:

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

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

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

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

poYBAGN0rDKAYOCjAAAZDAaJasY915.png

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

電路圖:

在之前的教程中,我們已經學習了如何將LCD與MSP430G2接口,現在我們只需向MSP430添加一個電位計,為其提供可變電壓并在LCD上顯示電壓值。如果您不知道LCD的接口,請回退到上面的鏈接并通讀它,因為我將跳過信息以避免悔改。該項目的完整電路圖如下。

poYBAGN0rDaAOl86AACET8FINtM846.png

poYBAGN0rDqAGsAOAADxL49zQ98313.jpg

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

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

poYBAGN0rD-AY4pcAAGlRcpsaTg495.jpg

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

針對 ADC 對 MSP430 進行編程:

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

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

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

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

#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() 函數中,我們只會給出一條介紹消息以顯示在 LCD 屏幕上。我沒有深入,因為我們已經學會了如何將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

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

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

這里函數analogRead()用于讀取引腳的模擬值,我們在它里面指定了 A7,因為我們已將可變電壓連接到引腳 P1.7。最后,我們將此值保存在名為“val”的變量中。此變量的類型是整數,因為我們只會獲取要存儲在此變量中的 0 到 1024 之間的值。

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

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

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

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

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

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 密耳將更新的值。

測試您的結果!

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

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

pYYBAGN0rEOAC4JxAADpxYRPAb8944.jpg

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

poYBAGN0rESACGhKAADJHDZ8RRs569.jpg

就是這樣,我們已經學會了如何使用MSP430板的ADC測量模擬電壓。現在,我們可以將許多模擬傳感器與我們的電路板連接,以讀取實時參數

/*

* 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



}


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

    關注

    98

    文章

    6438

    瀏覽量

    544098
  • IDE
    IDE
    +關注

    關注

    0

    文章

    335

    瀏覽量

    46678
  • 模擬電壓
    +關注

    關注

    6

    文章

    64

    瀏覽量

    18286
  • MSP430G2
    +關注

    關注

    1

    文章

    18

    瀏覽量

    12880
收藏 人收藏

    評論

    相關推薦

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

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

    MSP430G2 LaunchPad的USB求解決

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

    MSP430G2系列單片機原理與實踐教程完整版

    MSP430G2系列單片機原理與實踐教程完整版,
    發表于 05-11 10:49

    msp430G2系列原理與實踐教程

    msp430G2系列原理與實踐教程
    發表于 05-13 13:19

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

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

    如何使用MSP430G2 LaunchPad開發板驅動伺服電機

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

    如何使用MSP430G2 LaunchPad開發板驅動伺服電機?

    如何使用MSP430G2 LaunchPad開發板驅動伺服電機?
    發表于 09-29 07:08

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

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

    MSP430G2系列單片機原理與實踐教程完整版.PDF

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

    關于MSP430G2系列Launchpad的作品開發實例教程編寫和制作說明

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

    MSP430G2試驗板的使用

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

    MSP430G2口袋實驗平臺例程資料免費下載

    本文檔的主要內容詳細介紹的是MSP430G2口袋實驗平臺例程資料免費下載。
    發表于 07-17 08:00 ?36次下載
    <b class='flag-5'>MSP430G2</b>口袋實驗平臺例程資料免費下載

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

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

    MSP430G2 單片機 內部芯片溫度 ADC 顯示

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

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

    電子發燒友網站提供《如何在MSP430?MCU中使用智能模擬組合.pdf》資料免費下載
    發表于 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>組合