Page 1 of 2

Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 02 Oct 2016 19:34
by propell_ant
В ответ на просьбы (адресованные хардлоку) доработать "Тахометр на ATtiny2313" и добавить туда возможность как-то отреагировать на превышение (падение) заданных оборотов, решил поделиться своей модификацией этого устройства.
Делал для своих специфических нужд - нужно было отключать муфту кондиционера при повышении оборотов двигателя, ибо дизель несколько раз порвал эту муфту в разных местах, включая и шлицевое соединение, рассчитанное (по моим прикидкам) с тройным запасом прочности.
Взяв за основу проекты тахометра и термостата, я их объединил и получил "тахостат". Общее в двух проектах - четырехзначный семисегментный индикатор, от термостата пришло управление двумя кнопками и настраиваемый порог срабатывания, от тахометра - кварц и подсчет скорости вращения (от входа для габаритов я сразу отказался, т.к. понимал, что свободных ног уже не осталось).
При объединении оказалось, что кварц занимает два пина тиньки, еще два пина нужно для работы двух кнопок настройки, и еще один пин должен выдать выходной сигнал для управления реле. Всего пять, а доступно только четыре. После некоторых размышлений я решил пожертвовать возможностью отображения десятичной точки на индикаторе - PORTB.2 (нога №14)
sch-alarm.GIF
Доработка платы тахометра сводится к следующему:
плата
плата
pcb-alarm.GIF (11.36 KiB) Viewed 6883 times
1. Не распаивать на плате элементы, отмеченные красным (1,2,3,4)
2. Кнопки припаивать к выводам, отмеченным как 5 и 6 (PORTD.3 нога 7 и PORTD.6 Нога 11)
3. Сигнал на транзистор для реле брать с вывода, отмеченного как 7 (PORTB.2 нога 14). Транзистор и реле подключать по схеме термостата.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 02 Oct 2016 20:49
by rar
Всем привет. Конечно это всё здорово, в результате совершенно новое устройство, но мои потребности гораздо более скромные - тахометр с аварийной сигнализацией остановки привода. Ну а если модернизация по полной, то я добавил бы режим калибровки датчика ( выбор кол-ва импульсов за один оборот вводить с помощью клавиатуры) разумеется такое изменение скорее всего на ATtiny не пойдёт и логично перейти на ATmega8. Таким образом можно реализовать не просто тахометр, а универсальный прибор и контроля и управления и сигнализация аварийных состояний. Тем более разница в цене контролеров не большая.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 02 Oct 2016 22:12
by propell_ant
rar, тут, как говорится - "чем богаты, тем и рады", у меня только такое есть.
Насчет совершенно нового устройства вы не правы, печатка - от тахометра, две кнопки припаять проводами к плате, и пару - тройку резисторов не распаивать.
Кнопки можно и не делать, можно же захардкодить в программе минимальные обороты, ниже которых будет выдаваться тревога - реле через транзистор подключил и всё готово. Но это же конкретно под вашу задачу кнопки не нужны, второй запрос был от человека, которому нужна сигнализация о превышении заданного порога.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 02 Oct 2016 23:39
by rar
Конечно я понимаю, что необходима универсальность, да бы перекрыть все потребности. Но я не привязываюсь к печатке от автора, меня больше волнует функционал и для установки которой необходим тахометр,( в моём случае) то же совсем неплохо иметь контроль заданного диапазона вращения как вверх,так и вниз. От этого зависит качество изделия на выходе. Регулировку вращения осуществляем с помощью простейшего стабилизатора тока только на 127в. Вообще производитель установки закладывал тахометр в своё детище только оно не было им реализовано, а вычислять обороты по секундомеру в наше время не серьёзно. Поэтому и надеюсь на вашу помощь, а что касаемо универсального прибора возможно не только с настраиваемым датчиком и параметрами , а возможно и с шим регулятором то наверно это будет новая тема в разделе ATmega8 если конечно поддержат форумчане.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 03 Oct 2016 11:31
by propell_ant
Ну что вам сказать...
Вы написали "сигнализатор обрыва ремня привода" - у меня было похожее, я выкладываю.
С другой стороны, если б написали что нужно просто автоматизировать управление скоростью вращения вала - я бы и не заинтересовался, а так хоть код в порядок приведу. Видели хардлок нас попросил в отдельную тему отделиться? Он сразу понял к чему дело идет :)

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 03 Oct 2016 19:12
by rar
Всем привет. Спасибо за ваш вклад и помощь в развитии данного тахометра. Разумеется в совершенствовании устройства и пожеланий с этим связанных может быть огромное количество и соответственно их реализация не всегда не обходима а порой противоречит и основному назначению. Так, что только вам решать до какова предела модернизировать этот прибор! Мне по прежнему нужен простой тахометр с работой от датчика на 12 импульсов за оборот, и сигнализатор обрыва ремня привода под индикатор с ОК и ОА для большей универсальности. Так, что с нетерпением жду ваших прошивок. И ещё раз большое спасибо за помощь!

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 03 Oct 2016 20:11
by IYra
rar wrote: Мне по прежнему нужен простой тахометр с работой от датчика на 12 импульсов за оборот, и сигнализатор обрыва ремня привода под индикатор с ОК и ОА для большей универсальности.
Добавил реакцию. Если на PORTD.6 (11 нога) единица и дисплей показывает ноль то появляется единица
на PORTD.3 (7 нога)

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 03 Oct 2016 22:29
by propell_ant
вложил прошивку и исходник, откомпилировал под 12 импульсов на оборот. Ниже 30 оборотов в минуту срабатывает сигнал. Задержка на время разгона - 10 сек.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 05 Oct 2016 01:09
by rar
Большое спасибо! Попробую в железе, потом отпишусь.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 16 Oct 2016 21:31
by lame_reef
Уважаемый propell_ant, с большим интересом слежу за Вашей разработкой. Действительно, если "Тахометр на ATtiny2313" (http://hardlock.org.ua/viewtopic.php?f=9&t=16) можно считать уже сформировавшимся в законченный проект, да и учитывая, что он был начат ещё в 2009 году, можно понять нежелание hardlock'а расширять его функционал. У Вашего устройства, благодаря добавки функций управления и освобождения пина для возможности задания ответной реакции, ИМХО, огромный потенциал! 2 варианта уже реализованы (превышение заданных оборотов и останов). Осмелюсь спросить: не сможете-ли Вы сделать ещё один вариант управляющей реакции тахометра?
Постараюсь кратко объяснить: можно-ли получить на выходе сигнал с фиксированной частотой (например 15-16кГц) и переменной скважностью (от 0% до 100%)? Т.е. при старте - показания тахометра: 0, скважность на выходе: 0%; и до тех пор пока контрольные обороты не достигнуты - скважность растет (предположим со скоростью 10%/сек.). При превышении оборотов, соответственно скважность уменьшается. Дискретность изменения - параметр не существенный. Естественно, чем меньше, тем лучше.
Я, конечно-же, читал в сообщений выше:
propell_ant wrote:если б написали что нужно просто автоматизировать управление скоростью вращения вала - я бы и не заинтересовался
, но, к сожалению, это именно тот случай - стабилизация оборотов двигателя.
Буду очень благодарен, если согласитесь помочь.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 17 Oct 2016 01:19
by propell_ant
lame_reef, ШИМ-то я вам выложу, но только от ШИМа до стабилизации путь неблизкий.
Какие номинальные обороты будете поддерживать?
Нужно попасть в 255 отсчетов, номинальным логично сделать 127 (скважность 50%). Превышение номинальных оборотов будет уменьшать заполнение, недобор будет увеличивать заполнение.
Вам нужно определиться с коэффициентом пересчета, т.е сколько оборотов на один отсчет (при какой разнице оборотов будет заполнение 100% или 0%)

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 17 Oct 2016 12:45
by hardlock
propell_ant, тут уже ПИДом попахивает, в хорошем смысле ))) Это то, что просили в термостате реализовать. Не для тиньки такие задачи.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 17 Oct 2016 14:19
by propell_ant
hardlock, эт точно, не для тиньки. Не волновайся, я пессимистично отношусь к теме регулирования, но нужно уже объяснить народу, в чем же конкретно проблема с ПИДом и другими всякими регуляторами на таком железе.
И потом, всегда есть маленькая вероятность, что кому-то нужен простеший П регулятор с выходом ШИМ... пол-процента где-то вероятность :)

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 17 Oct 2016 22:26
by lame_reef
propell_ant wrote:Какие номинальные обороты будете поддерживать?
Номинальные - те, что выставлю "пороговыми". 1000, 2000, 5000, 10000 rpm.... или любые промежуточные.
propell_ant wrote:сколько оборотов на один отсчет
Ну, чисто математически: предельные обороты двигателя - 10000, делим на 255 - получаем 39. Округляем и получаем дискретность в 50 оборотов.
propell_ant wrote:при какой разнице оборотов будет заполнение 100% или 0%
Разницу считать не надо. Например: мотор вышел на номинал. Увеличилась нагрузка на валу, соответственно упали обороты. Тинька увеличивает скважность, чем добавляет мощность. Обороты не вернулись в норму. Тинька продолжает добавлять мощи. И так будет до тех пор, пока нагрузка на валу не будет компенсирована.
Нагрузка уменьшилась - реакция обратная. Если периодичность сравнения оборотов будет достаточно высокой, то и обороты не должны будут сильно проваливаться. Или я что-то не учитываю?
П-регулятор, конечно быстрее выведет обороты в номинал, но там надо будет гуляться с коэффициентом противодействия. А он для каждой системы (двигатель+передача+преобразование+нагрузка) будет индивидуальным. Можно конечно и через него....а потом захочется добавить и Д-составляющую. :-) Но не суть - приму за аксиому любой предложенный вариант. Буду экспериментировать.
Большое спасибо, что не отмахнулись и обратили внимание на мое сообщение!

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 18 Oct 2016 19:05
by propell_ant
lame_reef, ну 50 что-то вы жестко, поставлю вам для начала 32.
Вот прошивки и исходники, ШИМ на PORTB.2 (нога №14)
Внимание!
ШИМ 50% соответствует заданным оборотам, каждые 32 оборота добавляют (или вычитают) один дискрет ШИМ

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 18 Oct 2016 22:23
by lame_reef
propell_ant, ОГРОМНОЕ СПАСИБО!!!
Теперь надо у кого-нибудь "стрельнуть" АТтиню и можно будет реализовывать.
Схема - от термостата? Т.е. кнопки - PORTA.1 (пин 4), PORTA.0(пин 5); вход - PORTD.6 (пин 11)?
propell_ant wrote:ШИМ 50% соответствует заданным оборотам
О! ШИМ 50% для двигателя, это 50% от максимального числа оборотов (приблизительно 5000prm). Это я наверное неправильно задачу описал? :shock:
Кол-во оборотов у движка прямопропорционально скважности сигнала управления: 10% ШИМ - 1000 оборотов, 20% - 2000 оборотов. Т.е. какие бы я обороты не выставил на тахометре - движок будет стремиться к 5000 оборотов, получается?
Ну да ладно, исходники я видел Вы тоже выложили - покопаюсь, попробую логику ШИМ немного подкорректировать. Да и если не смогу найти АТтиню, всеравно надо будет пробовать адаптировать программу под AT90S2313 (они у меня есть).
О результате обязательно отпишусь. Еще раз БОЛЬШУЩЕЕ СПАСИБО!!!

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 19 Oct 2016 17:23
by propell_ant
lame_reef, я добавил схему в первый пост.
Скажите мне такую вещь... вот вы пишете:
кол-во оборотов у движка прямопропорционально скважности сигнала управления
А откуда ваш двигатель знает, с какими оборотами он вращается?
Есть ощущение, что вы к чему-то сильно умному пытаетесь подключиться нашим тахометром. И нужен вам не регулятор оборотов, а задатчик входного ШИМ сигнала, который гораздо проще программируется.

