Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Аналоговые кнопки (для круизконтроля)

Здесь только проекты на ATtiny

Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 09 июл 2012 16:31

Возникла необходимость управлять круизконтролем по 2 проводам (ну нету больше), а кнопок аж 5. Пришлось сделать вот такой дэвайс:
sch_buttons.gif
sch_buttons.gif (13.9 КБ) Просмотров: 6213

Каждой кнопке соответствует соё сопротивление, а с резистором подтяжки они образуют переменный делитель и каждой кнопке соответствует своё напряжение на входе контроллера. Получилась вот такая таблица:
table.png
table.png (17.57 КБ) Просмотров: 6213

Расчётное - это то, то я посчитал в теории.
Измеренное - померял тестером прямо на входе контроллера.
eeprom - вытащил из МК, записывая соответствующие кода в eeprom.

Рекомендую после сборки померять напряжение на входе тиньки и пересчитать по формуле: code = U * 1023 / 5. Где 5 - напряжение питания. Как видно из таблицы ошибка при измерении получается всего 2-3 единицы. Ошибка установленная в программе -плюс/минус 20. Это сделано и на компенсацию температурного коэфициента сопротивлений и на сопротивление линий.

Прошивка в прикреплённых файлах.
Используется массив значений (по умолчанию 3) в который каждые 10 мс записывается новое значение с АЦП (по очереди - типа FIFO). Далее проверяется отличие всех значений на удвоенную ошибку. Если отклонение меньше, то значит на входе устоявшееся напряжение. Далее проверяем, входит ли полученное значение в коридор (+- ошибка) какого-нибудь кода кнопки. Если входит, то переводим выход в нулевое состояние и удерживаем, пока код попадает в корридор. Тем самым можно обрабатывать и длительные нажатия в самом КК. Подавление дребезга - 30мс.

Порт натраивается таким образом, чтобы в исходном состоянии на выходе было Z-состояние. Активный выход - "0". Ну типа "отрытый коллектор". Это сделано для того, чтоы работали и обычные кнопки, параллеьно которым можно подключить эту схему, т.е. тиня им не мешала. Значит подтяжки на кнонках оставляем (на схеме их нет - они есть на основной схеме).

В том же архиве, в папке EXE есть HEX для прошивки, но рекомендую собрать схему, померять полученные значения и забить их в исходник и скомпилировать (CodeVisionAVR v2.05.3). Фьюзы прописаны в проекте (установлены, т.е. равны "0" CKSEL1, SUT0, остальные не установлены, т.е. = "1"). Работаем на частоте 4,8 МГц.

Дэвайс проверен в железе. Куруизконтроль корректно отрабатывает все нажатия кнопок, также проверено включение питания с удержанием кнопок - работает.
Только БОД не включен, т.к. включенный и настроенный на 4,3В он держал тиньку постоянно в ресете. С этим надо разобраться.

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

На картинке не видно 5-го резистора, т.к. фоталось до его появления в схеме и редняя кнопка была незадействована. Сейчас это REST 2.
Вложения
firmware_buttons v0.5.rar
(6.38 КБ) Скачиваний: 311
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение Airwave » 29 янв 2013 09:17

Hardlock, ответьте, пожалуйста, на следующие вопросы:
1. Подойдет ли для данной конструкции Tiny13V (вместо Tiny13)?
2. Какими должны быть фьюзы при прошивке МК?
3. Какова маркировка элемента VD14?
Спасибо!
Airwave
Пробегал мимо
 
Сообщения: 3
Зарегистрирован: 29 янв 2013 09:06

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 29 янв 2013 17:07

1. бз изменения прошивки - нет, т.к. программа писана под стандартные для Тини13 - 4,8МГц, а "V" может только до 4 МГц, согласно даташиту. Хотя для 4Мгц будет просто медленнее обрабатывать нажатие, но практически незаметно. Можно просто в свойствах проекта поставить нужную частоту и перекомпилировать и всё.
2. Посмотрите в проекте. CKSEL1=0, SUT0=0, остальные = 1.
3. BZX79-C5V1, BZV55-C5V1 и т.д.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение Airwave » 29 янв 2013 17:40

