Ардуино коды NJK-5002C Холл сенсорын пайдалану үшін
Кіріспе
Бұл нұсқаулық NJK-5002C Холл эффектісі сенсорын және Arduino пайдаланып магнит өрісін анықтау жүйесін құруды көрсетеді. Жоба магнитті реле арқылы іске қосуды, содан кейін шам немесе желдеткіш сияқты айнымалы ток жүктемесін басқаруды көрсетеді. Бұл төмен кернеулі басқару сигналын пайдаланып айнымалы ток құрылғыларын автоматтандырудың практикалық және қауіпсіз тәсілі.
Негізгі идея - Холл сенсоры магнит өрісінің болуын анықтайды. Магнит (дәлірек айтқанда, оның оңтүстік полюсі) сенсорға жақындағанда, ол төмен сигнал шығарады. Arduino бұл сигналды оқиды және реле модулін іске қосады. Реле қосқыш ретінде әрекет етіп, жүктемеге айнымалы ток қуатын қосады немесе ажыратады. Бұл қондырғы көптеген автоматтандыру жобаларының негізгі құрылыс блогы болып табылады.
Міне, осы технологиямен жасай алатын бірнеше практикалық жоба идеялары:
- Автоматты жарықтандыру: Магниті бар есік немесе терезе ашылғанда шамды қосыңыз.
- Қауіпсіздік дабылы: Магниттік контакт үзілгенде дабыл немесе шамды іске қосыңыз.
- Өндірістік желіде санау: Магнит бекітілген сенсордан өтіп бара жатқан конвейердегі заттарды санаңыз.
- Орналасуын анықтау: Магнит бекітілген робот қолының немесе машина бөлігінің орнын анықтаңыз.
- Қауіпсіздік блокаторы: Қауіпсіздік қорғанысы ашылғанда машинаның қуатын өшіріңіз.
Қажетті аппараттық құралдар
- Arduino Uno (немесе кез келген үйлесімді плата)
- NJK-5002C Холл эффектісі сенсоры
- Реле модулі (5В)
- Айнымалы ток жүктемесі (мысалы, шам немесе шағын желдеткіш)
- Айнымалы ток жүктемесіне арналған қуат сымы
- Жалғау сымдары
- Магнит (анық белгіленген оңтүстік полюсі бар)
Сымдарды жалғау нұсқаулығы
Бұл жобаның сымдарын жалғау қарапайым. Сенсор мен реле модулі екеуі де Arduino-ның 5В және GND түйреуіштерінен қоректенеді. Сенсордан келетін сигнал цифрлық кіріс түйреуішінде оқылады, ал реле цифрлық шығыс түйреуішімен басқарылады.
Міне, қосылымдардың бөлшектелуі:
- NJK-5002C сенсоры:
- Қоңыр сым → Arduino 5В
- Көк сым → Arduino GND
- Қара сым → Arduino цифрлық түйреуіш 2
- Реле модулі:
- VCC түйреуіші → Arduino 5В
- GND түйреуіші → Arduino GND
- IN (немесе Signal) түйреуіші → Arduino цифрлық түйреуіш 8
- Айнымалы ток жүктемесі:
- Айнымалы ток жүктемесінің қуат сымының бір сымын кесіңіз.
- Кесілген сымның бір ұшын реленің әдетте ашық (NO) терминалына қосыңыз.
- Кесілген сымның екінші ұшын реленің ортақ (COM) терминалына қосыңыз.
(бейнеде 05:09) Төмендегі диаграмма осы қосылымдарды көрсетеді. Реле төмен триггерлік типке жататынын ескеріңіз, яғни сигнал түйреуіші LOW күйіне орнатылғанда іске қосылады.

