Проект tinyAVR 24. Бесконтактный тахометр

January 3, 2015 by admin Комментировать »

Для измерения скорости вращения мотора обычно требуется физический контакт тахометра с осью. Однако иногда весьма желательно измерять скорость вращения мотора без всякого физического контакта. В некоторых схемах бесконтактных тахометров для этого применяется зеркало, прикрепленное к вращающейся части мотора — оно отражает луч лазера, который потом регистрируется электронной схемой. Еще один способ бесконтактного измерения — это замер наведенного напряжения на проводе свечи зажигания двигателя.

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

Рис. 5.27. Блок-схема тахометра

Спецификация проекта

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

Описание устройства

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

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

Рис. 5.28. Принципиальная схема бесконтактного тахометра

Рис. 5.29. Осциллограмма сигналов бесконтактного тахометра

Монохромный дисплей не имеет подсветки, поэтому по обеим сторонам дисплея установлены белые светодиоды (чтобы было видно при плохом освещении).

Схема питается от батарейки в 9 В, подключенной к разъему SL3; от этого же напряжения питается и операционный усилитель LM358. Для дисплея Nokia требуется напряжение от 3 до 3,3 В, поэтому питание для него (и для микроконтроллера) обеспечивает стабилизатор LM2950-3.3V. Выходной сигнал с усилителя проходит через резистор и стабилитрон на 3 В, чтобы ограничить амплитуду сигнала, подаваемого на микроконтроллер.

Конструкция

Компоновку платы в программе EAGLE (а также ее принципиальную схему) можно скачать по ссылке: www.avrgenius.com/tinyavrl.

Рис. 5.30. Плата бесконтактного тахометра (сторона компонентов)

Рис. 5.31. Плата бесконтактного тахометра (сторона печатных проводников)

Рис. 5.32. Внешний вид готового устройства

Обе стороны платы показаны на рис. 5.30 и 5.31. На рис. 5.32 изображено полностью готовое устройство.

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

Откомпилированный исходный код (вместе с файлом MAKEFILE) можно скачать по ссылке: www.avrgenius.com/tinyavrl.

Максимальное время одного оборота определено заранее. Функция running_condition проверяет время ОДНОГО оборота (при ПОМОЩИ period_count) и сравнивает с этим максимальным временем. Если максимальное время больше значения period_count, то двигатель вращается; если меньше — двигатель остановился. Значения period_count и period_totai обновляются в прерывании по переполнению TIMERO (листинг 5.8).

i wr5:®;……… · _ _ г      / V v; …………. t_________________ … , j

I SR (T IMO_OVF_vec t)

{

//Каждые 9.984 мс TCNTO = 255-78; period_total+=9. 984; if(period_count<5500) period_count+=9. 984; else

period_count=5500;

}

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

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

if ( ! (PINB& (1«4) )*)

{

_delay_us(2 0); //Ждать стабилизации

if (! (PINB&(1«4) )) //Проверить еще раз на низкий уровень

{

flag=0;//Режим отображения по истечении in по++;

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;

}

}

}

Работа устройства

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

Источник: Гадре, Д., Занимательные проекты на базе микроконтроллеров tinyAVR / Дхананья Гадре, Нигул Мэлхотра: Пер. с англ. — СПб.: БХВ-Петербург, 2012. — 352 с.: ил. — (Электроника)

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты