Счётчик оборотов двигателя Atmega8

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

Alkul писал(а):Есть еще решение без всяких шестерней.
А именно - щелевой оптрон
Простыми решениями вымощена дорога в ад. Судя по тому, как отвечающий с восторгом описывает элементарнейшее подключение инкрементального датчика на оптроне, он, как бы помягше, "свежий чайник" и ни разу ничего подобного в реале не делал, а так, "тетеритически" :) Потому не будем у него допытываться: а) а как он будет определять направление вращения, б) при потере местоположения ( помеха, сбой питания ) инкрементальный датчик превращается в кучу железа, ибо будет отсчитывать текущее положение от угла одесского Привоза. И существованием реперных точек, в которых восстанавливаются абсолютные координаты, не будем грузить никого.
Вопрос решен приблизительно лет 150 тому назад, в этом топике кратко обозначены решения, ТС нужно определиться и выбрать наиболее близкое к конкретной задаче и посильное для реализации, исходя из соотношения "точность - надежность - сложность".

Чтобы не выглядеть голословным критиканом, расскажу, как это по уму делают люди. Итак, световая щель - чем тоньше, тем точнее позиционирование. Под ней K оптронов. K = log2 (N), где N - число точек позиционирования, определяется как N = L/d, где L - длина хода механизма, d - допустимая точность ( разрешающая способность ) . Между ними - прозрачная лента с непрозрачными участками, кодирующая положение в коде Грэя. Для тех, кто не в курсе - однопеременный код Грэя позволяет избежать ситуации, когда от кода, допустим, 0111 вместо ожидаемого 1000 мы попадаем в 0000 или же в 1111 . Вот и все. Никаких АЦП, аналоговых погрешностей и пр. лабуды.
Поверьте, мне неловко объяснять азбучные истины, которые большинство знает и без меня, но увы - не все :(
Gray.JPG
(4.5 КБ) 1518 скачиваний
Изображение
Реклама
Аватара пользователя
siamds
Встал на лапы
Сообщения: 99
Зарегистрирован: Вт мар 20, 2012 20:50:22
Откуда: Краснодар

Re: Счётчик оборотов двигателя Atmega8

Сообщение siamds »

Уважаемый Isx !
Для начала работы над Вашим проектом мне нужны некоторые дополнительные сведения:
1. Регулируются ли обороты двигателя и желательно его марку?
2. Максимальные обороты двигателя?
3. Соединен ли двигатель с винтовой парой напрямую или через редуктор?
4. Точность позиционирования ±1 мм (уточните).
5. Максимальная длина хода суппорта?
6. Сколько координат движения суппорта?
7. По какой координате контролируется движение суппорта?
А также все, что Вы сочтете необходимым. В общем, чем больше информации – тем лучше.
С уважением, Сергей.
Последний раз редактировалось siamds Вт май 15, 2012 09:18:35, всего редактировалось 1 раз.
На каждого Моцарта есть свой Сальери.
Реклама
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

Только что тюкнула идея ( дарю бесплатно :) ) -- в качестве датчика кода Грэя применить лавсановую перфоленту ( аксакалы помнят ), соответствующим образом проперфо-дыркованную. Обеспечит 256 точек позиционирования. Если надо больше - 2 в параллель.
Alkul
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Re: Счётчик оборотов двигателя Atmega8

Сообщение Alkul »

Jack_A писал(а):Судя по тому, как отвечающий с восторгом описывает элементарнейшее подключение инкрементального датчика на оптроне
Судя по тому, как Вы уже в который раз описываете принцип работы абсолютного энкодера, Вы только позавчера разобрались с его работой :)
Jack_A писал(а): а) а как он будет определять направление вращения,
б) при потере местоположения ( помеха, сбой питания )
Такая задача ставилась?

Каюсь, я невнимательно прочел первый пост, меня отвлекли, а потом я прочел посты отвечающих, где предлагались датчики Холла, наклейки на вал и утвердился в мнении, что требуется измерить скорость вращения. А может, не один я неправильно понял автора темы.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

Это точно. Не прошло и 50 лет, как это освоил, и с тех пор непрерывно - то на оптике, то на сельсинах, то на дифракционных решетках :) Аналоговый датчик - в топку !
А мне сразу по прочтении поста ТС стало ясно, что ему нужен датчик положения, только напрямую он сказать об этом стеснялся, и исходя из изложенного, получили вышесказанное.
Ну ладно, преложили ему навалом, пусть выбирает.
Реклама
Аватара пользователя
siamds
Встал на лапы
Сообщения: 99
Зарегистрирован: Вт мар 20, 2012 20:50:22
Откуда: Краснодар

