Съдържание:

Сензор за ефект на Arduino Hall с прекъсвания: 4 стъпки
Сензор за ефект на Arduino Hall с прекъсвания: 4 стъпки

Видео: Сензор за ефект на Arduino Hall с прекъсвания: 4 стъпки

Видео: Сензор за ефект на Arduino Hall с прекъсвания: 4 стъпки
Видео: Как сделать платформенный левитрон своими руками. Краткое руководство. "Levitron" (PCBWay) 2024, Юли
Anonim
Image
Image
Какво е сензор за ефект на Хол?
Какво е сензор за ефект на Хол?

Здравейте всички, Днес ще ви покажа как можете да свържете сензор за холов ефект към Arduino и да го използвате с прекъсване.

Инструменти и материали, използвани във видеото (Партньорски връзки): Arduino Uno:

Сензори за ефект на Хол:

Разнообразни резистори:

Стъпка 1: Какво е сензор за ефект на Хол?

Какво е сензор за ефект на Хол?
Какво е сензор за ефект на Хол?
Какво е сензор за ефект на Хол?
Какво е сензор за ефект на Хол?
Какво е сензор за ефект на Хол?
Какво е сензор за ефект на Хол?

Сензорът за ефект на Хол е устройство, което се използва за измерване на магнитуда на магнитното поле. Изходното му напрежение е правопропорционално на силата на магнитното поле през него.

Сензорите на ефекта на Хол се използват за разпознаване на близост, позициониране, откриване на скорост и текущи сензорни приложения.

Този, с който ще работя днес, е етикетиран като 3144, който е превключвател за ефект на Хол, използван предимно за високи температури и автомобилни приложения. Изходът му е висок по подразбиране и намалява веднъж при наличие на магнитно поле.

Сензорът има 3 пина, VCC, маса и изход. Можете да ги идентифицирате в този ред, ако държите сензора с етикетите към вас. VCC е отляво, а изходът е от дясната страна. За да се предотврати отклонение на напрежението, се използва 10k резистор между VCC и изхода в конфигурация на издърпване.

Стъпка 2: Какво е прекъсване?

Какво е прекъсване?
Какво е прекъсване?
Какво е прекъсване?
Какво е прекъсване?

За да свържете сензора на Arduino, ще използваме проста, но много мощна функция, наречена Interrupt. Задачата за прекъсване е да се уверите, че процесорът реагира бързо на важни събития. Когато се открие определен сигнал, прекъсването (както подсказва името) прекъсва всичко, което процесорът прави, и изпълнява някакъв код, предназначен да реагира на външни стимули, подавани към Arduino. След като този код е завършен, процесорът се връща към това, което първоначално е правил, сякаш нищо не се е случило!

Удивителното в това е, че тя структурира вашата система, за да реагира бързо и ефективно на важни събития, които не са лесни за предвиждане в софтуера. Най -хубавото е, че освобождава вашия процесор за извършване на други неща, докато чака събитие да се появи.

Arduino Uno има два пина, които можем да използваме като прекъсвания, щифт 2 и 3. Функцията, която използваме, за да регистрираме щифта като прекъсване, се нарича attachInterrupt, където като първи параметър изпращаме пина, който да се използва, вторият параметър е името на функцията, която искаме да извикаме след откриване на прекъсване и като трети параметър изпращаме в режима, при който искаме прекъсването да работи. В описанието на видеото има връзка към пълната справка за тази функция.

Стъпка 3: Връзки и код

Връзки и код
Връзки и код
Връзки и код
Връзки и код
Връзки и код
Връзки и код

В нашия пример свързваме сензора за ефекти на Хола към щифт 2 на Arduino. В началото на скицата дефинираме променливите за номера на пина на вградения светодиод, прекъсването, както и байтова променлива, която ще използваме за промяна чрез прекъсването. От решаващо значение е да маркираме този като променлив, за да може компилаторът да знае, че се променя извън основния програмен поток през прекъсването.

В функцията за настройка първо определяме режимите на използваните щифтове и след това прикачваме прекъсването, както е обяснено по -рано. Друга функция, която използваме тук, е digitalPinToInterrupt, която както подсказва името, превежда номера на пина в номера на прекъсване.

В основния метод просто записваме променливата на състоянието на LED щифта и добавяме много малко забавяне, за да може процесорът да има време да работи правилно.

Когато прикачихме прекъсването, посочихме мигането като втори параметър и това е името на функцията, която трябва да се извика. Вътре просто обръщаме стойността на състоянието.

Третият параметър на функцията attachIntertupt е режимът, при който тя работи. Когато го имаме като CHANGE, функцията на мигане ще се изпълнява всеки път, когато състоянието на прекъсване се промени, така че ще бъде извикана веднъж, когато приближим магнита до сензора и ще се задейства отново, след като го премахнем. По този начин светодиодът свети, докато държим магнита близо до сензора.

Ако сега сменим режима на RISING, мигащата функция ще се задейства само след като на прекъсващия щифт се види нарастващ ръб на сигнала. Сега всеки път, когато приближаваме магнита до сензора, светодиодът или се изключва, или се включва, така че по същество направихме магнитен превключвател.

Последният режим, който ще опитаме, е НИСКИ. С него, когато магнитът е близо, функцията на мигане ще се задейства постоянно и светодиодът ще мига, като състоянието му е обърнато през цялото време. Когато премахнем магнита, наистина е непредсказуемо как ще се окаже състоянието, тъй като това зависи от времето. Този режим обаче е наистина полезен, ако трябва да знаем колко дълго е натиснат бутон, тъй като можем да използваме функции за определяне на времето, за да определим това.

Стъпка 4: Допълнителни действия

Допълнителни действия
Допълнителни действия

Прекъсванията са лесен начин да направите вашата система по -отзивчива към задачи, чувствителни към времето. Те също така имат допълнителното предимство да освободят основния ви „цикъл ()“, за да се съсредоточат върху някои основни задачи в системата. (Намирам, че това има тенденция да направи кода ми малко по -организиран, когато ги използвам - по -лесно е да се види за какво е предназначена основната част от кода, докато прекъсванията обработват периодични събития.) Примерът, показан тук, е почти най - основен случай за използване на прекъсване - можете да ги използвате за четене на I2C устройство, изпращане или получаване на безжични данни или дори стартиране или спиране на двигател.

Ако имате интересно използване на прекъсване или сензор за ефекти на зала, не забравяйте да ме уведомите в коментарите, харесайте и споделете този Instructable и не забравяйте да се абонирате за канала ми в YouTube за още страхотни уроци и проекти в бъдеще.

Наздраве и благодаря за гледането!

Препоръчано: