فهرست مطالب
ماژول سنسور اثر هال خطی KY-024 چیست؟
سنسور اثر هال خطی KY-024 با حضور یک میدان مغناطیسی واکنش نشان می دهد. این ماژول دارای یک پتانسیومتر برای تنظیم حساسیت سنسور است و خروجی های آنالوگ و دیجیتال را فراهم می کند. خروجی دیجیتال به عنوان سوئیچ عمل می کند که با نزدیک شدن آهنربا، مانند ماژول KY-003 روشن یا خاموش می شود. از طرف دیگر، خروجی آنالوگ می تواند قطبیت و قدرت نسبی میدان مغناطیسی را اندازه گیری کند. جهت خرید ماژول اثر هال KY-024 با قیمتی مناسب و کیفیتی عالی به فروشگاه اینترنتی دیجی قطعه مراجعه کنید.
مشخصات فنی ماژول ky024
ماژول KY-024 از یک سنسور اثر خطی 49E، یک مقایسه گر دوگانه LM393، یک پتانسیومتر، دو LED، شش مقاومت و 4 پین هدر نری تشکیل شده است. این ماژول با سیستم عامل های رایج الکترونیک مانند: Arduino ،Raspberry Pi ،Esp32 و Teensy سازگار است. مشخصات در جدول زیر امده است:


کاربرد ماژول سنسور اثر هال KY024
ماژول KY-024 در زمینه های مختلفی کاربردی است؛ از جمله:
- اندازه گیری سرعت موتور
- تشخیص موقعیت شی
- کنترل موتور و بار
- شمارنده پالس
- خودروی هوشمند
- آجرهای الکترونیکی
- و …
این سنسور برای اندازه گیری آستانه(ترشولد) بسیار مناسب است. این بدان معنی است که سنسور به محض اینکه از مقدار آستانه تعیین شده توسط کاربر تجاوز کند، یک سیگنال دیجیتال بالا منتشر می کند. با این حال، این به این معنی نیز است که مقادیر اندازه گیری شده آنالوگ برای تبدیل مناسب نیستند، زیرا سیگنال آنالوگ نیز تحت تأثیر پتانسیومتر چرخشی قرار می گیرد.
دیاگرام اتصالات سنسور اثر هال KY-024
پایه های مختلف ماژول را مطابق آنچه در تصویر زیر مشاهده میشود به برد آردوینو متصل کنید.




راه اندازی ماژول KY-024 با آردوینو
کد آردوینو زیر مقادیری از رابط های دیجیتال و آنالوگ را در KY-024 می خواند. رابط دیجیتال با شناسایی یک میدان مغناطیسی، چراغ آردوینو را روشن می کند.
int led = 13 ; // LED on arduino
int digitalPin = 3; // linear Hall magnetic sensor digital interface
int analogPin = A0; // linear Hall magnetic sensor analog interface
int digitalVal ; // digital readings
int analogVal; // analog readings
void setup ()
{
pinMode (led, OUTPUT);
pinMode (digitalPin, INPUT);
//pinMode(analogPin, INPUT);
Serial.begin(9600);
}
void loop ()
{
// Read the digital interface
digitalVal = digitalRead(digitalPin) ;
if (digitalVal == HIGH) // When magnetic field is present, Arduino LED is on
{
digitalWrite (led, HIGH);
}
else
{
digitalWrite (led, LOW);
}
// Read the analog interface
analogVal = analogRead(analogPin);
Serial.println(analogVal); // print analog value
delay(100);
}
راه اندازی ماژول KY-024 با رزبری پای
Raspberry Pi برخلاف آردوینو، مبدل آنالوگ به دیجیتال (ADC) را در تراشه خود ارائه نمی دهد. بنابراین اگر از سنسور غیر دیجیتال استفاده کنید، Raspbery Pi محدود می شود. برای اجتناب از این موضوع از ماژول هایی که یک ADC 16 بیتی را ایجاد می کنند مانند ماژول KY-53 استفاده می کنیم تا آن را با 4 پین ورودی آنالوگ اضافی ارتقا دهیم. ماژول KY-035 از طریق I2C به Raspberry Pi متصل می شود.
داده های آنالوگ را اندازه گیری کرده و آن را به یک سیگنال دیجیتال مناسب برای Raspberry Pi تبدیل می کند. بنابراین اگر می خواهید از سنسورهای آنالوگ به همراه Raspberry Pi استفاده کنید، از KY-053 ADC استفاده کنید.
# import needed modules
import math, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# initialise variables
delayTime = 0.5 # in Sekunden
# assigning the ADS1x15 ADC
ADS1015 = 0x00 # 12-bit ADC
ADS1115 = 0x01 # 16-bit
# choosing the amplifing gain
gain = 4096 # +/- 4.096V
# gain = 2048 # +/- 2.048V
# gain = 1024 # +/- 1.024V
# gain = 512 # +/- 0.512V
# gain = 256 # +/- 0.256V
# choosing the sampling rate
# sps = 8 # 8 Samples per second
# sps = 16 # 16 Samples per second
# sps = 32 # 32 Samples per second
sps = 64 # 64 Samples per second
# sps = 128 # 128 Samples per second
# sps = 250 # 250 Samples per second
# sps = 475 # 475 Samples per second
# sps = 860 # 860 Samples per second
# assigning the ADC-Channel (1-4)
adc_channel_0 = 0 # Channel 0
adc_channel_1 = 1 # Channel 1
adc_channel_2 = 2 # Channel 2
adc_channel_3 = 3 # Channel 3
adc_channel_3 = 3 # Channel 3
# initialise ADC (ADS1115)
adc = ADS1x15(ic=ADS1115)
# Input pin for the digital signal will be picked here
Digital_PIN = 24
GPIO.setup(Digital_PIN, GPIO.IN, pull_up_down = GPIO.PUD_OFF) ########################################################################################
# main program loop
# The program reads the current value of the input pin
# and shows it at the terminal
try:
while True:
#Current values will be recorded
analog = adc.readADCSingleEnded(adc_channel_0, gain, sps)
# Output at the terminal
if GPIO.input(Digital_PIN) == False:
print "Analog voltage value:", analog,"mV, ","extreme value: not reached"
else:
print "Analog voltage value:", analog, "mV, ", "extreme value: reached"
print "---------------------------------------"
sleep(delayTime)
except KeyboardInterrupt:
GPIO.cleanup()


