電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用LInterp的精確線性磁性位置傳感器

使用LInterp的精確線性磁性位置傳感器

2023-02-03 | zip | 0.04 MB | 次下載 | 免費

資料介紹

描述

教程向您展示如何“虛擬化”非線性磁性位置傳感器,以通過單個函數(shù)調(diào)用生成精確的線性位置測量值。它使用ProjectHub 教程“ LInterp - 線性插值 PROGMEM 數(shù)組生成器”中描述的 LInterp 數(shù)組生成器為程序空間內(nèi)存中的傳感器生成線性平移數(shù)組 ( )。生成的傳感器測量功能不使用 RAM 存儲。該方案適用于任何 Arduino 開發(fā)板。PROGMEM

一個簡單的磁性位置傳感器

霍爾效應磁通量傳感器(例如本教程中使用的Allegro Microsystems UGN3503 )與放置在被監(jiān)測運動部件上的小型稀土磁體一起使用時,可成為出色的非接觸式短程位置傳感器。在必須以非侵入方式(除靜磁場之外)將位置傳感器安裝到現(xiàn)有設備或機械傳感器會提供太多運動阻力的情況下,它是理想的選擇。它還提供高度的位置分辨率,僅受所選平移陣列大小和 Arduino 板 ADC模擬分辨率的限制。

磁通量傳感器包括一個小型(約 0.5 平方毫米)霍爾效應晶體管,耦合到一個放大器,采用單個三端低成本塑料晶體管封裝?;魻栃w管產(chǎn)生與其兩端的磁通密度成正比的電流,放大器將其縮放為零與其電源電壓之間的輸出電壓(UGN3503 旨在使用 5V 電源工作,但可用于較低的分辨率3.3V)。它可以在許多幾何結(jié)構(gòu)中用作近靜態(tài)位置傳感器或高頻(高達 20KHz)旋轉(zhuǎn)編碼器。Allegro 提供詳細的設計參考對于設備。作為位置編碼器,該傳感器需要強而小的磁通量源,例如釹圓盤磁鐵,以提供更大的物理范圍(毫米)的測量。然而,固定磁鐵周圍的磁通量密度隨距其表面的距離呈非線性變化,因此傳感器的輸出電壓不會隨距磁鐵的距離呈線性變化。事實上,要計算傳感器對于給定磁鐵的讀數(shù)及其相互分離是非常困難的,在實踐中,傳感器 - 磁鐵響應函數(shù)被映射在其預期的使用范圍內(nèi)。這必須通過安裝在被測設備組件內(nèi)的傳感器和磁鐵來完成,以便周圍鐵質(zhì)部件產(chǎn)生的環(huán)境磁場構(gòu)成校準的一部分。因此,磁性傳感器最適合用于(連續(xù)或參考)位置監(jiān)測的永久安裝。

在沒有任何外加磁場的情況下(注意:地球的磁場微弱到可以忽略不計),UGN3503 將輸出其電源電壓的一半,或 2.5V(對于 5V 標稱電源)。施加到設備正面(徽標側(cè))的北 (N) 極性磁場會將輸出驅(qū)動至零伏,而施加的南 (S) 極性磁場會將輸出驅(qū)動至電源電壓。我們可以通過在傳感器上移動磁鐵 S 極(見下文)以產(chǎn)生峰值輸出電壓/位置關(guān)系來進行最簡單的位置測量。請注意,在沒有任何由局部磁場環(huán)境強加的不對稱性的情況下,磁鐵從左側(cè)或右側(cè)朝向傳感器的運動會產(chǎn)生相同的傳感器輸出。

geom1_2KU7s59fnU.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

上述幾何結(jié)構(gòu)僅使用傳感器輸出范圍的一半。我們可以通過在所需運動范圍的兩端使用兩個極性相反的磁鐵來實現(xiàn)更多的位置分辨率和/或范圍,如下所示。

geom2_y47DBbqOH9.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

如圖所示,磁鐵相對于傳感器的運動不必是線性的。磁鐵可以旋轉(zhuǎn)或擺動經(jīng)過傳感器。在所有情況下,傳感器對磁鐵整個運動范圍的響應必須以位置增量映射。如果現(xiàn)有組件布局規(guī)定磁鐵不能靠近傳感器 3 毫米以內(nèi),則可以將一個小的圓柱形鐵質(zhì)物體(例如 m4 螺釘)作為磁通耦合器端接放置在傳感器后面,以增加傳感器截獲的磁通量密度。

映射傳感器輸出

為測量函數(shù)實現(xiàn)給定精度和準確度所需的映射點數(shù)量由所選的線性變換陣列大小和 ADC 分辨率決定。后者形成了硬件可能固定的最終分辨率的上限,但在大多數(shù)情況下,專用于陣列的內(nèi)存是測量精度的主要限制因素。LInterp數(shù)組生成器通過自動將數(shù)組放置在程序空間 (PROGMEM) 內(nèi)存,比微控制器 RAM 大得多。這是在編譯 Arduino 草圖時執(zhí)行的,因此不需要運行時代碼。它還在提供的映射點之間線性插入數(shù)組值,因此可以定義大數(shù)組以從較少數(shù)量的映射點實現(xiàn)高翻譯精度。最重要的是,傳感器輸出以均勻增加(或減少)的位置增量映射,插值器將自動在傳感器輸出的快速變化(響應梯度或轉(zhuǎn)換率)區(qū)域分配更多陣列元素。

要選擇陣列大小和映射點密度,首先以所需的輸出單位指定線性傳感器虛擬化功能的目標功能輸出分辨率,并計算所需的模擬設備輸出分辨率(以毫伏為單位)以實現(xiàn)所需的功能分辨率產(chǎn)生最小傳感器響應梯度的磁鐵位置 - 距離傳感器最遠的磁鐵,或直接位于傳感器下方的磁鐵。假設默認的 Arduino 板 ADC 分辨率為 10 位或 1024 級,模擬參考電壓 ( AREF ) 為 5.000V(并記住 ADC 最多只能讀取AREF - 1 LSB),我們獲得的固有 ADC 分辨率為(大約) 5mV 適用于連接到模擬輸入的任何設備。

對于此示例,我們將采用單磁體幾何結(jié)構(gòu),其中磁體位于直徑 50mm 的金屬圓盤的邊緣,旋轉(zhuǎn)金屬圓盤以使磁體的 S 極朝向傳感器,最小間隔為 3mm。我們選擇以度為單位的圓盤方向的輸出刻度,我們可以使用三角學通過將指針連接到圓盤并測量其尖端移動的距離來精確測量。我們?yōu)椋ū热缯f)0.1 度的傳感器輸出函數(shù)指定一個目標角分辨率。通過使用電壓表監(jiān)測傳感器的輸出,我們發(fā)現(xiàn)在距傳感器 12 度的磁鐵位置處,指針的連續(xù)度數(shù)增量之間的差異降至 20mV。由于 20mV 大約等于 4 個 ADC 電平,我們在這里獲得的“設備”角分辨率僅為 0.25 度,因此 1 度范圍內(nèi)的插值最多會超出 0.13 度(忽略 ADC 誤差)。如果我們將這個位置同時作為我們的分辨率規(guī)格、范圍限制和零位置,那么我們可以計算出與可能的最高分辨率對應的線性平移陣列的最大尺寸:

0度傳感器電壓:2.62V

12度時傳感器電壓:4.21V

要求的模擬設備分辨率:5mV

分辨率限制下的最大插值大?。? 個 ADC 級別

最大數(shù)組大小= ( 4.21 - 2.62 ) / ( 4 * 0.005 ) = 80 個元素(加上數(shù)組插值上限的一個元素)

