www.horizontautomatics.ru

Программирование, автоматизация.

Помогите пожалуйста в вопросе построения прошивки ATTYNY13A

Модератор: Евгений

Помогите пожалуйста в вопросе построения прошивки ATTYNY13A

Сообщение Evgeny555 » 12 июн 2018, 19:34

Я только осваиваю программирование микроконтроллеров , по этому прошу помощи в наставлении на путь истинный .Ваша программа очень сильно помогает в этом , но как реализовать то что будет описано далее пока не разобрался ! Есть некий механизм с различными узлами и датчиками , требуется к нему сделать дополнительное устройство которое бы включалось от контроллера ATTINY13 но по полученному сигналу с механизма . Далее более подробно о том что есть и что нужно . на механизме стоит Энкодер инкрементальный который при работе механизма выдает импульсы , которые меняются в зависимости от вращения ( те скорость импульсов на выходе не постоянна и может быть от 1го в минуту и далее по нарастающей до 6000т об.мин. вала энкодера число импульсов в минуту на максимальных оборотах не известно , известно только что на выходе энкодера +24V в момент прохождения импульса, механизм может запускаться как с максимальных оборотов так и с низких , это всегда происходит по разному ) . Задача стоит в следующем что бы контроллер ATTINY13A при получении импульсов с энкодера активировал определенные выходы . Более точно должно быть так PB0 - вход импульсных сигналов , PB1- вход на котором задается количество импульсов , по средством переключателей иле перемычек через резисторы подтянутые на минус иле на VCC , с шагом в 10кОм , всего 5 значений 1- 4 импульса , 2-8 импульсов , 3-12 импульсов , 4-18 импульсов , 5-22 импульса , то есть контроллер получил заданное число импульсов и на этом счет продолжаться не должен иле в дальнейшем счете уже нет необходимости , так же контроллер не должен учитывать скорость поступления импульсов по тому как они поступают с разной скоростью , те. отсчитал что задано активировал выход , PB2 - Выход для управления нагрузкой , PB3 и PB4 входы перезапуска , отсутствие питания на этих входах должно приводить к перезапуску процесса , PB5 задействован для индикации состояния на двух цветный светодиод , зеленый устройство получило требуемое количество импульсов и находится в активном состоянии , красный в режиме ожидания . я собрал схему в протэусе со всеми компонентами а вот написать прошивку по средством выставления различных блоков не получается так как присутствуют не постоянные величины . как правильно построить логику отслеживания таких сигналов с переходом их в статус разрешено иле запрещено пока не понимаю ! По этому и прошу вашей помощи
Evgeny555
 
Сообщения: 12
Зарегистрирован: 11 июн 2018, 18:40

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Прохожий » 12 июн 2018, 20:18

Привет! Половинку (по части задания диапазонов только по одному входу используя АЦП) можно почерпнуть из урока по кодовому замку.

https://www.youtube.com/watch?v=lzLj2GexnaM

Вторая половинка просто счётчик. После которого стоит сравнение (больше,меньше или равно, в зависимости от того, по которому решению тебе удобно делать. В один вход блока сравнения (равно, больше,меньше) приходит число со счётчика, на второй то, что переведённое в натуральное число пришло с АЦП. При этом Задача довольно простая, но нужно посмотреть видеоуроки, в которых всё это имеется :) В любом случае придётся изучать программу.

Если начать изучать программу на конкретной задаче, то я бы начал, так. Сначала научился пользоваться ЖК индикатором (пример в видео есть, Протеус в помощь), понял как выводить на него данные ( в будущем это пригодится). Потом разобрался как в замке работает АЦП и вывел эти данные на индикатор, для наглядности. Потом, разобрался с алгоритмом самой программы. А под конец исключив индикатор засунул бы всё это в Тиньку13.

