資料介紹
描述
本教程向您展示如何“虛擬化”非線性磁性位置傳感器,以通過(guò)單個(gè)函數(shù)調(diào)用生成精確的線性位置測(cè)量值。它使用ProjectHub 教程“ LInterp - 線性插值 PROGMEM 數(shù)組生成器”中描述的 LInterp 數(shù)組生成器為程序空間內(nèi)存中的傳感器生成線性平移數(shù)組 ( )。生成的傳感器測(cè)量功能不使用 RAM 存儲(chǔ)。該方案適用于任何 Arduino 開發(fā)板。PROGMEM
一個(gè)簡(jiǎn)單的磁性位置傳感器
霍爾效應(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)。這必須通過(guò)安裝在被測(cè)設(shè)備組件內(nèi)的傳感器和磁鐵來(lái)完成,以便周圍鐵質(zhì)部件產(chǎn)生的環(huán)境磁場(chǎng)構(gòu)成校準(zhǔn)的一部分。因此,磁性傳感器最適合用于(連續(xù)或參考)位置監(jiān)測(cè)的永久安裝。
在沒(méi)有任何外加磁場(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)至電源電壓。我們可以通過(guò)在傳感器上移動(dòng)磁鐵 S 極(見(jiàn)下文)以產(chǎn)生峰值輸出電壓/位置關(guān)系來(lái)進(jìn)行最簡(jiǎn)單的位置測(cè)量。請(qǐng)注意,在沒(méi)有任何由局部磁場(chǎng)環(huán)境強(qiáng)加的不對(duì)稱性的情況下,磁鐵從左側(cè)或右側(cè)朝向傳感器的運(yùn)動(dòng)會(huì)產(chǎn)生相同的傳感器輸出。
上述幾何結(jié)構(gòu)僅使用傳感器輸出范圍的一半。我們可以通過(guò)在所需運(yùn)動(dòng)范圍的兩端使用兩個(gè)極性相反的磁鐵來(lái)實(shí)現(xiàn)更多的位置分辨率和/或范圍,如下所示。
如圖所示,磁鐵相對(duì)于傳感器的運(yùn)動(dòng)不必是線性的。磁鐵可以旋轉(zhuǎn)或擺動(dòng)經(jīng)過(guò)傳感器。在所有情況下,傳感器對(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ù)組生成器通過(guò)自動(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é)通過(guò)將指針連接到圓盤并測(cè)量其尖端移動(dòng)的距離來(lái)精確測(cè)量。我們?yōu)椋ū热缯f(shuō))0.1 度的傳感器輸出函數(shù)指定一個(gè)目標(biāo)角分辨率。通過(guò)使用電壓表監(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
分辨率限制下的最大插值大?。? 個(gè) ADC 級(jí)別
最大數(shù)組大小= ( 4.21 - 2.62 ) / ( 4 * 0.005 ) = 80 個(gè)元素(加上數(shù)組插值上限的一個(gè)元素)
接下來(lái),我們決定要測(cè)量多少個(gè)映射點(diǎn),這取決于我們可以測(cè)量圓盤周圍指針?lè)侄鹊木龋约巴ㄟ^(guò)在平移數(shù)組值的映射點(diǎn)之間使用線性插值來(lái)估計(jì)我們損失了多少分辨率。后一種約束在檢測(cè)器響應(yīng)的最陡峭區(qū)域影響最大,在這種情況下,電壓表上可以看到磁體位置距傳感器 5-6 度,傳感器梯度約為每度 500mV。該圖對(duì)應(yīng)于我們最大插值大小的 25 個(gè)數(shù)組元素,但該區(qū)域中滿足我們選擇的角分辨率規(guī)范的元素要少得多。這里數(shù)組元素的過(guò)度分配是我們(整個(gè)數(shù)組)插值大小規(guī)范被設(shè)置為傳感器響應(yīng)極限的設(shè)備分辨率限制的不可避免結(jié)果。如果我們通過(guò)取地圖中點(diǎn) 6 和 7 的平均值來(lái)手動(dòng)插入電壓預(yù)測(cè),我們將獲得 3.33V 的預(yù)測(cè)值;測(cè)量我們圓盤上這個(gè)位置(6.5 度)的實(shí)際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過(guò)以 1 度的間隔映射傳感器并在它們之間進(jìn)行線性插值,我們可以在任何地方滿足我們的角分辨率標(biāo)準(zhǔn)。[進(jìn)階說(shuō)明:如果我們只想在地圖的一個(gè)區(qū)域增加測(cè)繪點(diǎn),使得點(diǎn)間距不規(guī)則,那么就必須對(duì)整張地圖進(jìn)行正則化。見(jiàn) 測(cè)量我們圓盤上這個(gè)位置(6.5 度)的實(shí)際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過(guò)以 1 度的間隔映射傳感器并在它們之間進(jìn)行線性插值,我們可以在任何地方滿足我們的角分辨率標(biāo)準(zhǔn)。[進(jìn)階說(shuō)明:如果我們只想在地圖的一個(gè)區(qū)域增加測(cè)繪點(diǎn),使得點(diǎn)間距不規(guī)則,那么就必須對(duì)整張地圖進(jìn)行正則化。見(jiàn) 測(cè)量我們圓盤上這個(gè)位置(6.5 度)的實(shí)際電壓,我們得到 3.29V 或 40mV 的最壞情況插值誤差。因此,通過(guò)以 1 度的間隔映射傳感器并在它們之間進(jìn)行線性插值,我們可以在任何地方滿足我們的角分辨率標(biāo)準(zhǔn)。[進(jìn)階說(shuō)明:如果我們只想在地圖的一個(gè)區(qū)域增加測(cè)繪點(diǎn),使得點(diǎn)間距不規(guī)則,那么就必須對(duì)整張地圖進(jìn)行正則化。見(jiàn) 那么整個(gè)地圖必須正則化。見(jiàn) 那么整個(gè)地圖必須正則化。見(jiàn)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ù)溢出)。接下來(lái),我們?cè)贛AG_SENS_OUT_標(biāo)簽處定義數(shù)組輸出縮放,并在 處定義插值大小MAG_SENS_INTERP。這樣就完成了數(shù)組定義。
模擬電壓相對(duì)于我們的傳感器映射的正確轉(zhuǎn)換至關(guān)重要的是實(shí)際模擬參考電壓,在Arduino板AREF引腳上測(cè)量或施加。ADC 使用它來(lái)將輸入電壓縮放到電平,并且必須提供給標(biāo)簽上的陣列發(fā)生器,以毫伏為單位。不要假定顯示的默認(rèn) 5000mV 值,因?yàn)樾⌒桶遢d 5V 穩(wěn)壓器如果被濫用可能會(huì)超出數(shù)百 mV。另一種常見(jiàn)的參考電壓錯(cuò)誤是由于假定AREF的 USB 端口為 5V 電源而引起的。符合標(biāo)準(zhǔn)的 Arduino 板在此電源中包含一個(gè)勢(shì)壘二極管,可降低板的工作電壓(和AREFANALOG_RNG)到約4.65V 。由不正確的比例引起的錯(cuò)誤ANALOG_RNG表現(xiàn)為變換數(shù)組末尾或以上的設(shè)備輸出級(jí)別的變換函數(shù)的輸出值丟失或無(wú)意義,其大小也根據(jù)ANALOG_RNG. 還要記住,在AREF引腳上使用的外部參考電壓需要代碼analogReference( EXTERNAL ); 中的函數(shù)調(diào)用setup()或MAG_SENS_Setup()器件函數(shù)原型。
標(biāo)LIndev.h頭還包括用于設(shè)備初始化、數(shù)組插值和設(shè)備訪問(wèn)的原型函數(shù)。這些自動(dòng)引用上面定義的自定義值標(biāo)簽并且無(wú)需修改即可工作。根據(jù)需要添加或更改這些函數(shù),以隔離一個(gè)頭文件中的所有特定于設(shè)備的代碼,并為來(lái)自底層設(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è)備虛擬器沒(méi)有使用 RAM 和約 700 字節(jié)的代碼空間內(nèi)存,包括約 350 字節(jié)的數(shù)組。使用的pgmspace.h庫(kù)和analogRead()函數(shù)一起占用大約 1.3K 的代碼空間內(nèi)存,這不會(huì)添加到進(jìn)一步的設(shè)備定義中。
- 雙芯片磁性位置傳感器中堆疊芯片和并排芯片實(shí)施方案之間的比較
- 使用一種高度集成的ToF位置傳感器進(jìn)行精確的距離測(cè)量
- G-MRCO-011角度傳感器
- G-MRCO-006磁阻線性角度傳感器
- KMZ20線性磁阻傳感器
- KMY20磁阻線性傳感器
- KMT32B磁阻傳感器
- MagnTek磁性傳感器芯片的中文版選型手冊(cè)免費(fèi)下載 0次下載
- 基于MZT7磁性氣缸傳感器功能及特點(diǎn) 9次下載
- 曲軸位置傳感器和凸輪軸位置傳感器的工作原理與檢測(cè) 36次下載
- 75mm線位移智能位置傳感器 45次下載
- 磁位置傳感器的應(yīng)用
- 磁性傳感器(磁性開關(guān))簡(jiǎn)介及應(yīng)用
- 位置測(cè)定傳感器
- 為什么選擇磁性傳感器
- 磁性開關(guān)傳感器測(cè)試方法 1061次閱讀
- MagAlpha 角度傳感器的線性標(biāo)準(zhǔn) 693次閱讀
- 位置傳感器簡(jiǎn)介及類型說(shuō)明 7634次閱讀
- 如何選擇霍爾效應(yīng)旋轉(zhuǎn)位置傳感器 1668次閱讀
- dfrobot霍爾磁性傳感器簡(jiǎn)介 3047次閱讀
- 凸輪軸位置傳感器檢測(cè)_凸輪軸位置傳感器作用 1w次閱讀
- 位置傳感器原理及應(yīng)用 2.3w次閱讀
- 奧地利微電子磁性位置傳感器AS5162的應(yīng)用特點(diǎn)介紹 1490次閱讀
- 霍爾效應(yīng)旋轉(zhuǎn)位置傳感器的特點(diǎn)及應(yīng)用解析 4018次閱讀
- 磁性位置傳感器在自動(dòng)化機(jī)器人中的作用 4824次閱讀
- 磁性位置傳感器,已在功耗問(wèn)題上大幅改善 3770次閱讀
- 淺談傳感器中的位置傳感 1568次閱讀
- 長(zhǎng)線性沖程電感位置傳感器實(shí)例 4247次閱讀
- 風(fēng)壓傳感器安裝位置 6785次閱讀
- 霍爾效應(yīng)旋轉(zhuǎn)位置傳感器應(yīng)用詳解 5563次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎(chǔ)模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
- 34.89 MB | 1次下載 | 免費(fèi)
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè)
- 3.32 MB | 1次下載 | 免費(fèi)
- 8聯(lián)想A820t手機(jī)維修圖紙包括主板原理圖 尾板原理圖 點(diǎn)位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費(fèi)
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說(shuō)明
- 0.50 MB | 94次下載 | 1 積分
- 4長(zhǎng)虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強(qiáng)型場(chǎng)效應(yīng)晶體管的數(shù)據(jù)手冊(cè)
- 0.11 MB | 28次下載 | 2 積分
- 8長(zhǎng)虹液晶彩電LS29機(jī)芯的技術(shù)資料說(shuō)明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191388次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論