接下來,我們決定要測量多少個映射點,這取決于我們可以測量圓盤周圍指針分度的精度,以及通過在平移數(shù)組值的映射點之間使用線性插值來估計我們損失了多少分辨率。后一種約束在檢測器響應的最陡峭區(qū)域影響最大,在這種情況下,電壓表上可以看到磁體位置距傳感器 5-6 度,傳感器梯度約為每度 500mV。該圖對應于我們最大插值大小的 25 個數(shù)組元素,但該區(qū)域中滿足我們選擇的角分辨率規(guī)范的元素要少得多。這里數(shù)組元素的過度分配是我們(整個數(shù)組)插值大小規(guī)范被設置為傳感器響應極限的設備分辨率限制的不可避免結(jié)果。如果我們通過取地圖中點 6 和 7 的平均值來手動插入電壓預測,我們將獲得 3.33V 的預測值;測量我們圓盤上這個位置(6.5 度)的實際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過以 1 度的間隔映射傳感器并在它們之間進行線性插值,我們可以在任何地方滿足我們的角分辨率標準。[進階說明:如果我們只想在地圖的一個區(qū)域增加測繪點,使得點間距不規(guī)則,那么就必須對整張地圖進行正則化。見 測量我們圓盤上這個位置(6.5 度)的實際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過以 1 度的間隔映射傳感器并在它們之間進行線性插值,我們可以在任何地方滿足我們的角分辨率標準。[進階說明:如果我們只想在地圖的一個區(qū)域增加測繪點,使得點間距不規(guī)則,那么就必須對整張地圖進行正則化。見 測量我們圓盤上這個位置(6.5 度)的實際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過以 1 度的間隔映射傳感器并在它們之間進行線性插值,我們可以在任何地方滿足我們的角分辨率標準。[進階說明:如果我們只想在地圖的一個區(qū)域增加測繪點,使得點間距不規(guī)則,那么就必須對整張地圖進行正則化。見 那么整個地圖必須正則化。見 那么整個地圖必須正則化。見LInterp參考教程部分“ Irregularly-spacedordinate mapping sets ”了解詳情。]

配置數(shù)組生成器

LInDev.h從LInterp參考教程中復制設備虛擬器大綱頭文件并將其重命名LInMagSens.h為與草圖或其其他頭文件中的任何一個。我們在磁盤上以 1 度間隔測量的傳感器映射點電壓值現(xiàn)在LI_P0以LI_P12毫伏為單位作為定義輸入,其余未使用的條目已刪除。所有定義在使用后都被數(shù)組生成器腳本刪除,因此我們需要在和標簽處保留數(shù)組開始和結(jié)束位置(以毫伏為單位)的副本(注意 long-int 類型 'LI_PnLI_MAG_SENS_IN_MINMAG_SENS_IN_MAXL' 后綴以防止任何用戶提供的代碼中的整數(shù)算術(shù)溢出)。接下來,我們在MAG_SENS_OUT_標簽處定義數(shù)組輸出縮放,并在 處定義插值大小MAG_SENS_INTERP。這樣就完成了數(shù)組定義。

模擬電壓相對于我們的傳感器映射的正確轉(zhuǎn)換至關(guān)重要的是實際模擬參考電壓,在Arduino板AREF引腳上測量或施加。ADC 使用它來將輸入電壓縮放到電平,并且必須提供給標簽上的陣列發(fā)生器,以毫伏為單位。不要假定顯示的默認 5000mV 值,因為小型板載 5V 穩(wěn)壓器如果被濫用可能會超出數(shù)百 mV。另一種常見的參考電壓錯誤是由于假定AREF的 USB 端口為 5V 電源而引起的。符合標準的 Arduino 板在此電源中包含一個勢壘二極管,可降低板的工作電壓(和AREFANALOG_RNG)到約4.65V 。由不正確的比例引起的錯誤ANALOG_RNG表現(xiàn)為變換數(shù)組末尾或以上的設備輸出級別的變換函數(shù)的輸出值丟失或無意義,其大小也根據(jù)ANALOG_RNG. 還要記住,在AREF引腳上使用的外部參考電壓需要代碼analogReference( EXTERNAL ); 中的函數(shù)調(diào)用setup()或MAG_SENS_Setup()器件函數(shù)原型。

標LIndev.h頭還包括用于設備初始化、數(shù)組插值和設備訪問的原型函數(shù)。這些自動引用上面定義的自定義值標簽并且無需修改即可工作。根據(jù)需要添加或更改這些函數(shù),以隔離一個頭文件中的所有特定于設備的代碼,并為來自底層設備的測量生成單個函數(shù)調(diào)用。未使用的功能不會上傳到 Arduino 開發(fā)板。在我們的示例中,該函數(shù)MAG_SENS_ReadAvg()被包裝在一個名為的宏中,該宏P(guān)osition()將圓盤的當前角度作為一個float值返回。存根程序LInMagSens.ino只是打開與 Arduino IDE 串行監(jiān)視器的串行通信,并返回對Position()函數(shù)的連續(xù)調(diào)用序列。

完成的設備虛擬器沒有使用 RAM 和約 700 字節(jié)的代碼空間內(nèi)存,包括約 350 字節(jié)的數(shù)組。使用的pgmspace.h庫和analogRead()函數(shù)一起占用大約 1.3K 的代碼空間內(nèi)存,這不會添加到進一步的設備定義中。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費