一種使用DA轉換器靈活控制電壓的方法,並使用Arduino輸出模擬訊號

Mondo 科技 更新 2024-02-21

Arduino具有輸出數碼訊號和PWM訊號等功能,但不具備輸出模擬訊號的能力。 在本文中,我們將介紹乙個可以實現這種模擬訊號輸出的DA轉換器。

數碼訊號是由二進位數字 0 和 1 表示的訊號。 在電子電路領域,有時也被稱為“低高”或“開關”。 自然界中的現象和人類可以感知的訊號是模擬訊號。 模擬訊號的特點是它們的大小、時間和數量是連續的。

轉換器是將數碼訊號轉換為模擬訊號並輸出的轉換器。

音訊和 ** 是模擬訊號。 然而,近年來,音訊處理和影象處理已經開始需要數碼訊號。 處理模擬訊號時不支援濾波和壓縮,而數碼訊號則支援。 將處理後的數碼訊號轉換回模擬訊號需要DA轉換器。

Arduino 包括 Arduino Uno、Arduino Leonardo 和 Arduino Nano 等多種產品。

Arduino Due 是帶有內建 DA 轉換器的 Arduino 之一。 但是,DU的形狀與Arduino Uno的形狀不同,工作電壓為33V,使用方式也不同。

如果要使用已經很流行的Arduino UNO輸出模擬訊號,則需要外部DA轉換器IC。

這一次,我們沒有使用帶有內建DA轉換器的擴充套件板,而是嘗試將DA轉換器IC直接連線到Arduino,看看是否可以輸出模擬訊號。 我們使用的是ROHM的DA轉換器IC“BH2219FVM”(8位解像度,雙通道)。

由於BH2219FVM採用 MSOP8 封裝,我們將使用轉換板使其與多用途板相容。

與 I2C 和 SPI 方法的 D-A 轉換器不同,該 DA 轉換器通過三線序列通訊執行。 由於這是它自己的方式,並且不符合特定的協議,因此您需要建立自己的序列通訊處理,以便 DA 轉換器在草圖中正常工作。

在連線到Arduino時檢查BH2219FVM的技術規格。 將示波器探頭連線到輸出引腳並確認波形。

BH2219FVM的技術資料表提供了有關如何使用它的詳細說明。 除了最大額定值和電氣特性外,技術規範還提供了如何應用訊號進行操作的操作說明,在閱讀這些內容時有必要考慮如何處理它們。

參考: D A 轉換器 標準 8 位解像度 雙通道 三通道 Rohm

BH2219FVM的控制方法很簡單。 輸出模擬訊號的埠(4 位)和 8 位資料(4 位、8 位、12 位)以 1 位為增量依次傳輸到 DI 引腳。 BH2219FVM讀取 CLK 引腳上公升沿上的 DI 引腳。 12位傳輸完成後,如果LD引腳接通,則輸出與資料對應的模擬訊號。

以下是將輸出 2 到 AO1 埠以 5V 電壓為例。

根據上表通道設定(BH2219FVM),前四位數字表示埠AO1的固定值為0000。

下乙個資料是顯示“25v“ 的 8 位值,通過。

256 輸出電壓電源電壓資料”。

進行計算。 結果是:

256 × 2.5[v] ÷5[v] =128”。

自 25V 是“電源電壓的一半”,因此資料是“可以用 8 位表示的數字 (256) 的一半”,即“128”。 當以二進位表示時,128 是“10000000”。

將“0000”和“10000000”傳送到BH2219FVM,方法是按照 CLK 引腳的 ON 順序將 DI 引腳放在 (1 0) 上。 最後,只要LD引腳是ON和OFF,BH2219FVM就可以輸出25V模擬訊號。

下面的草圖是通過序列通訊將資料從Arduino傳送到BH2219FVM,並將“鋸齒波”輸出到BH2219FVM的AO1引腳。

#define ld 8#define clk 7#define di 6boolean d[12];將輸入值轉換為二進位並儲存在陣列 d0 d7int binary(int out)} 儲存指定的輸出埠 result in array d8 d11int chselect(int outpin) }else if (outpin == 2) 將陣列輸出到 dacvoid outconfirm() digitalwrite(ld, high); digitalwrite(ld, low);} 將輸出值和輸出埠傳遞給每個變數 int operationout(int value, int ch)void setup() void loop()。
這個草圖比較注重易懂性,所以效率不是很好,轉換週期有點慢。

草圖中的每件作品都在下面解釋。

#define ld 8#define clk 7#define di 6boolean d[12];
首先,將要連線的 DA 轉換器的引腳與 Arduino 的引腳號相關聯。 LD 是引腳 8,CLK 是引腳 7,DI 是引腳 6。 接下來,定義乙個陣列 d 來儲存要傳送到 DI 引腳的 12 位資訊。 為了將 0 1 保留為 12 位,需要 12 個陣列元素。 由於只儲存了 0 和 1,因此我們使用 boolean 資料型別。

void setup()
通過設定功能設定要使用的引腳的工作。 所有三個引腳都用於輸出。 在設定功能中將LD引腳指定為低電平是為了防止其狀態不穩定。

void loop()
“要輸出的資料”和“埠號”通過迴圈功能傳遞給操作輸出功能(用於將訊號輸出到下文所述的 DA 轉換器)。 對於要輸出的資料,使用 for 語句將值設定為從 0 到 255 逐漸增加。 由於每次呼叫環路函式時都會重複工作,因此輸出電壓為“鋸齒波”。

