Верига за тахометър Arduino за прецизни показания

Опитайте Нашия Инструмент За Премахване На Проблемите





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

От Анкит Неги



Тахометърът се състои от брояч, а таймерът, който работи заедно, осигурява RPM. В нашия проект ще направим същото, използвайки нашия Arduino и някои сензори, ще настроим едновременно брояч и таймер и ще разработим удобния и лесен тах .

Предпоставки

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



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

В нашия Arduino Uno има таймери, които не само следят времето, но и поддържат някои от важните функции на Arduino. В Uno имаме 3 таймера на име Timer0, Timer1 и Timer2. Тези таймери имат следните функции - • Таймер0 - За функции Uno като закъснение (), милис (), микро () или закъснение ().

• Таймер1 - за работа на серво библиотека.

• Таймер2 - За функции като тон (), нотон ().

Заедно с тези функции тези 3 таймера са отговорни и за генерирането на PWM изхода, когато се използва команда analogWrite () в обозначения за PMW пин.

Понятие за прекъсвания

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

магнит на вала на двигателя

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

Компоненти, необходими за този проект на тахометър, използващ Arduino

• Сензор за ефект на Хол (фиг. 1)

модул за сензор за ефект на Хол

• Arduino Uno

Табло Arduino UNO

• Малък магнит

малък магнит

• Джъмперни проводници

• Въртящ се обект (вал на двигателя)

DC мотор

Настройка на веригата

• Настройката за създаване е както следва-

• В шахтата, чиято скорост на въртене трябва да бъде измерена, е снабден с малък магнит с помощта на пистолет за лепило или електрическа лента.

• Сензорът на Hall Effect има детектор отпред и 3 щифта за връзки.

• Пинковете Vcc и Gnd са свързани съответно към 5V и Gnd щифт на Arduino. Изходният щифт на сензора е свързан с цифровия щифт 2 на Uno, за да осигури входния сигнал.

• Всички компоненти са фиксирани в монтажна платка и детекторът на Hall е посочен от платката.

Програмиране

int sensor = 2 // Hall sensor at pin 2
volatile byte counts
unsigned int rpm //unsigned gives only positive values
unsigned long previoustime
void count_function()
{ /*The ISR function
Called on Interrupt
Update counts*/
counts++
}
void setup() {
Serial.begin(9600)
//Intiates Serial communications
attachInterrupt(0, count_function, RISING) //Interrupts are called on Rise of Input
pinMode(sensor, INPUT) //Sets sensor as input
counts= 0
rpm = 0
previoustime = 0 //Initialise the values
}
void loop()
{
delay(1000)//Update RPM every second
detachInterrupt(0) //Interrupts are disabled
rpm = 60*1000/(millis() - previoustime)*counts
previoustime = millis() //Resets the clock
counts= 0 //Resets the counter
Serial.print('RPM=')
Serial.println(rpm) //Calculated values are displayed
attachInterrupt(0, count_function, RISING) //Counter restarted
}

Качете кода.

Познайте кода

Нашият тахометър използва сензор на Hall Effect Сензорът на Hall Effect е базиран на ефекта на Hall, кръстен на откривателя си Едуин Хол.

Ефектът на Хол е феномен на генериране на напрежение през токопроводящ проводник, когато магнитно поле се въвежда перпендикулярно на потока на тока. Това напрежение, генерирано поради този феномен, помага при генерирането на входен сигнал. Както споменахме Прекъсването ще бъде използвано в този проект, за да извикаме Прекъсване, трябва да настроим някакво условие. Arduino Uno има 2 условия за извикване на прекъсвания -

RISING - Когато се използва това, прекъсванията се извикват всеки път, когато входният сигнал премине от LOW до HIGH.

FALING - Когато се използва това, прекъсването се извиква, когато сигналът премине от HIGH към LOW.

Използвахме RISING, това, което се случва е, че когато магнитът, поставен в шахтата или въртящия се обект, се доближи до детектора на Хол, се генерира входен сигнал и се извика Interrupt, Interrupt инициира функцията за прекъсване на услугата за прекъсване (ISR), която включва увеличение в стойността на броячите и по този начин се извършва броенето.

Използвахме функцията millis () на Arduino и previoustime (променлива) в кореспонденция, за да настроим таймера.

По този начин RPM се изчислява накрая, като се използва математическата връзка-

RPM = Брой / Отнемане на времето Преобразувайки милисекундите в минути и пренареждането, стигаме до формулата = 60 * 1000 / (милис () - преди време) * брои.

Закъснението (1000) определя интервала от време, след който стойността на RPM ще се актуализира на екрана, можете да регулирате това закъснение според вашите нужди.

Получената стойност на оборотите в минута може да се използва допълнително за изчисляване на тангенциалната скорост на въртящия се обект, като се използва отношението v = (3.14 * D * N) / 60 m / s.

Стойността на оборотите в минута може да се използва и за изчисляване на изминатото разстояние от въртящо се колело или диск.

Вместо да отпечатва стойности на сериен монитор, това устройство може да стане по-полезно чрез свързване на LCD дисплей (16 * 2) и батерия за по-добро използване.




Предишен: Верига на драйвер на стъпков двигател с помощта на IC 555 Напред: Цифрова верига за измерване на капацитет, използваща Arduino