Кодты түсіндіру
Бұл жобаның Arduino коды қарапайым және сенсорды оқу мен релені басқаруға бағытталған. Кодтың конфигурациялауға болатын негізгі бөліктері скетчтің жоғарғы жағында орналасқан.
#define sensorPin 2 // түйреуіш 2
#define relayPin 8 // түйреуіш
const int wait = 3000;// қосылғаннан кейін, осы уақытқа күтіңіз
#define sensorPin 2: Бұл Холл сенсорының қара сымына қосылған Arduino цифрлық түйреуішін анықтайды. Мұны кез келген қолжетімді цифрлық түйреуішке өзгертуге болады.#define relayPin 8: Бұл реле модулінің IN түйреуішіне қосылған Arduino цифрлық түйреуішін анықтайды. Мұны кез келген қолжетімді цифрлық түйреуішке өзгертуге болады.const int wait = 3000;: Бұл өте маңызды айнымалы. Ол магнит анықталғаннан кейін реленің қосулы күйінде қалатын уақытты миллисекундпен белгілейді. Бейнеде ол 3000 мс (3 секунд) етіп орнатылған. Магнит алынған кезде реленің бірден өшуін қаласаңыз, мұны0етіп орнатыңыз. (бейнеде 08:15)
Код сонымен қатар негізгі циклдің соңында delay(300) қолданады. Бұл жылдам, кездейсоқ қосу/өшіру ауысуларын болдырмау үшін дебаунс кідірісі. Бұл мәнді реттеуге болады, бірақ тұрақты жұмыс үшін 100 мс-ден 300 мс-ге дейінгі параметр әдетте жақсы. (бейнеде 11:03)
Тірі жоба демонстрациясы
Бейне демонстрацияда жүйенің айнымалы ток шамымен жұмыс істеуі көрсетілген. Магниттің оңтүстік полюсі сенсорға жақындатылғанда, сенсордың жарық диоды қосылады, Arduino LOW сигналын оқиды және релені іске қосады. Бұл айнымалы ток қуатын шамға қосып, оны жағады. Тізбекті монитор да "Sensed" деп басып шығарады.
(бейнеде 11:19) Сенсордың полярлыққа сезімтал екенін атап өту өте маңызды. Ол тек магниттің оңтүстік полюсімен іске қосылады. Солтүстік полюс анықталмайды. Сонымен қатар, сенімді анықтау үшін магнит сенсордың бетіне өте жақын және дұрыс тураланған болуы керек. Демонстрация сенсордың бүйірден немесе қашықтықтан жұмыс істемейтінін көрсетеді.
Бөлімдер
- [00:00] Кіріспе және жобаға шолу
- [00:39] NJK-5002C сенсорының техникалық сипаттамалары
- [02:44] Реле модулі және сымдарды жалғау қондырғысы
- [05:09] Толық сымдар диаграммасы және айнымалы ток жүктемесін қосу
- [07:55] Кодты түсіндіру
- [11:19] Тірі демонстрация және тестілеу
- [13:30] Қорытынды және соңғы кеңестер
++
/*
* This is the Arduino code to use NJK-5002C hall sensor to control a DC or AC load.
* In the video, I have explained that this can be used without Arduino and with Arduino.
* Watch video instructions on YouTube: https://youtu.be/7RQ8QoJWhpY
*
*
* Written by Ahmad Shamshiri for Roboja Video, www.Robojax.com
* Date: November 10, 2018, Saturday at 09:34 in Ajax, Ontario, Canada
* Please keep this note with the code.
* This code is available on Robojax.com
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#define sensorPin 2 // pin 2
#define relayPin 8 // pin
const int wait = 3000;// after switched ON, wait for this amount of time
void setup() {
// Robojax.com 20181110 NJK-5002C hall sensor
pinMode(sensorPin, INPUT_PULLUP);// define pin as input for sensor
// watch video explaining the INPUT_PULLUP
//https://robojax.com?vid=robojax-push_botton_resistor
pinMode(relayPin, OUTPUT);// define pin as output
Serial.begin(9600);// initialize serial monitor with 9600 baud.
}
void loop() {
// Robojax.com 20181110 NJK-5002C hall sensor
int sensed = digitalRead(sensorPin);// read pin 2 and put the result in the "sensed" variable
if(sensed == LOW){
Serial.println("Sensed");
digitalWrite(relayPin, LOW);// if sensed turn relay ON
delay(wait);// keep the relay ON for the "wait" amount of time
}else{
digitalWrite(relayPin, HIGH);// else turn the relay OFF
Serial.println("====");
}
delay(300);// delay for 0.3 seconds
// Robojax.com 20181110 NJK-5002C hall sensor
}
Сізге қажет болуы мүмкін нәрселер
-
Амазонка
-
eBay
-
eBayPurchase NKJ-5002C from eBayebay.us
-
AliExpressPurchase NKJ-5002C from AliExpresss.click.aliexpress.com
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Файлдар жоқ.