int operationout(int value, int ch)
operationout 函式已將引數傳遞給執行實際處理的函式。 然後呼叫三個函式:chselect 函式,它將埠號(上 4 位)擴充套件到 0 或 1,二進位函式,將要輸出的資料(下 8 位)擴充套件到 0 或 1,以及 outconfirm 函式,將陣列 d 的內容傳輸到 da 轉換器。

int chselect(int outpin) }else if (outpin == 2)
使用 chselect 函式執行最多 4 位的操作。 當從引數中指定埠號 1 時,0 將儲存在陣列 d 的元素 8 到 11 中。 當從引數中指定埠號 2 時,1 儲存在陣列 d 的元素 8 中,0 儲存在元素 9 到 11 中。

int binary(int out)}
傳入的十進位數由二進位函式轉換為 8 位二進位數,並儲存在 d[0] 到 d[7] 中。 此技術通常用於二進位轉換。 使用 for 語句“找到除以 2 後的餘數(最低數字是 0 還是 1? ),除以 2(四捨五入最低數字)“到”依次從最低數字轉換為二進位數”。

void outconfirm() digitalwrite(ld, high); digitalwrite(ld, low);}
通過最終的輸出確認功能,將陣列 d 中的資料傳輸到 da 轉換器並輸出模擬訊號。

陣列 d 中 0 個 1 的順序與它傳輸到 d a 轉換器的順序相反。 因此,for 語句按從 11 到 0 的降序迴圈,並以正確的順序輸出陣列 d 的內容。 在迴圈中,還執行 CLK 處理。 for語句結束後,當新增LD引腳的上公升沿訊號時,DA轉換器輸出與傳輸資料相對應的模擬訊號。

下面是用示波器觀測到的每個點的電壓圖。

Arduino操作BH2219FVM時的波形從DA轉換器的輸出引腳輸出19Hz鋸齒波。

檢視 DI 引腳(頂部)和 CLK 引腳(底部)上的波形。 您可以根據 CLK 的動作檢視 DI 引腳的開啟和關閉方式。

放形以檢視訊號的傳送方式。 圖中顯示,180的訊號被傳送到DA轉換器的AO1引腳。 根據此訊號輸出 352V電壓。

隨著數位化的進步,DA轉換器廣泛應用於**裝置、通訊裝置、電機驅動裝置等各種產品中。

通過在Arduino上新增使用DA轉換器的模擬訊號處理,它可以在各種場景中使用。

在這種情況下,資料傳輸方法可能看起來有點複雜,但使用支援 I2C 或 SPI 等常見資料傳輸標準的轉換器會更容易、更簡單。 當您需要模擬輸出時,請嘗試 DA 轉換器!

如需購買D變頻器,申請樣品測試、BOM匹配等需求,**客服微信:13310830171。

相關問題答案

    如何使用字型轉換器?

    搜尋主題 月全職挑戰賽 音量轉換器是乙個強大的工具,可以幫助我們輕鬆地將文字轉換為各種不同的字型樣式,使我們的文件 海報 徽標和更加獨特 專業和個性化。本文將向您介紹字型轉換器的使用方法和技巧。.選擇合適的字型轉換器。在選擇字型轉換器時,我們需要考慮以下因素 特點 不同的字型轉換器具有不同的功能和特...

    將PDF轉換為Word轉換器! 分享3個寶藏!

    在我們的日常工作和生活中,我們經常需要將PDF檔案轉換為可編輯的格式,如word excel ppt等。然而,簡單的檔案格式轉換並不像我們想象的那麼簡單。我們需要乙個專業的PDF轉換器來完成這項任務。本文將為您推薦幾款實用的PDF轉Word轉換器軟體。.迅速PDF轉換器 它是一款易於使用的 PDF ...

    XLSX 和 vCard 轉換器? 80人不知道可以轉換的格式

    隨著數字時代的到來,對資料轉換的需求越來越大。其中,XLSX和VCARD格式的轉換尤為常見。為了滿足這一需求,我們開發了XLSX和VCARD轉換器 錦州VCF轉換器。該轉換器允許使用者在這兩種格式之間快速準確地進行轉換,大大提高了資料管理的便利性。.XLSX 和 vCard 轉換器的功能特點 .多種...

    DC DC 電源轉換器是鐵路行業的節能解決方案

    DC DC 電源轉換器 鐵路行業的節能解決方案。在鐵路工業中,直流電源轉換器是一種非常重要的裝置,它將乙個電力系統 如電網 的直流電轉換為另乙個電力系統所需的直流電,或轉換乙個電力系統的電壓或電流水平。這種功率轉換器在鐵路系統中起著至關重要的作用,尤其是在節能和高效率方面。.直流電源轉換器的應用。....

    AC DC轉換器原理、型別和應用

    在現代電子裝置和電力系統中,AC DC轉換器作為電的橋梁起著至關重要的作用,將交流電轉換為直流電,為各種電子裝置提供所需的電力。AC DC轉換器,也稱為整流器,基於將交流電轉換為直流電的原理。交流電源是週期性變化的電壓,而直流電源是恆定電壓。為了滿足電子裝置對直流電的需求,AC DC轉換器通過整流過...