Как вариант. В принципе у тебя 5 пинов (ног). (Можно и 6 сделать, но резет работать не будет при внутрисхемном программировании, так что остановимся на 5-ти). Значит задавать 5 параметров ты сможешь без АЦП просто по 3 ногам.
000- 4 импульса , 001-8 импульсов , 010-12 импульсов , 011-18 импульсов , 100-22 импульса
Как итог: 3 пина на задание количества импульсов + 1 на вход + 1 на выход на исполнительное устройство. И того 5 без всяких танцев. Как бонус, если используется переключатель сразу видно, что установлено :)
С "PB3 и PB4 входы перезапуска" не совсем понимаю, но кажется с этим резет справится. Рестарт контроллера любой счёт начнёт заново :)
С "PB5 задействован для индикации" тоже не понятно. Индикацию можно на выход к исполнительному прикрутить.

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

Для экспериментов в железе (что бы и индикатор и всё такое прикрутить не задумываясь) Atmega32 вполне приемлемы по цене. Хотя 328P перспективнее и меньше в размерах и можно сразу купить распаянные на ардуиновской плате :) Рекомендую заказывать сразу по 2-3 контроллера и более. Бывает так, что виновата прошивка, в по всем признакам кажется, что сам контроллер концы отдал :)
Если есть возможность и требуется минимальный размер, переходи с Attiny13 на Attiny85, что бы в будущем, при тех же размерах, не заморачиваться с размером кода.
P.S: Если хочется чего то большего от контроллера, на FLprog (аналог Горизонта) уходить не рекомендую. Там, не смотря на большее количество периферии ограниченное число контроллеров и Тиньки использовать проблематично. Более полно использовать контроллер тоже не получится. Остаётся среда - Flowcode. Но там совершенно иной концепт. Зато возможностей несоизмеримо больше. Для автоматики Горизонт самое оно, пользуюсь часто. Если напилят блоков под ардуиновское железо - то цены не будет. А если появится блок "вачдог" (если контроллер завис - то сам резетнётся) и прочие штуки вроде сбора данных по количеству включений и причинах выключений-перезагрузок и прочих полезностей- то вообще красота :)
"Attiny 85 из Atmega328P сделать совсем не сложно, достаточно просто откусить лишние ноги!"
Прохожий
 
Сообщения: 368
Зарегистрирован: 21 май 2016, 06:23

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Evgeny555 » 13 июн 2018, 08:58

Ардуино нано есть в наличии несколько штук по тестировать на них смогу . Часть кода я как раз и посмотрел в проекте кодовый замок . в стопор ввело только то что входной сигнал не стабилен и может меняться в очень больших пределах . по сему и решил обратиться за советом . самое начало а именно счет таких импульсов со сравнением заданных значений пока не понимаю ( визуально бы посмотреть как правильно это строиться и на каких блоках ) . и еще может стоит взять ATTINY2313 там возможностей по больше будет с различной реализацией входов выходов ?
Evgeny555
 
Сообщения: 12
Зарегистрирован: 11 июн 2018, 18:40

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Evgeny555 » 13 июн 2018, 09:17

счетчик использовать универсальный иле циклический ?
Evgeny555
 
Сообщения: 12
Зарегистрирован: 11 июн 2018, 18:40

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Прохожий » 13 июн 2018, 09:26

Под входным сигналом ты подразумеваешь твой энкодер или нестабильность опорного напряжения на АЦП контроллера?
Счётчик какой нравится. Пока программу снёс, хотел новую поставить. Но она на 64бита выдаёт ошибку. Надеюсь не сегодня-завтра Евгеий подправит, посмотрим :)

По всяким согласованием толково здесь:
http://схема-авто.рф/avtomobilnaya-govorilka-svoimi-rukami.html
http://www.getchip.net/posts/062-kak-po ... -nagruzku/

Если есть Ардуино нано (как понимаю на 328З), то на ATTINY2313 стоит смотреть только из желания сэкономить 40-50 рублей на готовом результате :) Я в своё время их как и ATTINY13 купил по десятку,пристраиваю при случае. Иногда настолько в притирку по размеру кода, что лучше бы выкинул и ATTINY85 воткнул, что бы время не терять. Тестовую программу лучше составлять на том, где экономить не приходится. А то полёт мысли всё время желает каких нибудь новых улучшений.
Ещё как совет. В "многоногих" контроллерах при разведении платы часто типоразмер TQFP ничем особенно не выигрывает перед DIP. Так как переход со стороны на сторону как раз по ногам делать удобнее. А вот "малоногие" в SOIC и прочем - это вещь!!! На ноге большого пальца бывает вся плата помещается :)
"Attiny 85 из Atmega328P сделать совсем не сложно, достаточно просто откусить лишние ноги!"
Прохожий
 
