Как вам такой тахометр?

=NikA=

Народ, а где в Москве 16f88 взять???
В чипдипе нету( А магазинов с >= ассортиментом я не знаю…

да, кстати, а jdm его сможет запрограммировать??

1 month later
imported_Пётр

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

  1. Принцип измерения.
    1.1 По принципу измерения периода? Имеем выход с датчика (фототранзистора). Сигналом датчика запускаем таймер, по приходу второго импульса останавливаем. Вычисляем период. Дальше математика. Недостаток в том, что дребезг фронтов сигнала влечет за собой погрешность измерения. Усреднять на малых оборотах, значит замедлить процесс вычисления.
    1.2 По подсчету импульсов за одну секунду. Дальше математика. Как минимум погрешность 60 оборотов в минуту. При скорости вращения 300 об/мин – погрешность в 60 об/мин это очень много. При малых оборотах большая погрешность.
  2. Датчик (чувствительный элемент)
    На форуме речь идет о тахометре использующий фототранзистор (для лопастей это хорошо). недостаток - влияние освещенности.
    В моем случаи максимум - это доступ к карданному валу. Есть индуктивные датчики, датчики холла. В общем, есть реальная проблема размещение датчика и съем информации.

Поделитесь плиз теоретическими соображениями.
P.S. Нужна теория, а прогу на проц напишем.

С уважением, Пётр

RVL

Делаешь на вал диск с рисками, где чередуются прозрачные и непрозрачные участки: печатается лазерным принтером на пленке, посередине пробивается дырка под вал. На валу диск зажимается между двух точеных шайб/втулок, ну и датчик - оптопара с щелью под диск. Измерения по принципу п. 1.2 но считаем фронты не за секунду, а например за 0.1 сек. На диске диаметром 2см (окружность ~62 мм) при точночти печати 100dpi (отверстие оптопары 0.25 мм) можно спокойно получить 100/25.4*62 ~ 240 фронтов (переходов прозрачный-непрозрачный и наоборот), т.е. точность при скорости вала 1 об/сек. будет 0.1* 1/240*60 ~ 2.5 об/мин. Можно и точней.

Слям

Привет всем !
Извините за ламерский вопрос 😃 .
А как и чем программируется микропроцессор ?

imported_Пётр

Спасибо за оперативный ответ.
Предложенная Вами схема расположения датчика весьма оригинальна. Думаю, что так и сделаю.
По поводу большого количества отверстий: Этот вариант рассматривался. Однако при скоростях возникают другие трудности. Но решаемые.
Задача измерять обороты в диапазоне от 300 до 3000 об/мин.
Я вот о чем подумал. Ели мы измеряем за 1 секунду (можно и меньше) целое количество импульсов и одновременно с этим и общее время, за которое появляются эти импульсы (например, 4 импульса за 0.9 секунды)
RPM = 1(время измерения)/0.9*4 = 4,44 об/с.
В общем, завтра на МСП430 попробую забацать.
Как вам такой тахометр?
P.S. Спасибо за совет.
С уважением, Пётр.

Добавлено

Программируются микроконтроллеры программатором. Схем в инете валом и программ тоже.
С уважением, Пётр.

ILUHA

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

  1. Принцип измерения.
    1.1 По принципу измерения периода? Имеем выход с датчика (фототранзистора). Сигналом датчика запускаем таймер, по приходу второго импульса останавливаем. Вычисляем период. Дальше математика. Недостаток в том, что дребезг фронтов сигнала влечет за собой погрешность измерения. Усреднять на малых оборотах, значит замедлить процесс вычисления.
    1.2 По подсчету импульсов за одну секунду. Дальше математика. Как минимум погрешность 60 оборотов в минуту. При скорости вращения 300 об/мин – погрешность в 60 об/мин это очень много. При малых оборотах большая погрешность.
    2.  Датчик (чувствительный элемент)
      На форуме речь идет о тахометре использующий фототранзистор (для лопастей это хорошо). недостаток - влияние освещенности.
    В моем случаи максимум - это доступ к карданному валу. Есть индуктивные датчики, датчики холла. В общем, есть реальная проблема размещение датчика и съем информации.

Поделитесь плиз теоретическими соображениями.
P.S. Нужна теория, а прогу на проц напишем.

С уважением, Пётр

Делал как то себе тахометр. Точных данных убейте не помню! Смысл такой: на оборотах выше 1000 об/мин подсчет количества импульсов за определенное время(считал сразу в двоично десятичном чтоб младший разряд разряд откинуть и за раз прибавлял по три чтоб потом не умножать и сразу получалось в об\мин), если частота меньше тысячи проц считал таймером между двумя прерываниями.
Начинал с самого большого периода, если таймер не досчитывал до середины, то менял предделитель и снова считал- так погрешность сводиться к минимуму.

Все эти переколбасы для человеческого глаза не очень то заметны!

imported_Пётр

Привет всем.
Всё забацал на MSP430F149.
Песня. стоит как вкопанный. Измеряет с точностью до оборота. Дергается второй знак после запятой. Измеряет от 60 до 12000 об/мин. (в рамках поставленной задачи). И это не предел. Без всяких перенастроек таймера. Используем таймер в режиме счета вверх. Определяем число приходящих импульсов (N) по прерыванию таймера (юзаем в режиме захвата, для точного определения общего времени, за которое пришло N импульсов), число переполнений таймера (для задания времени измерения). Дальше математика. Это, если в двух словах. Выбран МСП430 так как в нем таймер имеет широкие возможности в стравнени с тем же PIC от Микрочип.
Всем спасибо за участие в обсуждении. Отдельное спасибо за предложенный способ получения импульсов (с помощью принтера в 100dpi 😃 ).
С уважением, Пётр

filippov
Д_Заточник:

Тахометр отличный. Однако объясните ,пожалуйста, как пользоваться режимом проверки РМ. В чем смысл их проверки на разных скоростях отработки угла и какая именно информация дает мне знать - исправна РМ или нет??
Заранее спасибо.
filippov

2 months later
Pa5ha

Хочу сделать тахометр. Напряг только с датчиком.

www.geocities.com/ilufa/DST.jpg - хочу этот датчик использовать, но, прочтя топ, так и не понял, что лучше, этот или на операционнике. Сам пока не могу оценить. И зачем 4013 нужна? Можно сразу на int контроллера подавать?

Д_Заточник

Датчик, правда не такой красивый как рекомендованный, можно легко выдрать из дохлой мыши. Во многих мышах стоит 2 сдвоенных фототранзистора, часто еще и в черном корпусе. То-есть готовый ИК фильтр на халяву! С операционником лучше, только не забыть емкость на делитель повесить как где-то тут рекомендовали.

Pa5ha

Ок, а делитель - 4013? Я хочу на 2313 без делителя подавать? Возможно такое? Делитель только делит, или ещё и уровни преобразовывает?

А почему датчик ИК-диапазона? Я думал, обычный, видимого светового спектра.

Д_Заточник

Потому что L53какеготамнепомню 😃 - это фототранзистор ИК диапазона. И если отсчечь видимую часть спектра, то работать будет, а в насыщение иногда перестанет уходить. Делитель на 4013 - это банальный к 561 тм2 котрый делит частоту входных импульсов на 2. Без операционника с этой микросхемой могут быть засады, т.к она очень чувствительна к длительности фронтов входных импульсов. Программа, зашитая в ПИК, считает импульсы уже с поправкой на то, что на входе стоит делитель на 2. Поэтому без этой микрухи обороты на дисплее будут в 2 раза выше реальных.

Pa5ha

Программа будет своя 😉

Выкину нафих этот тригер 😃

Д_Заточник

Тогда ждем реультатов, и если сохранится та же функциональность, что и у прототипа, то народ не забудет своих героев!

rulll
Pa5ha:

Программа будет своя 😉

Выкину нафих этот тригер 😃

Давай Паша! Даваааай! 😃 😃 😃

8 days later
Pa5ha

Железяка заводится, текст там выводт всякий на экран. Сейчас осталось только подглючить фототранзистор и софтину написать. Только вот с ними проблема в магазине. Не подскажете ли пару марок? А то в ихней базе данных на “фототранзистор” ничо не находит 😃 А фт-2к и ещё какого-то тут выше указанного нету.

Первая рабочая версия. Число пока в шестнадцатеричном представлении и за секунду, а не за минуту, как там написано. При закрытом датчике кажет 0, но от лампы показания скачут и в среднем равны где-то 180 😃

По питанию поставил ещё один 104 😃 Теперь показывает 64, то бишь 100 гц. Я то думал раньше, что лампа не мигает. Этож как на зрение влияет!

Столкнулся с проблемой деления двух байт на один. ну чтоб количество лопастей учитывать. 2313 функции деления не имеет. Думаю… Мож кто знает, как лучше сделать? Реализацию уж так и быть, соображу 😃 Просто неохота столбиком делить. Долго 😃

7 days later
Pa5ha

Итак, готово 😃

Несколько фоток. Весят почти мег. Пережимать было лень т.к. там не особо много полезной информации.

ТТХ 😃 :
обновление информации - 1 сек.
индикация - об/мин, об/сек
точность - 60 об, время измерения - 1 сек. (без делителей, честное измерение 😃 )
количество лопастей винта - 1-255шт.
датчик - из мышки нерабочей, купленной в Сплайне за 10 рублей (купил 3 шт, 4-ая бесплатно 😃 )
контроллер - AT90S2313, разъем ISP
кнопки - 3 шт тоже из той же мышки
дисплей - МЭЛТ 16S2D (16 символов, 2 строки)
чувствителен к лампочке под потолком, честно показывает 100 гц.
себестоимость примерно 1000. Даже меньше: дисплей 345, контроллер 99, монтажка 125, кварц - 15, мышка - 10, ОУ - 9 и дальше по мелочи резюки и кондеры.

Prikupets
Pa5ha:

Итак, готово 😃

Супер! Как решили проблему с делением ?

Pa5ha

Prikupets, написал процедуру деления 16/16 😃 Быстрая, но не думаю, что оптимальная. Слышал, что 16/16 есть за 100 тактов, и даже за 25 😃 , но это наверно на 16-тибитной платформе

Пока это не оформлено и представляет некоторую комерческую тайну. Но как только, так сразу 😃 Если есть вопросы - пишите в личку/на мыло. Помогу/поделюсь, чем смогу 😉

lvmaxx

На форуме было обсуждение звукового тахометра.
Посоветовали мне тогда обратиться в Украину - написал дважды - молчат насмерть!
Может кто подскажет как решить этот вопрос. Звуковой нужен для автомодельных двигателей, желательно и для 2-х и для 4-х тактных моторов.

Gold
Pa5ha:

Prikupets, написал процедуру деления 16/16 😃 Быстрая, но не думаю, что оптимальная. Слышал, что 16/16 есть за 100 тактов, и даже за 25 😃 , но это наверно на 16-тибитной платформе

Пока это не оформлено и представляет некоторую комерческую тайну. Но как только, так сразу 😃 Если есть вопросы - пишите в личку/на мыло. Помогу/поделюсь, чем смогу 😉

деление 16/8 примерно так

clrf rem
movlw d’16’
movwf cnt
loop rlf val, f
rlf val+1, f
rlf rem, f
movfw div
subwf rem, w
btfsc STATUS, C
movwf rem
decfsz cnt, f
goto loop
rlf val, f
rlf val+1, f

val/div - val частное, rem остаток. 10*16 тактов или 7*16 если без цикла.

тем же способом 16/16, но уже с goto. чего существенно быстрее придумали для 16/16 в общем случае не представляю. Для частных случаев деления на конкретную константу - деление заменяется умножением и иногда ускоряется более чем существенно.

а применительно к счетчикам куда проще (не быстрее, но короче код) считать сразу в bcd с дробной частью. допустим если тебе посчитанное значение в конце каждый раз нужно поделить на 1234 и вывести в десятичном виде, то считать сразу так:

rem16 = rem16+ 0x35; // 0x10000 / 1234
if( carry ) bcdincrement(val)