Re: Счётчик оборотов двигателя Atmega8

Сообщение siamds »

Уважаемые коллеги Alkul и Jack_A!
В пылу споров мы немного отвлеклись от темы, так что давайте-ка перейдем от споров к полемике, ибо в споре никогда не рождается истина. Люди мы технически грамотные и поэтому давайте вместе коллегиально решать проблему автора. Предлагая то или иное решение, давайте вместе подробно разбирать и анализировать предложения. Сейчас я работаю над черновым вариантом станка на МК, чуть позже выложу на форуме. А пока давайте определимся с датчиком оборотов. Jack_A объяснил нам (и я с ним согласен) что автору поста требуется контролировать путь пройденный суппортом и позиционировать положение инструмента относительно детали с точностью ±1 мм (если я правильно понял). Мое мнение таково: не стоит применять резисторные датчики или механические энкодеры. Также откажемся от применения ВТ и ндуктосинов по причине сложности их запитки и оцифровки интервала. Я бы остановил свое внимание либо на фото датчиках, либо на датчиках Холла. Какие еще будут мнения и предложения?
С уважением, Siamds.
На каждого Моцарта есть свой Сальери.
Реклама
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

Так мы почти и не спорили - так, обменялись репликами :-)
siamds писал(а):Также откажемся от применения ВТ и ндуктосинов по причине сложности их запитки и оцифровки интервала. Я бы остановил свое внимание либо на фото датчиках, либо на датчиках Холла.
Сложность запитки и оцифровки сильно преувеличена - еще когда я был сравнительно молодым и зеленым, лет 35 тому назад :-( без труда делал это на древней, но очень помехоустойчивой К511 ( МК тогда еще и в помение не было в СССРии ) . Другое дело - тут точная механика нужна, безлюфтовой редуктор. С оптикой проще - кодовую ленту на всю длину - всего делов. Но - в цеховых условиях возможность загрязнения и пыли.
Насчет Холла не в курсе, не применял.
А ТС-у оно еще нужно ? А то дяди махаются, а он мож ушел уже пить пиво.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Счётчик оборотов двигателя Atmega8

Сообщение isx »

Я вернулся)) Сгорел монитор к чертям собачьим, вчера новый купил, теперь всё ОК :)
Оптику хоть щелевую хоть какую я сразу отбросил (как говорил уже помещение содержит много "микропыли" в летучем состоянии, и прочищать его будет некому, так как делаю не себе и меня там не будет, а доверять электронику рабочим не безопасно, тем более я знаю какие там балбесы иногда работают :) )
Направление вращения определяет МК. В нём 2 кнопки "вверх" и "вниз" и в зависимости от того какая нажата счётчик будет либо прибавлять значение, либо убавлять.
Чтобы не потерять текущее значение при отключении я хочу использовать EEPROM.
Обороты движка не регулируются, максимальное количество оборотов около 700, имеется винтовая пара и шкивы в соединении, ход около 1 метра, Координата одна.
Нужно тысяча точек позиционирования (перфолента врядли прокатит)..
Желательно конечно бы датчик положения (типо потенциометра, т.е. чтоб всегда знал где находится), но теперь хотябы счётчик количества оборотов.
Siamds вообщем всё верно, вот только от оптики я тож решил отказаться, Jack_A верно изложил мысль :)
Пока остановился на холле, печатку склеил, на выходных поеду подгонять и сверлить отверстия, а потом уже собирать писать и тестировать...
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

isx писал(а): Направление вращения определяет МК. В нём 2 кнопки "вверх" и "вниз" и в зависимости от того какая нажата счётчик будет либо прибавлять значение, либо убавлять.
Чтобы не потерять текущее значение при отключении я хочу использовать EEPROM.
Т.е, как я понял, решено все-таки использовать инкрементальный, а не абсолютный датчик. Но это чревато. При выключении он, допустим, запомнит положение, но сколько он протащится от выбега, да и просто механически может быть перемещен, а вспомнит он положение, в котором "потерял сознание".
"Если бы разработчиком был я", как писалось в совеских газетах, все-таки отдал бы приоритет точности и надежности, а не простоте и дешевизне, и делал бы на сельсине с редуктором. Резистивный датчик ( если без редуктора, то - линейный на всю длину хода , я об этом выше упоминал) кажется проще, но контактный съем, да и точность оцифровки нужна.
Ну ладно - я высказался, а кому делать - его дело как.
Аватара пользователя
siamds
Встал на лапы
Сообщения: 99
Зарегистрирован: Вт мар 20, 2012 20:50:22
Откуда: Краснодар