Спасибо за скорый ответ!
Не могли бы Вы перекомпилировать прошивку под Tiny13V, а то в нашей деревне только такие имеются
Airwave
Пробегал мимо
 
Сообщения: 3
Зарегистрирован: 29 янв 2013 09:06

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 29 янв 2013 20:38

Airwave, на какую частоту генератора?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение Airwave » 30 янв 2013 06:00

hardlock, ну наверное на 4МГц. Я, если честно, не силен в МК, но все же не вижу на данной схеме внешнего генератора, значит используем внутренний тиневский на 4МГц
Airwave
Пробегал мимо
 
Сообщения: 3
Зарегистрирован: 29 янв 2013 09:06

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 30 янв 2013 09:06

Airwave, с тиней "V" дела не имел и поэтому не знаю какие частоты внутреннего генератора там используются. В даташите ничего не нашёл про тактирование В-шки...
Во вложении перекомпилированная прошивка под 4MHz, без исходника, т.к. ничего кроме частоты в свойствах проекта не менял, а Вам придётся подгонять не только частоту, а и коды кнопок. Поэтому пользуйте порект из первого поста.

Добавлено спустя 8 часов 42 минуты 59 секунд:
Обновил схему и прошивку до версии v0.5. Добавилась ещё одна кнопка кнопка (REST 2), которая эмитирует одновременное нажатие кнопок Up и Down. В программе основного МК круиза реализована обработка такого сочетания кнопок.
Вложения
buttons_4MHz.rar
(803 байт) Скачиваний: 187
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение vol4enok » 30 сен 2013 18:11

Здравствуйте уважаемый hardlock. В первую очередь хочу выразить огромную брагодарность за разработку сего чудного девайса. Как говорится РЕСПЕКТ и УВАЖУХА Вам и gnomon72. Собрал по Вашей схеме, все пашет за исключением аналоговых кнопок. Проблема в следующем: у нас в продаже нет ATtiny13, а есть только ATTiny13а. Прошивка проходит нормально, но при включении круиза тинька выдает и удерживает нажатие кнопок UP и DOWN, ну и естественно они не работают. Аналоговая клавиатура при этом не подключена. Если выпаять тиньку все работает как надо. Менял две тиньки - результат одинаковый. Можно как-либо сделать прошивочку для 13а? Буду премного благодарен, а то с пультом как-то не очень. Хочеться на руль кнопочки. Я в первую очередь из-за них и выбрал эту схему.
vol4enok
Пробегал мимо
 
Сообщения: 2
Зарегистрирован: 30 сен 2013 17:59
Откуда: Брянск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 30 сен 2013 18:19

vol4enok, хм... надо подумать. Вобще-то 13а полный аналог, за исключением фьюзов. Попробую перекомпилировать прошивку именно под 13А, но завтра. Если до вечера не будет результата - напомните, пожалуйста.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение vol4enok » 02 окт 2013 14:57

Напоминаю :) И еще вопрос,точнее два. Какие фьюзы надо для Tiny13a? ]Надо ли прошивать файл buttons.rom который в Exe? Просто у меня xAVR это файл не читает.

Все, спасибо, разобрался. Проблема не в прошивке, а в стабилитроне. Этот гад снижал напряжение на входе тиньки до 4.12В :shock: , ну и со всеми вытекающими... Причем стабилитрон на 5.1В. Поменял 3 разных. Короче выкинул его нафиг да и все. :)
vol4enok
Пробегал мимо
 
Сообщения: 2
Зарегистрирован: 30 сен 2013 17:59
Откуда: Брянск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 18 июн 2014 14:11

ligor73 писал(а):Скажите а в EEPROM не нужно ничего заливать?

Нет, еепром не используется. Попробуйте прошить не ROM, а HEX.

Стабилитрон 5,6 В или 5,1В?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение ligor73 » 18 июн 2014 14:20

hardlock писал(а):Стабилитрон 5,6 В или 5,1В?

Стабилитрона пока нет, без него она же должна работать.
ligor73
Пробегал мимо
 
Сообщения: 13
Зарегистрирован: 10 май 2010 18:27
Откуда: Новосибирск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 18 июн 2014 14:21

ligor73, Должна конечно. Если уж Вы открыли проект в кодевижене, то нажимайте Shift+F9 и прошивайте всё целиком.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение ligor73 » 20 июн 2014 13:57