Добавлено спустя 2 часа 9 минут 54 секунды:
или у вас там частотный преобразователь крутит асинхронный двигатель, тогда понятно почему обороты нужно регулировать. Но непонятно откуда 10000 оборотов. Сплошные загадки...

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 19 Oct 2016 21:49
by lame_reef
propell_ant, вы правы, двигатель в какой-то степени "жутко умный", но он даже и не подозревает какая у него скорость. :lol:
У него для этого есть выход, на который он отдает частоту вращения. Вот ее я и буду подсчитывать тахометром.
А для управления у него есть 2 входа. И оба логических: "крутить-не крутить" и "тормозить-не тормозить". Если первый перевести в 1, то мотор разгоняется почти до 10000. Пробовал на него подавать меандр - скорость меньше (но, к сожалению, я ее не замерил).
Вот и возникла мысль не просто регулировки оборотов в холостом ходу (для этого действительно достаточно ШИМ-генератора), но и ее стабилизации под нагрузкой.
Движок из таких: http://rohmfs.rohm.com/en/products/data ... 61fs-e.pdf Снят с лазерного принтера. Планируется его использовать на шпинделе маленького станка ЧПУ (дерево, печатные платы, пластмассы...). Вроде-бы 60 Вт и маловато, но через меня прошел подобный движок со встроенной стабилизацией, так его практически невозможно было остановить.
Вот и провожу эксперименты.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 19 Oct 2016 23:24
by propell_ant
lame_reef, тут http://arduino.ru/forum/apparatnye-vopr ... dvigatelem смотрели? Пишут, что скорость управляется пинами ACC и DEC

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 20 Oct 2016 21:34
by lame_reef
propell_ant, так и есть. Подача просто постоянного напряжения с переменника ни на АСС (при снятом тормозе - DEC), ни на DEC (при включенном газе АСС) ничего не дала: или 0 оборотов, или максимум. Поэтому понял, что надо ШИМовать. В даташите написано, что типовое значение PWM=16кГц. Собрал ШИМ-генератор на TL494, проверил - если частоту сделать меньше, мотор выдает ну уж очень "невкусные" звуки. А при 12-18кГц очень даже тихий. Только какая-то логика его управления по этим 2-м пинам очень даже странная: снимаешь тормоз (DEC=0) и при первом-же импульсе на газе (ACC), мотор устремляется в максимум и остановить можно только "нажав на тормоз" (DEC=1). А вот если газ всегда держать активным, то по тормозу мотор очень даже управляется ШИМом. Правда заменил особенность: до скважности 50% мотор молчит, увеличиваешь - сразу набирает 2000 оборотов и можешь увеличить пропорционально ШИМ-скважности до 9500 оборотов (при скважности 100%, т.е. просто подать логическую "1").
А ссылка - да. Этот мотор даже очень похож на мой. Только у меня нет пина F\R и размером мой будет немного больше. Контроллер такой-же.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 23 Oct 2016 16:56
by lame_reef
propell_ant, что-то я с Вашей программой уперся в синтаксис. CVAVR пишет:
Error: kbd.c(165): undefined symbol 'View'
Error: kbd.c(169): undefined symbol 'Counter'
Error: kbd.c(172): undefined symbol 'Rpm_LoadOn'
Error: kbd.c(178): undefined symbol 'View'
Error: kbd.c(179): undefined symbol 'Counter'
Error: kbd.c(182): undefined symbol 'SwitchDelay'
Error: kbd.c(187): undefined symbol 'Counter'
Error: kbd.c(194): undefined symbol 'View'
Error: kbd.c(198): undefined symbol 'Counter'
Error: kbd.c(201): undefined symbol 'Rpm_LoadOn'
Error: kbd.c(204): undefined symbol 'Rpm_LoadOn'
Error: kbd.c(208): undefined symbol 'View'
Error: kbd.c(209): undefined symbol 'Counter'
Error: kbd.c(212): undefined symbol 'SwitchDelay'
Error: kbd.c(217): undefined symbol 'Counter'
Error: kbd.c(223): undefined symbol 'View'
Error: kbd.c(224): undefined symbol 'Counter'

Может несоответствие версий?

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 23 Oct 2016 20:58
by propell_ant
lame_reef, да, это CVAVR у вас более свежий. Ловите исправленный исходник.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 23 Oct 2016 22:33
by lame_reef
propell_ant, спасибо. Теперь ошибок компиляции не нашел. Но hex отказался делать, т.к. evaluftion :wall:
Буду искать какую-то версию с кряком.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 24 Oct 2016 00:15
by propell_ant
lame_reef, гуглом ищите Codevisionavr 2.05, первая же ссылка.

Re: Тахометр на ATtiny2313 с реакцией на скорость вращения

Posted: 24 Oct 2016 00:52
by lame_reef
propell_ant, спасибо. Нашел 3.10. Поставил, но были глюки с размером экрана редактирования. Решил.
Пытаюсь разобраться в коде. Как понял, скважность устанавливается в строке 615:
OCR0A = (Rpm_LoadOn - wRpm) / K_P + 127
Так?