Re: Счётчик оборотов двигателя Atmega8

Сообщение siamds »

Может быть, Вы немного спешите что-либо паять? У меня сразу возникает несколько вопросов:
1. Место расположения датчика (вал двигателя, винтовая пара или где-то еще).
2. Конструкция датчика (чертеж или хотя бы рисунок от руки).
3. Какой тип датчика применяется (щелевой или торцевой).
4. Количество датчиков или количество щелей либо зубцов на диске.
До перехода на административную работу я работал инженером – электронщиком в лаборатории ЧПУ, поэтому тема Ваша мне знакома, и рассматривать все возникающие вопросы я буду с точки зрения работы станка с ЧПУ (что собственно говоря, мы и пытаемся создать). С датчиком Вы определились, но насколько Вы, верно, определились, давайте подумаем. У вас промышленное производство и степень защиты должна быть как минимум УХЛ4 и IР67. Всем этим требованиям удовлетворяют датчики еще Советского производства надежность которых не вызывает никаких сомнений. Вот некоторые из них:
БПТП - бесконтактный переключатель торцевой позиционный типа БПТП-28.
ПИЩ - переключатель индуктивный щелевой типа ПИЩ-6-1.
КВД - конечный выключатель дистанционный типа КВД-3(есть щелевые и торцевые).
Все эти датчики относятся к датчикам Холла.
Прежде чем принять решение о датчике поищите их характеристики в интернете. Не знаю, сколько стоят эти датчики в других регионах, но в прошлом году я покупал датчики ПИШ-6-1 по 180 рублей. Если мне не изменяет память максимальная частота срабатывания ПИШ-6-1 – 1 kHz. Коллеги, подключайтесь к обсуждению и разделывайте меня под орех.Примерный вид конструкции датчика во вложении.
Датчик.jpg
(35.49 КБ) 713 скачиваний
На каждого Моцарта есть свой Сальери.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Счётчик оборотов двигателя Atmega8

Сообщение Alexeyslav »

Контроллер ведь может иметь свое питание, например от ионистора что обеспечит ему как минимум секунд 30 бесперебойной работы при исчезновении питания. Иначе советовать использовать EEPROM для записи значения в момент исчезновения питания это потенциальная возможность нарваться на неприятности - контроллер может не успеть записать данные... а что он потом прочтет при включении?

И самый простой выход из ситуации - при подаче питания(или при подаче соответствующей команды с предварительной блокировкой управления в момент подачи питания исключающей ситуации неожиданного движения механизмов) приводить все подвижные части до концевиков, тем самым "синхронизируя" положение. Впрочем, это всеравно надо периодически делать - ложные срабатывания датчика и координата "поедет" в процессе работы.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

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

А мы еще не обсуждали лазерные, емкостные и ультразвуковые позиционеры :)

Тоска зеленая : есть же у людей интересные задачи, а тут сидишь без дела, котов воспитываешь ... ( это про себя )
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Счётчик оборотов двигателя Atmega8

Сообщение isx »

Т.е, как я понял, решено все-таки использовать инкрементальный, а не абсолютный датчик
Пока да. Просто решение это не окончательное. Ранее я с ними не работал и поэтому практика не помешает. Пока не найдено более удачное решение собрал плату чтоб начать писать прошивку и смотреть само управление (короче потестировать остальные элементы, ато там у меня и управление двигателем и дисплей ещё), а если решение появится, то заменить датчик и переписать прошивку это дело не сложное :)
Датчик был выбран от автомобиля ваз (Астро 16.3855 с микросхемой Siemens) как оказалось он имеет цифровой выход.. (просто больше нет в городе ничего ХОЛЛООБРАЗНОГО :) ). Как я понимаю там надёжность тоже должна быть отличная, авто как никак, частота у него тоже подходящая вроде..
Крепиться датчик буден на каркас оборудования, напротив шкива (который на черевичный вал идёт). за 2мм перемещения оси шкив делает ровно 1 оборот. Так что если поставить два магнита, то как раз точность в 1 мм будет.
Насчёт сбоев да, теоретически положение может измениться при выключенном датчике, но на практике этого сделать не получится. Всё управление двигателем идёт через МК, и сместить положение можно только если накой-то чёрт крутить шкив руками :) . Но вот дабы не соблазнять на это рабочих я и хочу в будущем всё-таки использовать что нибудь другое, со знанием своего местоположения.
Контроллер пока питается от батарейки, поэтому пока проблема с питанием решена. (как решение с датчиком найдётся переведу на сетевое питание).
Насчёт точек подумывал, но лишних навесов хотелось бы избежать...

