Тахометр своими руками из мультиметра

Обновлено: 05.07.2024

DIY цифровой тахометр на AVR ATtiny2313, КР514ИД2 и оптопаре

DIY цифровой тахометр на AVR ATtiny2313, КР514ИД2 и оптопаре

Добрый день. Выношу на Ваше рассмотрение схему простенького цифрового тахометра на AVR ATtiny2313
,
КР514ИД2
, и оптопаре спроектированного мною. Сразу оговорюсь: аналогичных схем в интернете много. У каждой реализации свои плюсы и минусы. Возможно, кому-то мой вариант подойдет больше. Начну, пожалуй, с
тех. задания.Задача
: нужно сделать цифровой тахометр для контроля оборотов электрического двигателя станка.
Вводные условия
: Есть готовый реперный диск на 20 отверстий от лазерного принтера. В наличии много оптопар от сломанных принтеров. Средние (рабочие) обороты 4 000-5 000 оборотов/минуту. Погрешность отображаемых результатов не должна превышать ± 100 оборотов.
Ограничение
: питание для блока управление составляет 36В (тахометр будет установлен в один корпус с блоком управления – об этом ниже).

Маленькое лирическое отступление.

Это станок моего друга. На станке установлен электромотор PIK-8, обороты которого контролируются согласно найденной в интернете и модифицированной схеме. По просьбе друга и был разработан простенький тахометр для станка.

Изначально в схеме планировалось применить ATMega16, но рассмотрев условия, решено было ограничиться ATtiny2313, работающего от внутреннего (RC) генератора на частоте 4 Мгц.

Общая схема

выглядит следующим образом:


Как видно, ничего сложного. Для преобразования двоичного кода в семисегментный, я применил дешифратор КР514ИД2, это дает сразу три плюса.

Сборка устройства

При необходимости внесения изменений в прошивку тахометра на плате предусмотрен разъем ISP.

На схеме подтягивающий резистор R12, номиналом 30 кОм, подобран опытным путём для конкретной оптопары. Как показывает практика – для разных оптопар он может отличаться, но среднее значение в 30 кОм должно обеспечить устойчивую работу для большинства принтерных оптопар. Согласно документации к ATtiny2313, величина внутреннего подтягивающего резистора составляет от 20 до 50 кОм в зависимости от реализации конкретной партии микроконтроллеров, (стр. 177 паспорта к ATtiny2313), что не совсем подходит. Если кто захочет повторить схему, может для начала включать внутренний подтягивающий резистор, возможно у Вас, для Вашей оптопары и вашего МК работать будет. У меня, для моего набора не заработало.

Так выглядит типичная оптопара от принтера.


Светодиод оптопары запитан через ограничивающий резистор на 1К, который я разместил непосредственно на плате с оптопарой. Для фильтрации пульсаций напряжения на схеме два конденсатора, электролитический на 220 мкФ х 25В (что было под рукой) и керамический на 0,1 мкФ, (общая схема включения микроконтроллера взята из паспорта ATtiny2313).

Для защиты от пыли и грязи плата тахометра покрыта толстым слоем автомобильного лака.

Замена компонентов.

Можно применить любой светодиодный индикатор на четыре цифры, либо два сдвоенных, либо четыре поодиночных. На худой конец, собрать индикатор на отдельных светодиодах.

Вместо КР514ИД2 можно применить КР514ИД1 (которая содержит внутри токоограничивающие резисторы), либо 564ИД5, К155ПП5, К155ИД9 (при параллельном соединении между собой ножек одного сегмента), или любой другой преобразователь двоичного в семисегментный (при соответствующих изменениях подключения выводов микросхем).

Транзисторы VT1-VT4 – любые слаботочные, работающие в режиме ключа.

Принцип работы

основан на подсчете количества импульсов полученных от оптопары за одну секунду и пересчет их для отображения количества оборотов в минуту. Для этого использован внутренний счетчик Timer/Counter1 работающий в режиме подсчета импульсов поступающих на вход Т1 (вывод PD5 ножка 9 МК). Для обеспечения стабильности работы, включен режим программного подавления дребезга. Отсчет секунд выполняет Timer/Counter0 плюс одна переменная.

Расчет оборотов

, на чем хотелось бы остановиться, происходит по следующей формуле: M = (N / 20) *60, где M – расчетные обороты в минуту (60 секунд), N – количество импульсов от оптопары за одну секунду, 20 – число отверстий в реперном диске. Итого, упростив формулу получаем: M = N*3. Но! В микроконтроллере ATtiny2313 отсутствует функция аппаратного умножения. Поэтому, было применено суммирование со смещением. Для тех, кто не знает суть метода: Число 3 можно разложить как 3 = 2+1 = 21 + 20. Если мы возьмем наше число N сдвинем его влево на 1 байт и приплюсуем еще одно N сдвинутое влево на 0 байт – получим наше число N умноженное на 3. В прошивке код на AVR ASM для двухбайтной операции умножения выглядит следующим образом:

Mul2bytes3: CLR LoCalcByte //очищаем рабочие регистры CLR HiCalcByte mov LoCalcByte,LoInByte //грузим значения полученные из Timer/Counter1 mov HiCalcByte,HiInByte CLC //чистим быт переноса ROL LoCalcByte //сдвигаем через бит переноса ROL HiCalcByte CLC ADD LoCalcByte,LoInByte //суммируем с учетом бита переноса ADC HiCalcByte,HiInByte ret

Проверка работоспособности и замер точности

проводился следующим образом. К вентилятору компьютерного куллера был приклеен картонный диск с двадцатью отверстиями. Обороты куллера мониторились через BIOS материнской платы и сравнивались с показателями тахометра. Отклонение составило порядка 20 оборотов на частоте 3200 оборотов/минуту, что составляет 0,6%.


Вполне возможно, что реальное расхождение составляет меньше 20 оборотов, т.к. измерения материнской платы округляются в пределах 5 оборотов (по личным наблюдениям для одной конкретной платы). Верхний предел измерения 9 999 оборотов в минуту. Нижний предел измерения, теоретически от ±10 оборотов, но на практике не замерялся (один импульс от оптопары в секунду дает 3 оборота в минуту, что, учитывая погрешность, теоретически должно правильно измерять скорость от 4 оборотов в минуту и выше, но на практике данный показатель необходимо завысить как минимум вдвое).

Отдельно остановлюсь на вопросе питания.

Вся схема питается от источника 5В, расчетное потребление всего устройства не превышает 300 мА. Но, по условиям ТЗ, тахометр конструктивно должен находится внутри блока управления оборотами двигателя, а к блоку от ЛАТРа поступает постоянное напряжение 36В., чтобы не тянуть отдельный провод питания, внутри блока установлена LM317 в паспортном включении, в режиме понижения питания до 5В (с ограничивающим резистором и стабилитроном для защиты от случайного перенапряжения). Логичнее было бы использовать ШИМ-контроллер в режиме step-down конвертера, на подобии МС34063, но у нас в городе купить такие вещи проблематично, поэтому, применяли то, что смогли найти.

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