Прошить через кодевижен не получилось, забарахлил программатор.
Прошиваю другим.Гляньте фьюзы правильно стоят?
Вложения
ligor73
Пробегал мимо
 
Сообщения: 13
Зарегистрирован: 10 май 2010 18:27
Откуда: Новосибирск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 20 июн 2014 14:10

ligor73, если в Вашей прошрамме установленная галочка соответствует "0", то правильно. В Юнипроф (или как-то так) наоборот - галочка соответствует "1"
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение ligor73 » 20 июн 2014 14:16

Почему то на прошивке 0.5 у меня запускаться не захотел.
А вот с прошивкой 0.3 заработала.
ligor73
Пробегал мимо
 
Сообщения: 13
Зарегистрирован: 10 май 2010 18:27
Откуда: Новосибирск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 20 июн 2014 14:25

Везде шил 0.5. А где Вы взяли 0.3?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение ligor73 » 20 июн 2014 14:40

Да где то на форуме по круизу наверно, сейчас уже и не помню.
Датируется июль 12 года.
И она работает.
А то я уже 3 тини прошил, думая что неисправные попались.
А вот почему 0.5 не работает, непонятно.
Резистор 1 ком , напряжение на входе падает до 0,95 в.
ligor73
Пробегал мимо
 
Сообщения: 13
Зарегистрирован: 10 май 2010 18:27
Откуда: Новосибирск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 20 июн 2014 14:42

ligor73 писал(а):Резистор 1 ком , напряжение на входе падает до 0,95 в.

А по таблице должено получиться 0,86 вольта. Может уже в допуск не попадает? Проверьте переменником.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение ligor73 » 20 июн 2014 15:07

Выставил подстроечником 0,86 вольт, не реагирует.
А почему 0,86 ? В прошивке ведь забит код под 0,95
#define BTAutoCode 0x0C2 //Auto
#define BTRestCode 0x13B //REST
#define BTRest2Code 0x343 //REST 2
#define BTDnCode 0x206 //Down
#define BTUpCode 0x2BC //Up
или это не то?
а это из 0.3
#define BTAutoCode 0x0C2 //Auto
#define BTRestCode 0x13B //REST
#define BTUpCode 0x206 //Up
#define BTDnCode 0x2BC //Down
ligor73
Пробегал мимо
 
Сообщения: 13
Зарегистрирован: 10 май 2010 18:27
Откуда: Новосибирск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 20 июн 2014 15:11

ligor73, да, точно 0,95. Я не туда глянул в таблицу.
Обратите внимание на строку 37 (38). Там задаётся аналоговый вход.
Код: Выделить всё
#define InPin 2             //вход аналоговых кнопок (ADC2)

в 0.3 - это ADC2, в 0.5 - ADC3...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение ligor73 » 20 июн 2014 15:17

А ведь точно, у пятикнопочной 2 и 3 ноги поменяны местами :-)
А я то платку разводил под четырёхкнопочную, проглядел.
Моя ошибка, сейчас перекинем и думаю заработает.

Добавлено спустя 30 минут 26 секунд:
Нестал перепаивать платку, решил пойти по более простому пути :-)
Перекомпилировал прошивку, работает.
Спасибо, за помощь :good:
ligor73
Пробегал мимо
 
Сообщения: 13
Зарегистрирован: 10 май 2010 18:27
Откуда: Новосибирск

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 20 июн 2014 15:48

ligor73, :drink:
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Аналоговые кнопки (для круизконтроля)

Сообщение alec220 » 16 июл 2014 23:22

В архиве два файле nex и rom я зашил оба, в eeprom залил rom, а потом прочитал что eeprom не используется, что мне теперь надо как-то зашитое оттуда убрать?
alec220
Пробегал мимо
 
Сообщения: 17
Зарегистрирован: 19 фев 2013 19:03
Откуда: Россия

Re: Аналоговые кнопки (для круизконтроля)

Сообщение hardlock » 17 июл 2014 08:06

alec220, думаю можно оставить. Ничего страшного не будет. Главное проверить работу основного функционала.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

След.

Вернуться в ATtiny



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

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