霍尔传感器如何使用?

标签:
电子diy树莓派 |
分类: 树莓派专区 |
EDITORIntroduction霍尔传感器通常用于近距离切换、定位、速度检测和电流传感应用。在霍尔效应的基础上,一个霍尔传感器是根据磁场对其输出电压的不同而变化的。霍尔传感器可以分为线性(模拟)霍尔传感器和开关霍尔传感器。开关霍尔传感器由电压调整器、霍尔元件、差动放大器、施密特触发器和输出终端组成,并输出数字值。线性霍尔传感器由一个霍尔元件、线性放大器和发射极输出器组成,输出模拟值。线性霍尔传感器,输出模拟信号(以两种形式),以及开关霍尔传感器,输出数字信号。如果你将一个比较器添加到线性霍尔传感器,它将能够输出模拟信号和数字信号。
霍尔效应霍尔效应是一种电磁效应。这是埃德温霍尔在1879年发现的,当时他正在研究金属的导电机理。当导体通过一个均匀的磁场时,就会产生这种效应。电荷载体的自然电子漂移导致磁场作用于Lorentz的力量(在电磁场中对带电粒子施加的力),这些电荷载体。结果是电荷分离,底部或顶部的正电荷或负电荷聚集在一起。
霍尔传感器霍尔传感器是一种基于它的磁场传感器。通过导体产生的电流会产生一个与电流不同的磁场,而一个霍尔传感器可以用来测量电流,而不会打断电路。通常,传感器被集成在环绕导体周围的缠绕核心或永久磁铁上。EDITORWhat
you will need
树莓派
网线
线性霍尔传感器模块
双彩色共阴极二极管组件
开关模块
EDITORWhat you will do对于开关霍尔的传感器:
1:构建电路
将树莓派的GPIO0连接到交换机模块的模块将树莓派的GPIO1连接到双色LED模块上将树莓派的GND连接到开关大厅模块的GND和双色LED模块的GND。连接pin
3.3 V的树莓派到pin+的开关大厅模块和双颜色LED模块的pin+
2:编辑并测试代码将一块磁铁靠近传感器。
#!/usr/bin/env pythonimport RPi.GPIO as
GPIO
#Hall sensor is connected to pin 11 (BOARD-Layout!)HALL
= 11
#LED is connected to pin 12 (BOARD-Layout!)LED
= 12
#Set pin-layout to
BOARDGPIO.setmode(GPIO.BOARD)
#Avoid error messages if GPIO was not shut down
correctly beforeGPIO.setwarnings(False)
#Set HALL-pin to input, use internal
pull-up-resistorGPIO.setup(HALL,GPIO.IN,
pull_up_down=GPIO.PUD_UP)
#Set LED-pin to output. A resistor should be used
here!GPIO.setup(LED, GPIO.OUT)
#Turn LED offGPIO.output(LED, GPIO.LOW)
#This function will be called if a change is
detecteddef change_detected(channel):
if GPIO.input(HALL) == GPIO.LOW:
print 'Magnetic material detected: LED on'
GPIO.output(LED, GPIO.HIGH) #LED on
else:
print 'No
magnetic material: LED off'
GPIO.output(LED, GPIO.LOW) # LED off
# Register event-listener on falling and raising# edge
on HALL-sensor input. Call "change_detected" as#
callbackGPIO.add_event_detect(HALL, GPIO.BOTH, change_detected,
bouncetime=25)
# The main-loop does nothing. All is done by the
event-listenertry: while True:
pass
# Quit on Ctrl-cexcept KeyboardInterrupt:
print "Ctrl-C -
quit"
# Cleanup GPIOfinally:
GPIO.cleanup()
对于线性大厅传感器,采取以下步骤。1:构建电路
线性大厅传感器的连接针连接到ADC0832的CH0上2:编辑并测试代码将一块磁铁靠近传感器。
#!/usr/bin/env pythonimport ADC0832import
time
def init():
ADC0832.setup()
def loop(): while
True:
res = ADC0832.getResult()
print 'res
= %d' % res
time.sleep(0.2)
if __name__ == '__main__':
init() try:
loop()
except KeyboardInterrupt:
ADC0832.destroy()
print 'The
end !'
后一篇:非常全面的二极管知识分享