Схема тахометра Arduino для точных показаний

Попробуйте наш инструмент устранения неполадок





Тахометр - это устройство, которое измеряет частоту вращения или угловую скорость вращающегося тела. Он отличается от спидометра и одометра, поскольку эти устройства имеют дело с линейной или тангенциальной скоростью тела, в то время как тахометр, также известный как «тахометр», работает с более фундаментальной скоростью вращения.

Анкит Неги



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

Предпосылки

Счетчик - это не что иное, как устройство или установка, которые могут подсчитывать любое определенное регулярное событие, такое как прохождение точки на диске во время вращения. Первоначально счетчики были построены с использованием механического устройства и рычагов, таких как шестерни, трещотки, пружины и т. Д.



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

В нашем Arduino Uno есть таймеры, которые не только отслеживают время, но и поддерживают некоторые важные функции Arduino. В Uno у нас есть 3 таймера: Timer0, Timer1 и Timer2. Эти таймеры имеют следующие функции: • Timer0 - для таких функций Uno, как delay (), millis (), micros () или delaymicros ().

• Timer1 - для работы серво библиотеки.

• Timer2 - для таких функций, как tone (), notone ().

Наряду с этими функциями эти 3 таймера также отвечают за генерацию вывода ШИМ, когда команда analogWrite () используется на назначенном контакте PMW.

Концепция прерываний

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

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

Теперь прерывание может быть вызвано при определенных условиях, определенных пользователем с помощью встроенного синтаксиса Arduino. Мы будем использовать это прерывание в нашем проекте, что сделает наш тахометр более решительным, а также более точным, чем другие проекты тахометров, присутствующие в сети.

Компоненты, необходимые для этого проекта тахометра с использованием Arduino

• Датчик эффекта Холла (Рис.1)

модуль датчика холла

• Arduino Uno

Плата Arduino UNO

• Маленький магнит

маленький магнит

• Провода перемычки

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

Двигатель постоянного тока

Настройка схемы

• Настройка для создания следующая:

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

• Датчик Холла имеет детектор спереди и 3 контакта для подключения.

• Контакты Vcc и Gnd подключены к 5V и Gnd контактам Arduino соответственно. Выходной контакт датчика подключен к цифровому контакту 2 Uno для обеспечения входного сигнала.

• Все компоненты закреплены на монтажной плате, а датчик Холла указывается с платы.

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

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
}

Загрузите код.

Знай код

В нашем тахометре используется датчик Холла. Датчик эффекта Холла основан на эффекте Холла, названном в честь его первооткрывателя Эдвина Холла.

Эффект Холла - это явление генерации напряжения на проводнике с током, когда магнитное поле вводится перпендикулярно потоку тока. Это напряжение, генерируемое из-за этого явления, помогает в генерации входного сигнала. Как уже упоминалось, в этом проекте будет использоваться прерывание, чтобы вызвать прерывание, мы должны установить некоторые условия. Arduino Uno имеет 2 условия для вызова прерываний:

RISING - когда используется это, прерывание вызывается каждый раз, когда входной сигнал переходит с низкого на высокий.

FALING - при использовании этого прерывания вызываются, когда сигнал переходит с HIGH на LOW.

Мы использовали ПОДЪЕМ, что происходит, когда магнит, помещенный в вал или вращающийся объект, приближается к детектору Холла. Генерируется входной сигнал и вызывается прерывание, прерывание инициирует функцию процедуры обслуживания прерывания (ISR), которая включает приращение в значение подсчета и, таким образом, выполняется подсчет.

Мы использовали функцию millis () Arduino и previoustime (переменную) в соответствии с настройкой таймера.

Таким образом, число оборотов в минуту рассчитывается с использованием математического соотношения:

Обороты в минуту = Счетчики / Затраченное время Преобразуя миллисекунды в минуты и переставляя, мы получаем формулу = 60 * 1000 / (миллис () - предыдущее время) * количество отсчетов.

Задержка (1000) определяет интервал времени, по истечении которого значение оборотов будет обновлено на экране, вы можете настроить эту задержку в соответствии с вашими потребностями.

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

Значение числа оборотов в минуту также можно использовать для расчета расстояния, пройденного вращающимся колесом или диском.

Вместо вывода значений на последовательный монитор это устройство можно сделать более полезным, подключив ЖК-дисплей (16 * 2) и аккумулятор для лучшего использования.




Предыдущая: Схема драйвера шагового двигателя с использованием IC 555 Далее: Схема цифрового измерителя емкости с использованием Arduino