Первая мысль у меня была вообще сделать оптический дальномер :))
Насчёт задач да... Я выбираю себе самые изощрённые :)))
Аватара пользователя
siamds
Встал на лапы
Сообщения: 99
Зарегистрирован: Вт мар 20, 2012 20:50:22
Откуда: Краснодар

Re: Счётчик оборотов двигателя Atmega8

Сообщение siamds »

Уважаемые коллеги!
Высылаю на Ваш суд свою концепцию работы станка промоделированную в Proteus’e. Работа, а начинается с нажатия кнопки “Пуск” при этом срабатывает пускатель (D3) подающий питание на силовую часть и электроавтоматику станка. Кнопками “>>” или меньше “<<” задаем расстояние, которое должен пройти суппорт (если не задать расстояние суппорт не поедет). Кнопками “Вверх” или “ФП” (фиксированное положение) выгоняем суппорт в исходное положение и при наезде на концевик КВФП движение вверх останавливается и система обнуляется. ФП служит для того чтобы при сбоях ЧПУ не потерять привязку инструмента. При нажатии на кнопу “ФП” суппорт должен выходить в исходную точку на повышенной скорости. Выгнав суппорт в ФП, и задав расстояние, нажимаем кнопу “Вниз”. Срабатывает реле RL1 и суппорт пошел вниз, а датчик начинает выдавать счетные импульсы (контролируется D4). Математика МК преобразует импульсы в миллиметры. При совпадении заданного и измеренного расстояния реле RL1 отключает привод. Задание программно ограничено параметрами 0÷1000 мм. То есть за эти пределы суппорт не заедет.
Вложения
Stanok.rar
Станок с ЧПУ
(45.8 КБ) 302 скачивания
На каждого Моцарта есть свой Сальери.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Счётчик оборотов двигателя Atmega8

Сообщение isx »

Ну у меня вообщем всё то же самое, только ещё стоит контроль за "незаконными" срабатываниями двигателя и перемещения суппорта. ФП не предусматривал, хотя как вариант можно. Скорость при нажатии на кнопку ФП увеличить не возможно, двигатель всегда в цепи включен на полную..
И клавиатура там 4х4 с цифрами для задания параметров..
Аватара пользователя
siamds
Встал на лапы
Сообщения: 99
Зарегистрирован: Вт мар 20, 2012 20:50:22
Откуда: Краснодар

Re: Счётчик оборотов двигателя Atmega8

Сообщение siamds »

Приятно общаться с профи. То, что программы у нас примерно одинаковы так здесь ничего удивительного нет. Стандартный алгоритм работы станка. Конечно же, от датчика я не в восторге ну да “за неимением прачки и с дворником спят”. А двигатель у Вас переменка или постоянка? У меня есть несколько хороших разработок по приводам постоянного тока, так что если что – обращайтесь. Высылаю Вам документацию по датчикам.
Вложения
Датчики.PDF
датчики
(777.51 КБ) 1080 скачиваний
На каждого Моцарта есть свой Сальери.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

siamds писал(а): концепцию работы станка промоделированную в Proteus’e.
Я это творение мысли не использую, но просто интересно стало : что, в нем можно промоделировать и с учетом инерции механики, и переходных процессов в обмотках, и противоЭДС ? Насколько могу судить по другим веткам, даже при моделировании чистой электроники иногда такие фортели наблюдаются ...
Такие уж мы, старики : скептически настроенные. :(
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Счётчик оборотов двигателя Atmega8

Сообщение Alexeyslav »

Для этого и нужна практика. А вот работу программы микроконтроллера промоделирвоать можно, всяко удобнее чем прошивать живой нести его к станку, включать и видеть дымок из-за того что он два ключа одновременно открыл...
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Счётчик оборотов двигателя Atmega8

Сообщение isx »

Хотя мне в принципе и лень моделировать, но даже готовой модели протеуса я бы доверять не стал... Я там всего 3 проекта делал, и 2 из них дали не очень хорошие результаты... Да и точно промоделировать столь тонкие процессы в принципе не реально..
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Счётчик оборотов двигателя Atmega8

Сообщение Jack_A »

Вот и я такого же мнения.
Но пардон, мы уже вроде с темы съехали.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»