Сообщения: 368
Зарегистрирован: 21 май 2016, 06:23

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Прохожий » 13 июн 2018, 10:23

Вот произвольный пример на 328Р. Смоделируй в протеусе. При пяти нажатиях триггер на выходе - включается, при последующих пяти - выключается :) Если выключаться будет через reset - то связь выхода "равенство" до R счётчика можно удалить. Хотя и сам триггер можно удалить, если заместо равенство "больше" поставить. Вход В0 притянут к полюсу в самом контроллере. Единственный нюанс - это в первом цикле счёт до 4, а в остальных до пяти. Нужно начальные состояния элементов скорректировать или инвертор, подавление дребезга воткнуть. Можно в начальное состояние счётчика 4 поставить, а перед триггером инвертор :) Как видишь вариантов "схемных" на выбор любых :)
328P_forum.hc
(2.57 КБ) Скачиваний: 61

Твоя задача данные из АЦП (если всё таки решил через АЦП делать) засандалить на замену константы, на втором входе блока "равенство" :) Какие данные туда введёшь - до стольки считать и будет :)
"Attiny 85 из Atmega328P сделать совсем не сложно, достаточно просто откусить лишние ноги!"
Прохожий
 
Сообщения: 368
Зарегистрирован: 21 май 2016, 06:23

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Evgeny555 » 13 июн 2018, 21:59

Касаемо стабильности сигнала это непосредственно про энкодер . На счет силовой обвязки с этим проблем нет как и что подключить и на каких компонентах это сделать я знаю , сейчас как раз тестирую входную цепь на стабильность и быстродействие так как энкодер выдает 24V по этому приходится делать развязку . Программа мне понравилась постепенно изучаю жаль мало готовых примеров построения , так как наглядный пример все же проще освоить меняя какие либо параметры построения и проверяя визуально быстрее осваивается . А можно ли для выбора заданных значений применять сдвиговый регистр используя один вход для изменения параметров счета ?и если да то как правильно это делать ?
Evgeny555
 
Сообщения: 12
Зарегистрирован: 11 июн 2018, 18:40

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Прохожий » 13 июн 2018, 23:47

Со сдвиговым регистром тоже вариант хороший :) Ты определился с контроллером в конечном изделии и будешь ли АЦП использовать?
Развязку от энкодера можно на оптическом реле сделать. Сейчас их и в DIP и в SOIC корпусах навалом :)
"Attiny 85 из Atmega328P сделать совсем не сложно, достаточно просто откусить лишние ноги!"
Прохожий
 
Сообщения: 368
Зарегистрирован: 21 май 2016, 06:23

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Evgeny555 » 14 июн 2018, 07:52

варианты использования контроллера почти определены если получится все уложить в ATTINY13A то будет на нем если не вложиться то 2313 . периферия как вход контроля так и силовые выходы собраны и сейчас отрабатывают уже по месту пока правда вход только визуальные сигналы выдает после обработки а выхода управляются тумблерами но все собрано и работает . По гонял ваш пример для 328P в таком виде как он есть он производит переключение каждые 5 нажатий но через те же следом еще пять меняет статус выхода обратно и так по кругу 5 раз нажал вкыл. еще 5 выкл.
Evgeny555
 
Сообщения: 12
Зарегистрирован: 11 июн 2018, 18:40

Re: Помогите пожалуйста в вопросе построения прошивки ATTYNY

Сообщение Evgeny555 » 14 июн 2018, 08:00

видимо придется использовать ацп и скорее всего будет задействована епром что бы сохранялись настройки те которые установлены
Evgeny555
 
Сообщения: 12
Зарегистрирован: 11 июн 2018, 18:40

След.

Вернуться в Микроконтроллеры AVR

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron