角度传感器 - 从零开始认识各种传感器【第九期】
今天我们来学习角度传感器,将为大家介绍传感器的工作原理;常见种类;以及通过MCU实际演示对于传感器数据的读取过程。
标签
嵌入式系统
Lucia
更新2024-08-02
71

1、什么是角度传感器

角度传感器是指能感受被测角度并转换成可用输出信号的传感器。它们可以用于测量转轴、电机、舵机和其他旋转部件的位置、角度和方向。在汽车,工程机械,航空航天等领域都需要用到角度传感器来感知角度变化,以确定位物体位置。

2、角度传感器是如何工作的

角度传感器采用了敏感元件来感知转动轴承的位置变化,利用电容、电感、霍尔效应、光电效应等原理进行测量。当发生转动时,敏感元件所检测到的信号也随之变化,最终以数字或模拟信号的形式输出。

3、常见的角度传感器的种类

常见的角度传感器根据感应元件主要有两大类别:霍尔效应以及磁阻效应角度传感器。 

3.1 霍尔效应角度传感器

角度传感器中,霍尔传感器是最常用的一种。它利用霍尔效应来感知角度变化。在磁场中放置一个霍尔半导体片,上面通过一个恒定的电流 I,由于霍尔效应,磁场的变化被转换为半导体片电压的变化,监测此电压的变化就可以测量物体的旋转角度。

霍尔传感器本身在系统中通常是固定不动的。被测元件如马达的转动使得马达的磁铁发出的磁场线以直角穿过传感器。传感器感应到磁场线的变化后即可得出对应角度的变化。

3.2 磁阻效应角度传感器

磁阻效应角度传感器利用的是磁阻效应:对通有电流的金属或半导体施加磁场时,其电阻值将发生明显变化,这种现象称为磁电阻效应(MR)。

利用这种原理制成的角度传感器就是磁阻MR角度传感器。

3.3 两种角度传感器的比较

从两种角度传感器的比较表格可以看出:从检测方式上,霍尔传感器检测垂直磁场的强度,而磁阻传感器检测水平磁场的强度。因此,一般来说磁阻传感器具有更广泛的检测范围,还可吸收布局误差。霍尔传感器通常可以达到更高的灵敏度,相对于温度变化,磁阻角度传感器性能更稳定。


4、角度传感器实验演示

我们来演示使用 MCU 读取显示角度传感器的数据。这是一款电位计式的角度传感器,它的量程为300度。当前状态指示为90度。逆时针旋转电位计,角度显示增大。顺时针旋转,角度减小。

主控板卡:基于RP2040的带屏调试助手

以下是主程序中对于角度传感器数据的获取代码示例:

from breakout_colourlcd240x240 import BreakoutColourLCD240x240
from machine import ADC, Pin, Timer, PWM
from utime import sleep
import time, math,array
#------------------------------------------------------------------
width = BreakoutColourLCD240x240.WIDTH
height = BreakoutColourLCD240x240.HEIGHT
display_buffer = bytearray(width * height*2)
display = BreakoutColourLCD240x240(display_buffer)

timer1 = Timer()

stemp = ADC(2)
current_temp = 0
#-------------------------------------------------------------------
def display_init():

display.set_pen(0,255,0)
display.rectangle(58,30,13,160)
display.circle(64,190,10)
display.set_pen(255,0,0)

display.text("current", 150, 20, 194, 2)
display.text("angle", 150, 35, 194, 2)
display.update()

for i in range(6):
display.set_pen(0,200,0)
display.pixel_span(80,27 + i*30,10)
display.text(str(300 - i *60), 100, 20+i*30, 194, 2)
display.set_pen(0,0,220)
if i < 5:
for j in range(4):
display.pixel_span(80,33 + j*6 + i * 30,5)
display.update()

#---------------------------------------------------------------------
def display_change(temp, color):
global current_temp
current_temp = temp
#print(temp)
display.set_pen(color[0], color[1], color[2])
display.rectangle(58,30,13,160)
display.circle(64,190,10)
display.set_pen(0,0,150)
display.rectangle(58,20,13,7+int((300-temp)/2))
display.set_pen(0,0,0)
display.rectangle(140,50,100,40)
display.set_pen(0,255,0)
display.text(str(int(temp)), 140, 50, 5, 5)
display.update()
#----------------------------------------------------------------------
#温度获取
def get_temp():

Analogvalue=stemp.read_u16()
voltage=300*float(Analogvalue)/65535

return voltage
#----------------------------------------------------------------------
def main():

color = [0,255,0]
timer1 = Timer()
display_init()
timer1.init(freq=5,mode=Timer.PERIODIC, callback=lambda t:display_change(round(get_temp(),1), color))

while True:
sleep(0.1)
main()
团队介绍
你了解生活中常见的各种传感器是如何工作的吗?本系列将选择30种不同类型的传感器,通过5分钟左右的视频和文章带你一步步了解每个传感器的内部结构和工作原理,并推荐选型和购买合适的传感器。
团队成员
硬禾学堂
硬禾核心团队举办实战培训营已有超过6年的经验。自成立起矢志建立专业化、系统化、工程化技能培训体系,以在工业界中的最佳实践为行业培养技术中坚和领军人才。 硬禾采用Project-Based Learning(PBL)项目制教学方法,在基于实际产品和项目的教学过程中借助短期的高强度、快节奏的系统性实战训练,让学员迅速积累优秀工程师应具备的专业技能、职业素养和全区思维,加速其职业成长。
得捷电子
DigiKey 总部位于美国明尼苏达州锡夫里弗福尔斯市,是全球电子元器件和自动化产品前沿商业分销领域公认的领航者和持续创新者。我们通过分销来自 2,900 多家优质品牌制造商的 1,530 多万种元器件获得了强大的技术优势,并凭借行业领先的产品存货广度和深度以及立即发货的能力,确立了我们在分销领域的领导地位。DigiKey 还为工程师、设计师、创建者和采购专业人员提供丰富的数字解决方案、无障碍互动和工具支持,以帮助他们提升工作效率。如需了解更多信息,请访问 www.digikey.cn 并关注我们的微信、微博、腾讯视频和 BiliBili 账号。
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号