24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

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

Здесь только проекты на ATtiny
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Возникла необходимость управлять круизконтролем по 2 проводам (ну нету больше), а кнопок аж 5. Пришлось сделать вот такой дэвайс:
sch_buttons.gif
sch_buttons.gif (13.9 KiB) Viewed 16698 times
Каждой кнопке соответствует соё сопротивление, а с резистором подтяжки они образуют переменный делитель и каждой кнопке соответствует своё напряжение на входе контроллера. Получилась вот такая таблица:
table.png
Расчётное - это то, то я посчитал в теории.
Измеренное - померял тестером прямо на входе контроллера.
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В он держал тиньку постоянно в ресете. С этим надо разобраться.

Чтобы подключить штатный ремокон к этой схеме его надо немного модернизировать, а именно поменять резисторы и подлючение кнопок на плате. Средняя кнопка вобще не используется (думаю, может продублировать клаксон?). Теперь они отлично управляют круизом!
DSCN0384.JPG
На картинке не видно 5-го резистора, т.к. фоталось до его появления в схеме и средняя кнопка была незадействована. Сейчас это REST 2.
Attachments
firmware_buttons v0.5.rar
(6.38 KiB) Downloaded 801 times
Airwave
Пробегал мимо
Posts: 3
Joined: 29 Jan 2013 08:06

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

Post by Airwave »

Hardlock, ответьте, пожалуйста, на следующие вопросы:
1. Подойдет ли для данной конструкции Tiny13V (вместо Tiny13)?
2. Какими должны быть фьюзы при прошивке МК?
3. Какова маркировка элемента VD14?
Спасибо!
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

1. бз изменения прошивки - нет, т.к. программа писана под стандартные для Тини13 - 4,8МГц, а "V" может только до 4 МГц, согласно даташиту. Хотя для 4Мгц будет просто медленнее обрабатывать нажатие, но практически незаметно. Можно просто в свойствах проекта поставить нужную частоту и перекомпилировать и всё.
2. Посмотрите в проекте. CKSEL1=0, SUT0=0, остальные = 1.
3. BZX79-C5V1, BZV55-C5V1 и т.д.
Airwave
Пробегал мимо
Posts: 3
Joined: 29 Jan 2013 08:06

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

Post by Airwave »

Спасибо за скорый ответ!
Не могли бы Вы перекомпилировать прошивку под Tiny13V, а то в нашей деревне только такие имеются
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Airwave, на какую частоту генератора?
Airwave
Пробегал мимо
Posts: 3
Joined: 29 Jan 2013 08:06

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

Post by Airwave »

hardlock, ну наверное на 4МГц. Я, если честно, не силен в МК, но все же не вижу на данной схеме внешнего генератора, значит используем внутренний тиневский на 4МГц
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

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

Добавлено спустя 8 часов 42 минуты 59 секунд:
Обновил схему и прошивку до версии v0.5. Добавилась ещё одна кнопка кнопка (REST 2), которая эмитирует одновременное нажатие кнопок Up и Down. В программе основного МК круиза реализована обработка такого сочетания кнопок.
Attachments
buttons_4MHz.rar
(803 Bytes) Downloaded 577 times
vol4enok
Пробегал мимо
Posts: 2
Joined: 30 Sep 2013 17:59
Location: Брянск

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

Post by vol4enok »

Здравствуйте уважаемый hardlock. В первую очередь хочу выразить огромную брагодарность за разработку сего чудного девайса. Как говорится РЕСПЕКТ и УВАЖУХА Вам и gnomon72. Собрал по Вашей схеме, все пашет за исключением аналоговых кнопок. Проблема в следующем: у нас в продаже нет ATtiny13, а есть только ATTiny13а. Прошивка проходит нормально, но при включении круиза тинька выдает и удерживает нажатие кнопок UP и DOWN, ну и естественно они не работают. Аналоговая клавиатура при этом не подключена. Если выпаять тиньку все работает как надо. Менял две тиньки - результат одинаковый. Можно как-либо сделать прошивочку для 13а? Буду премного благодарен, а то с пультом как-то не очень. Хочеться на руль кнопочки. Я в первую очередь из-за них и выбрал эту схему.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

vol4enok, хм... надо подумать. Вобще-то 13а полный аналог, за исключением фьюзов. Попробую перекомпилировать прошивку именно под 13А, но завтра. Если до вечера не будет результата - напомните, пожалуйста.
vol4enok
Пробегал мимо
Posts: 2
Joined: 30 Sep 2013 17:59
Location: Брянск

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

Post by vol4enok »

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

Все, спасибо, разобрался. Проблема не в прошивке, а в стабилитроне. Этот гад снижал напряжение на входе тиньки до 4.12В :shock: , ну и со всеми вытекающими... Причем стабилитрон на 5.1В. Поменял 3 разных. Короче выкинул его нафиг да и все. :)
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

ligor73 wrote: Скажите а в EEPROM не нужно ничего заливать?
Нет, еепром не используется. Попробуйте прошить не ROM, а HEX.

Стабилитрон 5,6 В или 5,1В?
ligor73
Пробегал мимо
Posts: 13
Joined: 10 May 2010 18:27
Location: Новосибирск

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

Post by ligor73 »

hardlock wrote:Стабилитрон 5,6 В или 5,1В?
Стабилитрона пока нет, без него она же должна работать.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

ligor73, Должна конечно. Если уж Вы открыли проект в кодевижене, то нажимайте Shift+F9 и прошивайте всё целиком.
ligor73
Пробегал мимо
Posts: 13
Joined: 10 May 2010 18:27
Location: Новосибирск

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

Post by ligor73 »

Прошить через кодевижен не получилось, забарахлил программатор.
Прошиваю другим.Гляньте фьюзы правильно стоят?
Attachments
фьюзы.png
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

ligor73, если в Вашей прошрамме установленная галочка соответствует "0", то правильно. В Юнипроф (или как-то так) наоборот - галочка соответствует "1"
ligor73
Пробегал мимо
Posts: 13
Joined: 10 May 2010 18:27
Location: Новосибирск

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

Post by ligor73 »

Почему то на прошивке 0.5 у меня запускаться не захотел.
А вот с прошивкой 0.3 заработала.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Везде шил 0.5. А где Вы взяли 0.3?
ligor73
Пробегал мимо
Posts: 13
Joined: 10 May 2010 18:27
Location: Новосибирск

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

Post by ligor73 »

Да где то на форуме по круизу наверно, сейчас уже и не помню.
Датируется июль 12 года.
И она работает.
А то я уже 3 тини прошил, думая что неисправные попались.
А вот почему 0.5 не работает, непонятно.
Резистор 1 ком , напряжение на входе падает до 0,95 в.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

ligor73 wrote:Резистор 1 ком , напряжение на входе падает до 0,95 в.
А по таблице должено получиться 0,86 вольта. Может уже в допуск не попадает? Проверьте переменником.
ligor73
Пробегал мимо
Posts: 13
Joined: 10 May 2010 18:27
Location: Новосибирск

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

Post by ligor73 »

Выставил подстроечником 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
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

ligor73, да, точно 0,95. Я не туда глянул в таблицу.
Обратите внимание на строку 37 (38). Там задаётся аналоговый вход.

Code: Select all

#define InPin 2             //вход аналоговых кнопок (ADC2)
в 0.3 - это ADC2, в 0.5 - ADC3...
ligor73
Пробегал мимо
Posts: 13
Joined: 10 May 2010 18:27
Location: Новосибирск

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

Post by ligor73 »

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

Добавлено спустя 30 минут 26 секунд:
Нестал перепаивать платку, решил пойти по более простому пути :-)
Перекомпилировал прошивку, работает.
Спасибо, за помощь :good:
alec220
Пробегал мимо
Posts: 17
Joined: 19 Feb 2013 18:03
Location: Россия
Contact:

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

Post by alec220 »

В архиве два файле nex и rom я зашил оба, в eeprom залил rom, а потом прочитал что eeprom не используется, что мне теперь надо как-то зашитое оттуда убрать?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

alec220, думаю можно оставить. Ничего страшного не будет. Главное проверить работу основного функционала.
Post Reply