فهرست مطالب
ماژول سنسور اثر هال خطی 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()