資料介紹
描述
本教程向您展示如何“虛擬化”非線性磁性位置傳感器,以通過單個(gè)函數(shù)調(diào)用生成精確的線性位置測(cè)量值。它使用ProjectHub 教程“ LInterp - 線性插值 PROGMEM 數(shù)組生成器”中描述的 LInterp 數(shù)組生成器為程序空間內(nèi)存中的傳感器生成線性平移數(shù)組 ( )。生成的傳感器測(cè)量功能不使用 RAM 存儲(chǔ)。該方案適用于任何 Arduino 開發(fā)板。PROGMEM
一個(gè)簡單的磁性位置傳感器
霍爾效應(yīng)磁通量傳感器(例如本教程中使用的Allegro Microsystems UGN3503 )與放置在被監(jiān)測(cè)運(yùn)動(dòng)部件上的小型稀土磁體一起使用時(shí),可成為出色的非接觸式短程位置傳感器。在必須以非侵入方式(除靜磁場(chǎng)之外)將位置傳感器安裝到現(xiàn)有設(shè)備或機(jī)械傳感器會(huì)提供太多運(yùn)動(dòng)阻力的情況下,它是理想的選擇。它還提供高度的位置分辨率,僅受所選平移陣列大小和 Arduino 板 ADC 的模擬分辨率的限制。
磁通量傳感器包括一個(gè)小型(約 0.5 平方毫米)霍爾效應(yīng)晶體管,耦合到一個(gè)放大器,采用單個(gè)三端低成本塑料晶體管封裝。霍爾效應(yīng)晶體管產(chǎn)生與其兩端的磁通密度成正比的電流,放大器將其縮放為零與其電源電壓之間的輸出電壓(UGN3503 旨在使用 5V 電源工作,但可用于較低的分辨率3.3V)。它可以在許多幾何結(jié)構(gòu)中用作近靜態(tài)位置傳感器或高頻(高達(dá) 20KHz)旋轉(zhuǎn)編碼器。Allegro 提供詳細(xì)的設(shè)計(jì)參考對(duì)于設(shè)備。作為位置編碼器,該傳感器需要強(qiáng)而小的磁通量源,例如釹圓盤磁鐵,以提供更大的物理范圍(毫米)的測(cè)量。然而,固定磁鐵周圍的磁通量密度隨距其表面的距離呈非線性變化,因此傳感器的輸出電壓不會(huì)隨距磁鐵的距離呈線性變化。事實(shí)上,要計(jì)算傳感器對(duì)于給定磁鐵的讀數(shù)及其相互分離是非常困難的,在實(shí)踐中,傳感器 - 磁鐵響應(yīng)函數(shù)被映射在其預(yù)期的使用范圍內(nèi)。這必須通過安裝在被測(cè)設(shè)備組件內(nèi)的傳感器和磁鐵來完成,以便周圍鐵質(zhì)部件產(chǎn)生的環(huán)境磁場(chǎng)構(gòu)成校準(zhǔn)的一部分。因此,磁性傳感器最適合用于(連續(xù)或參考)位置監(jiān)測(cè)的永久安裝。
在沒有任何外加磁場(chǎng)的情況下(注意:地球的磁場(chǎng)微弱到可以忽略不計(jì)),UGN3503 將輸出其電源電壓的一半,或 2.5V(對(duì)于 5V 標(biāo)稱電源)。施加到設(shè)備正面(徽標(biāo)側(cè))的北 (N) 極性磁場(chǎng)會(huì)將輸出驅(qū)動(dòng)至零伏,而施加的南 (S) 極性磁場(chǎng)會(huì)將輸出驅(qū)動(dòng)至電源電壓。我們可以通過在傳感器上移動(dòng)磁鐵 S 極(見下文)以產(chǎn)生峰值輸出電壓/位置關(guān)系來進(jìn)行最簡單的位置測(cè)量。請(qǐng)注意,在沒有任何由局部磁場(chǎng)環(huán)境強(qiáng)加的不對(duì)稱性的情況下,磁鐵從左側(cè)或右側(cè)朝向傳感器的運(yùn)動(dòng)會(huì)產(chǎn)生相同的傳感器輸出。
上述幾何結(jié)構(gòu)僅使用傳感器輸出范圍的一半。我們可以通過在所需運(yùn)動(dòng)范圍的兩端使用兩個(gè)極性相反的磁鐵來實(shí)現(xiàn)更多的位置分辨率和/或范圍,如下所示。
如圖所示,磁鐵相對(duì)于傳感器的運(yùn)動(dòng)不必是線性的。磁鐵可以旋轉(zhuǎn)或擺動(dòng)經(jīng)過傳感器。在所有情況下,傳感器對(duì)磁鐵整個(gè)運(yùn)動(dòng)范圍的響應(yīng)必須以位置增量映射。如果現(xiàn)有組件布局規(guī)定磁鐵不能靠近傳感器 3 毫米以內(nèi),則可以將一個(gè)小的圓柱形鐵質(zhì)物體(例如 m4 螺釘)作為磁通耦合器端接放置在傳感器后面,以增加傳感器截獲的磁通量密度。
映射傳感器輸出
為測(cè)量函數(shù)實(shí)現(xiàn)給定精度和準(zhǔn)確度所需的映射點(diǎn)數(shù)量由所選的線性變換陣列大小和 ADC 分辨率決定。后者形成了硬件可能固定的最終分辨率的上限,但在大多數(shù)情況下,專用于陣列的內(nèi)存是測(cè)量精度的主要限制因素。LInterp數(shù)組生成器通過自動(dòng)將數(shù)組放置在程序空間 (PROGMEM) 內(nèi)存,比微控制器 RAM 大得多。這是在編譯 Arduino 草圖時(shí)執(zhí)行的,因此不需要運(yùn)行時(shí)代碼。它還在提供的映射點(diǎn)之間線性插入數(shù)組值,因此可以定義大數(shù)組以從較少數(shù)量的映射點(diǎn)實(shí)現(xiàn)高翻譯精度。最重要的是,傳感器輸出以均勻增加(或減少)的位置增量映射,插值器將自動(dòng)在傳感器輸出的快速變化(響應(yīng)梯度或轉(zhuǎn)換率)區(qū)域分配更多陣列元素。
要選擇陣列大小和映射點(diǎn)密度,首先以所需的輸出單位指定線性傳感器虛擬化功能的目標(biāo)功能輸出分辨率,并計(jì)算所需的模擬設(shè)備輸出分辨率(以毫伏為單位)以實(shí)現(xiàn)所需的功能分辨率產(chǎn)生最小傳感器響應(yīng)梯度的磁鐵位置 - 距離傳感器最遠(yuǎn)的磁鐵,或直接位于傳感器下方的磁鐵。假設(shè)默認(rèn)的 Arduino 板 ADC 分辨率為 10 位或 1024 級(jí),模擬參考電壓 ( AREF ) 為 5.000V(并記住 ADC 最多只能讀取AREF - 1 LSB),我們獲得的固有 ADC 分辨率為(大約) 5mV 適用于連接到模擬輸入的任何設(shè)備。
對(duì)于此示例,我們將采用單磁體幾何結(jié)構(gòu),其中磁體位于直徑 50mm 的金屬圓盤的邊緣,旋轉(zhuǎn)金屬圓盤以使磁體的 S 極朝向傳感器,最小間隔為 3mm。我們選擇以度為單位的圓盤方向的輸出刻度,我們可以使用三角學(xué)通過將指針連接到圓盤并測(cè)量其尖端移動(dòng)的距離來精確測(cè)量。我們?yōu)椋ū热缯f)0.1 度的傳感器輸出函數(shù)指定一個(gè)目標(biāo)角分辨率。通過使用電壓表監(jiān)測(cè)傳感器的輸出,我們發(fā)現(xiàn)在距傳感器 12 度的磁鐵位置處,指針的連續(xù)度數(shù)增量之間的差異降至 20mV。由于 20mV 大約等于 4 個(gè) ADC 電平,我們?cè)谶@里獲得的“設(shè)備”角分辨率僅為 0.25 度,因此 1 度范圍內(nèi)的插值最多會(huì)超出 0.13 度(忽略 ADC 誤差)。如果我們將這個(gè)位置同時(shí)作為我們的分辨率規(guī)格、范圍限制和零位置,那么我們可以計(jì)算出與可能的最高分辨率對(duì)應(yīng)的線性平移陣列的最大尺寸:
0度傳感器電壓:2.62V
12度時(shí)傳感器電壓:4.21V
要求的模擬設(shè)備分辨率:5mV
分辨率限制下的最大插值大小:4 個(gè) ADC 級(jí)別
最大數(shù)組大小= ( 4.21 - 2.62 ) / ( 4 * 0.005 ) = 80 個(gè)元素(加上數(shù)組插值上限的一個(gè)元素)
接下來,我們決定要測(cè)量多少個(gè)映射點(diǎn),這取決于我們可以測(cè)量圓盤周圍指針分度的精度,以及通過在平移數(shù)組值的映射點(diǎn)之間使用線性插值來估計(jì)我們損失了多少分辨率。后一種約束在檢測(cè)器響應(yīng)的最陡峭區(qū)域影響最大,在這種情況下,電壓表上可以看到磁體位置距傳感器 5-6 度,傳感器梯度約為每度 500mV。該圖對(duì)應(yīng)于我們最大插值大小的 25 個(gè)數(shù)組元素,但該區(qū)域中滿足我們選擇的角分辨率規(guī)范的元素要少得多。這里數(shù)組元素的過度分配是我們(整個(gè)數(shù)組)插值大小規(guī)范被設(shè)置為傳感器響應(yīng)極限的設(shè)備分辨率限制的不可避免結(jié)果。如果我們通過取地圖中點(diǎn) 6 和 7 的平均值來手動(dòng)插入電壓預(yù)測(cè),我們將獲得 3.33V 的預(yù)測(cè)值;測(cè)量我們圓盤上這個(gè)位置(6.5 度)的實(shí)際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過以 1 度的間隔映射傳感器并在它們之間進(jìn)行線性插值,我們可以在任何地方滿足我們的角分辨率標(biāo)準(zhǔn)。[進(jìn)階說明:如果我們只想在地圖的一個(gè)區(qū)域增加測(cè)繪點(diǎn),使得點(diǎn)間距不規(guī)則,那么就必須對(duì)整張地圖進(jìn)行正則化。見 測(cè)量我們圓盤上這個(gè)位置(6.5 度)的實(shí)際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過以 1 度的間隔映射傳感器并在它們之間進(jìn)行線性插值,我們可以在任何地方滿足我們的角分辨率標(biāo)準(zhǔn)。[進(jìn)階說明:如果我們只想在地圖的一個(gè)區(qū)域增加測(cè)繪點(diǎn),使得點(diǎn)間距不規(guī)則,那么就必須對(duì)整張地圖進(jìn)行正則化。見 測(cè)量我們圓盤上這個(gè)位置(6.5 度)的實(shí)際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過以 1 度的間隔映射傳感器并在它們之間進(jìn)行線性插值,我們可以在任何地方滿足我們的角分辨率標(biāo)準(zhǔn)。[進(jìn)階說明:如果我們只想在地圖的一個(gè)區(qū)域增加測(cè)繪點(diǎn),使得點(diǎn)間距不規(guī)則,那么就必須對(duì)整張地圖進(jìn)行正則化。見 那么整個(gè)地圖必須正則化。見 那么整個(gè)地圖必須正則化。見LInterp參考教程部分“ Irregularly-spacedordinate mapping sets ”了解詳情。]
配置數(shù)組生成器
LInDev.h從LInterp參考教程中復(fù)制設(shè)備虛擬器大綱頭文件并將其重命名LInMagSens.h為與草圖或其其他頭文件中的任何一個(gè)。我們?cè)诖疟P上以 1 度間隔測(cè)量的傳感器映射點(diǎn)電壓值現(xiàn)在LI_P0以LI_P12毫伏為單位作為定義輸入,其余未使用的條目已刪除。所有定義在使用后都被數(shù)組生成器腳本刪除,因此我們需要在和標(biāo)簽處保留數(shù)組開始和結(jié)束位置(以毫伏為單位)的副本(注意 long-int 類型 'LI_PnLI_MAG_SENS_IN_MINMAG_SENS_IN_MAXL' 后綴以防止任何用戶提供的代碼中的整數(shù)算術(shù)溢出)。接下來,我們?cè)贛AG_SENS_OUT_標(biāo)簽處定義數(shù)組輸出縮放,并在 處定義插值大小MAG_SENS_INTERP。這樣就完成了數(shù)組定義。
模擬電壓相對(duì)于我們的傳感器映射的正確轉(zhuǎn)換至關(guān)重要的是實(shí)際模擬參考電壓,在Arduino板AREF引腳上測(cè)量或施加。ADC 使用它來將輸入電壓縮放到電平,并且必須提供給標(biāo)簽上的陣列發(fā)生器,以毫伏為單位。不要假定顯示的默認(rèn) 5000mV 值,因?yàn)樾⌒桶遢d 5V 穩(wěn)壓器如果被濫用可能會(huì)超出數(shù)百 mV。另一種常見的參考電壓錯(cuò)誤是由于假定AREF的 USB 端口為 5V 電源而引起的。符合標(biāo)準(zhǔn)的 Arduino 板在此電源中包含一個(gè)勢(shì)壘二極管,可降低板的工作電壓(和AREFANALOG_RNG)到約4.65V 。由不正確的比例引起的錯(cuò)誤ANALOG_RNG表現(xiàn)為變換數(shù)組末尾或以上的設(shè)備輸出級(jí)別的變換函數(shù)的輸出值丟失或無意義,其大小也根據(jù)ANALOG_RNG. 還要記住,在AREF引腳上使用的外部參考電壓需要代碼analogReference( EXTERNAL ); 中的函數(shù)調(diào)用setup()或MAG_SENS_Setup()器件函數(shù)原型。
標(biāo)LIndev.h頭還包括用于設(shè)備初始化、數(shù)組插值和設(shè)備訪問的原型函數(shù)。這些自動(dòng)引用上面定義的自定義值標(biāo)簽并且無需修改即可工作。根據(jù)需要添加或更改這些函數(shù),以隔離一個(gè)頭文件中的所有特定于設(shè)備的代碼,并為來自底層設(shè)備的測(cè)量生成單個(gè)函數(shù)調(diào)用。未使用的功能不會(huì)上傳到 Arduino 開發(fā)板。在我們的示例中,該函數(shù)MAG_SENS_ReadAvg()被包裝在一個(gè)名為的宏中,該宏P(guān)osition()將圓盤的當(dāng)前角度作為一個(gè)float值返回。存根程序LInMagSens.ino只是打開與 Arduino IDE 串行監(jiān)視器的串行通信,并返回對(duì)Position()函數(shù)的連續(xù)調(diào)用序列。
完成的設(shè)備虛擬器沒有使用 RAM 和約 700 字節(jié)的代碼空間內(nèi)存,包括約 350 字節(jié)的數(shù)組。使用的pgmspace.h庫和analogRead()函數(shù)一起占用大約 1.3K 的代碼空間內(nèi)存,這不會(huì)添加到進(jìn)一步的設(shè)備定義中。
- G-MRCO-011角度傳感器
- G-MRCO-006磁阻線性角度傳感器
- KMZ20線性磁阻傳感器
- KMY20磁阻線性傳感器
- KMT32B磁阻傳感器
- AMR(磁性)傳感器的基本特性、優(yōu)勢(shì)資料下載
- MagnTek磁性傳感器芯片的中文版選型手冊(cè)免費(fèi)下載 0次下載
- 基于MZT7磁性氣缸傳感器功能及特點(diǎn) 9次下載
- 曲軸位置傳感器和凸輪軸位置傳感器的工作原理與檢測(cè) 36次下載
- 75mm線位移智能位置傳感器 45次下載
- 磁位置傳感器的應(yīng)用
- 磁性傳感器(磁性開關(guān))簡介及應(yīng)用
- 位置測(cè)定傳感器
- 提高霍爾傳感器精確度的研究
- 為什么選擇磁性傳感器
- 霍爾式曲軸位置傳感器的檢修步驟 1054次閱讀
- MagAlpha 角度傳感器的線性標(biāo)準(zhǔn) 528次閱讀
- 位置傳感器簡介及類型說明 7033次閱讀
- 如何選擇霍爾效應(yīng)旋轉(zhuǎn)位置傳感器 1554次閱讀
- dfrobot霍爾磁性傳感器簡介 2865次閱讀
- 凸輪軸位置傳感器檢測(cè)_凸輪軸位置傳感器作用 1w次閱讀
- 位置傳感器原理及應(yīng)用 2.2w次閱讀
- 奧地利微電子磁性位置傳感器AS5162的應(yīng)用特點(diǎn)介紹 1400次閱讀
- 霍爾效應(yīng)旋轉(zhuǎn)位置傳感器的特點(diǎn)及應(yīng)用解析 3798次閱讀
- 磁性位置傳感器在自動(dòng)化機(jī)器人中的作用 4708次閱讀
- 磁性位置傳感器,已在功耗問題上大幅改善 3708次閱讀
- 淺談傳感器中的位置傳感 1487次閱讀
- 長線性沖程電感位置傳感器實(shí)例 4118次閱讀
- 風(fēng)壓傳感器安裝位置 6638次閱讀
- 霍爾效應(yīng)旋轉(zhuǎn)位置傳感器應(yīng)用詳解 5299次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多