Схема. Бесконтактный тахометр

Схема Бесконтактный тахометр 1
Для измерения скорости вращения мотора обычно требуется физический контакт тахометра с осью. Однако иногда весьма желательно измерять скорость вращения мотора без всякого физического контакта. В некоторых схемах бесконтактных тахометров для этого применяется зеркало, прикрепленное к вращающейся части мотора — оно отражает луч лазера, который потом регистрируется электронной схемой. Еще один способ бесконтактного измерения — это замер наведенного напряжения на проводе свечи зажигания двигателя.
В предлагаемой схеме бесконтактного тахометра есть небольшой перемещающийся магнит, и мы измеряем период напряжения, генерируемого им в неподвижной катушке. При таком способе измерительная цепь с мотором не связана (ни электрически, ни физически). Блок-схема устройства показана на рис. 5.27.

Спецификация проекта
Цель проекта— создать тахометр, который пригоден для измерения частоты вращения вентиляторов, моторов и т. п. без всякого механического или электрического контакта с объектом. Система должна работать от батареек и иметь графический дисплей для отображения необходимой информации.

Описание устройства
Схема Бесконтактный тахометр 2
Схема состоит из катушки с большой индуктивностью (100 мГн) и операционного усилителя (аналогично схеме вращающегося волчка). Сигнал с усилителя проходит через два фильтра с разными постоянными времени, чтобы создать небольшую разницу фаз между отфильтрованными выходными сигналами. Эти два сигнала с разными фазами подаются на другой операционный усилитель для преобразования в импульсный выходной сигнал. Сигнал с катушки зависит от переменного магнитного поля. Если схему разместить рядом с закрепленным на валу мотора магнитом, то при его вращении магнитное поле в катушке начнет изменяться и на ее выводах появится синусоидальное напряжение.

На рис. 5.28 изображена принципиальная схема бесконтактного тахометра. Наведенное в катушке напряжение усиливается операционным усилителем IC3-A (LM358), а выходной сигнал проходит через два RC-фильтра (соединенные параллельно) с разными постоянными времени. Выходы этих фильтров соединены со входами усилителя IC3-B (LM358). Он преобразует синусоидальный сигнал с катушки в прямоугольные импульсы той же самой частоты (рис. 5.29). Далее импульсы подаются на микроконтроллер AVR Tiny45, который измеряет частоту сигнала на контакте 3 (сконфигурированном как входной). Остальные контакты микроконтроллера управляют точечно-матричным дисплеем от мобильного телефона Nokia 3310. Тахометр питается от батареи в 9 В, подключенной к разъему SL3.
Схема Бесконтактный тахометр 3
Монохромный дисплей не имеет подсветки, поэтому по обеим сторонам дисплея установлены белые светодиоды (чтобы было видно при плохом освещении).
Схема питается от батарейки в 9 В, подключенной к разъему SL3; от этого же напряжения питается и операционный усилитель LM358. Для дисплея Nokia требуется напряжение от 3 до 3,3 В, поэтому питание для него (и для микроконтроллера) обеспечивает стабилизатор LM2950-3.3V. Выходной сигнал с усилителя проходит через резистор и стабилитрон на 3 В, чтобы ограничить амплитуду сигнала, подаваемого на микроконтроллер.

Конструкция
Обе стороны платы показаны на рис. 5.30 и 5.31. На рис. 5.32 изображено полностью готовое устройство.
Схема Бесконтактный тахометр 4
Программирование
Максимальное    время    одного    оборота    определено    заранее.    Функция
running_condition проверяет время ОДНОГО оборота (при ПОМОЩИ period_count) И
сравнивает с этим максимальным временем. Если максимальное время больше значения period_count, то двигатель вращается; если меньше — двигатель остановился. Значения period_count и period_total обновляются в прерывании по переполнению TIMER0 (листинг 5.8).

Листинг 5.8
ISR (TIM0_OVF_vec t)
{
//Каждые 9.984 мс
TCNT0 = 255-78;
period_total+=9.984;
if(period_count<5500)
period_count+=9.984;
else
period_count=5500;
}

Вектор прерывания РС0 обеспечивает основную работу тахометра (реальное измерение количества оборотов в минуту и длительности периода). Он проверяет присутствие низкого уровня на четвертом контакте PINB, и если этот уровень сохраняется в течение 20 мкс, то система считает, что один период прошел, и увеличивает глобальную переменную по на единицу. Когда значение по достигает 6 (прошло шесть периодов), контроллер вычисляет число оборотов в минуту и период вращения. Если значение переменной period_total меньше 360 мс, то программа не делает ничего. В противном случае осуществляется переход в тот блок, где при помощи значения period_total вычисляется число оборотов и период вращения (и включает дисплей). После выхода из этого блока программа опять сбрасывает значения period_total и по в нуль. Код этого блока приведен в листинге 5.9.

При помощи функции display тахометр отображает число оборотов в минуту и период вращения. Когда эта функция вызывается со значением переменной what, равным четырем, отображаются обороты в минуту, а когда what равна пяти — отображается период вращения. В остальной части кода выполняется присваивание начальных значений различным переменным (для правильной работы программы).

Листинг 5.9
if ( ! (PINB&(1«4)))
{
_delay_us(20); //Ждать стабилизации
if (!(PINB &(1«4) ) ) //Проверить еще раз на низкий уровень
{
flag=0; //Режим отображения по истечении in
no++ ;
period_count=0;
if(no==6)   //Прошло б периодов
{
/*** этот БЛОК ВЫЧИСЛЯЕТ СКОРОСТЬ и число ОБОРОТОВ в МИНУТУ
ПО РЕЗУЛЬТАТАМ ЗАМЕРА ***/
if((period_total/(no))<60);
//ничего не делать, если период меньше 60 мс.
//Фильтрация 2000 оборотов в минуту.
else
{
frequency = (12.0/period_total)*1000;
rpm = frequency*60;   //число оборотов в минуту
period_actual = period_total/12;
displayon=l; //дисплей включен
}
period_total=0;no=0;
}
}
}

Работа устройства
Для проверки работоспособности необходимо включить питание и поднести устройство к движущемуся объекту (вентилятору или валу мотора). К этому объекту должен быть заранее прикреплен небольшой магнит. Дисплей покажет частоту и период вращения.

Прилагаемые файлы: Contactless_Tachometer.rar

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *