Код для ATTiny13.

Уборка сахарного тростника. Сезонная. Пайка кастрюль. Сдельная. Предложения работы.
Ответить
Родился
Сообщения: 2
Зарегистрирован: Пт май 12, 2023 23:23:03

Сообщение SuperMaster »

Здравствуйте!
Кто может помочь написать код для ATTiny13?
На входе две кнопки (+ и -) или энкодер.
Кнопка "Сброс".
Три выхода: Т1, Т2, Т3.
Пять режимов работы:
Режим 0. ( Т1, Т2, Т3 - выключены);
Режим 1. ( Т1, Т2, Т3 - включены);
Режим 2. ( Т1, Т3 - включены, а Т2 - выключен);
Режим 3. ( Т2, Т3 - включены, а Т1 - выключен);
Режим 4. ( Т3 - включен, а Т1 и Т2 - выключены);
При включении МК - по умолчанию включается "Режим 0".
Чтобы режимы можно было переключать по кругу (по возрастанию и убыванию, через "Режим 0")
Предусмотреть светодиод, который будет светиться или моргать на всех режимах, кроме: "Режим 0".
Желательно моргать пачками импульсов, согласно режима.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3490
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

Готов взяться. Написал в личку.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1430
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

[uquote="SuperMaster",url="/forum/viewtopic.php?p=4414976#p4414976"]Желательно моргать пачками импульсов, согласно режима.[/uquote]
Какими такими "пачками"?!
2 кнопки, 3 выхода, 1 светодиод. Вы хотите использовать reset?
Пишите на htpicc@gmail.com.
Друг Кота
Аватара пользователя
Сообщения: 44079
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

(имхо) по-моему, тут справится обычный реверсивный счётчик.. :dont_know:

зы.. А зачем "миганиями" индицировать состояние? поставьте три светодиода- и будет вам вся информация без всякого геморроя с подсчётом морганий..
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 2
Зарегистрирован: Пт май 12, 2023 23:23:03

Сообщение SuperMaster »

Я имел ввиду:
режим1 - 1 импульс - длинная пауза - 1 импульс - длинная пауза;
режим2 - 2 импульса - длинная пауза - 2 импульса - длинная пауза;
режим3 - 3 импульса - длинная пауза - 3 импульса - длинная пауза;
и т.д.
Мне нужна индикация режима работы, а не индикация включенной нагрузки.
Кнопка сброс нужна, чтобы быстро выйти с любого режима на нулевой режим.
Пытаюсь сам написать, но пока не получается.
Я только учусь.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 44079
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

Вот только у вас есть проблема- у АТтини13 возможно использовать из восьми, только ПЯТЬ выводов, шестой- "сброс", который у вас так и запланирован как "сброс"
Три вывода- управление нагрузкой, два вывода- кнопки и всё, выводы кончились! Светодиод подключать некуда!
А мой вариант- просто использование тех же выходов МК для индикации режимов.
Либо подбираете другой МК, либо, кроме МК у вас будет использоваться ещё одна, или даже больше, микросхем, например, регистр 74НС595, например, тогда у вас из трёх выходов получится восемь
http://codius.ru/articles/Arduino_%D0%A ... 1%82%D1%8B

И да, при использовании "расширителя портов" можно не заморачиваться в счётом морганий светодиода, а просто включать нужный светодиод- у вас "в запасе" целых пять выводов.

зы.. Возьмите ATtiny2313, там можно пользоваться аж 18 входами/выходами (включая сброс), можно даже семисегментный индикатор подключить, для индикации режима..
Реклама
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

Для кнопок один вход ADC, до 36 кнопок включал.
Встал на лапы
Аватара пользователя
Сообщения: 132
Зарегистрирован: Пн фев 06, 2017 15:20:04

Сообщение sergs777 »

Внимательно изучил даташит. Не нашёл T1 T2 и T3. Что сдесь имеется ввиду?
Друг Кота
Аватара пользователя
Сообщения: 3490
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

"сдесь" это условные обозначения любых пинов, настроенных на вывод. Не нравятся Т, замените на Q, U, O - алфавит большой.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Друг Кота
Аватара пользователя
Сообщения: 44079
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

smacorp писал(а):Не нравятся Т, замените на Q, U, O - алфавит большой.
Можно OUT1, OUT2 и OUT3? И ещё OUTLED. Мне так больше нравится! :)))
linkov1959 писал(а):Для кнопок один вход ADC,
Ну, да.. В принципе, так тоже можно.. :dont_know:

зы.. На счёт "морганий" - это ПАМЯТЬ, а в тини13 её всего 1 килобайт..
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы

Сообщение Родэрик »

[uquote="linkov1959",url="/forum/viewtopic.php?p=4415385#p4415385"]Для кнопок один вход ADC, до 36 кнопок включал.[/uquote]
а по какому принципу резисторы подбирал?
Контактная информация:
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

Родэрик, 200к на сам вход для нуля и общее для делителя пару кил. Желательно максимум 32 кнопки.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы

Сообщение Родэрик »

чет я не совсем понял......
Давай так - вот у тебя подтяжка входа на плюс, скажем 10к. И теперь ты будешь замыкать этот вход на минус через резисторы. Через 35 резисторов. Напиши какие это будут сопротивления и почему именно такие?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 44079
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

Родэрик писал(а):подтяжка входа на плюс, скажем 10к. И теперь ты будешь замыкать этот вход на минус через резисторы. Через 35 резисторов. Напиши какие это будут сопротивления и почему именно такие?
(имхо) а там сопротивления не очень принципиальны, главное- какое напряжение будет поступать с делителя на вход ADC.
Ну, или, какой "код" будет на выходе.
Вот, например:
СпойлерИзображение
(условно показаны не все 36 кнопок)
Например, при ненажатых кнопках на выходе АЦП будет код 1023, при нажатой кнопке 1- на выходе будет НОЛЬ, при нажатой кнопке 2 - 93, кнопке 3- 171, кнопка 4 - 236, ...... кнопка 14- 579, кнопка 24- 713, 34=786, 35=790, 36=796...
Недостаток такого "тупо в лоб" метода- чем больше кнопок, тем мельче "шаг изменения данных АЦП". В принципе, если немного помучиться, то можно так подобрать резисторы делителя, что "шаг" будет более- менее равномерным, но тогда потребуется подбор резисторов нестандартных номиналов.
А так-
если АЦП= от 0 до 45- это "кнопка 1"
если АЦП= от 46 до 131 это "кнопка 2"
если АЦП= от 132 до 203 это "кнопка 3"
...................
если АЦП= от 783 до 787 это "кнопка 34"
если АЦП= от 788 до 793 это "кнопка 35"
если АЦП= от 794 до 800 это "кнопка 36"
Ну, (имхо) как-то вот так...
Вложения
кн35-790.JPG
(114.63 КБ) 68 скачиваний
кн14-579.JPG
(116.19 КБ) 60 скачиваний
кн1-0.JPG
(116.2 КБ) 52 скачивания
кн36-796.JPG
(114.49 КБ) 198 скачиваний
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы

Сообщение Родэрик »

вот к этому "немного помучиться" я и вёл..... Последние значения (34,35,36) слишком близко, считай для программных допусков уже места нет, в реальном устройстве со временем кнопки начнут чудить, реагировать на силу нажатия ....... итд. Тут разумеется надо сначала шкалу разбивать ровно, а уже потом под найденные точки вычислять сопротивления

как-то в том году понадобилось мне подключить всего две кнопки к одному входу, вот только были такие условия: во-первых, - 4 состояния (а это означает, что "видеть" надо будет и одновременное нажатие двух кнопок )........ и во-вторых, захотелось сделать красиво - разнести точки равномерно по всей шкале [0......1023]....... Ну я такой думаю: "ладно, как минимум резистор подтяжки и резистор какой-то кнопки долны быть одинаковы, чтобы дали как раз 512 ....... ну а потом покумекаю как определить идеальный номинал для второго резистора, чтобы когда один - уводил точку наверх, а когда запаралелливался с первым уходил вниз........" И вроде как всё в целом так то понятно, но в итоге залип я на несколько дней, пытаясь понять как именно искать номинал второго резистора ....... исписал кучу бумаги, даже немного познал эксель, через который значения конечно же нашёл, но это разве метод....... И вот с тех пор блуждаю по форумам в надежде, что кто-то однажды поведает как можно в такой задаче найти идеальное соотношение математическим методом (через уравнение) ......
Контактная информация:
Открыл глаза
Сообщения: 68
Зарегистрирован: Пт ноя 11, 2016 09:17:49

Сообщение ELECTROS »

[uquote="Родэрик",url="/forum/viewtopic.php?p=4416311#p4416311"]вот к этому "немного помучиться" я и вёл..... Последние значения (34,35,36) слишком близко, считай для программных допусков уже места нет, в реальном устройстве со временем кнопки начнут чудить, реагировать на силу нажатия ....... итд. Тут разумеется надо сначала шкалу разбивать ровно, а уже потом под найденные точки вычислять сопротивления

как-то в том году понадобилось мне подключить всего две кнопки к одному входу, вот только были такие условия: во-первых, - 4 состояния (а это означает, что "видеть" надо будет и одновременное нажатие двух кнопок )........ и во-вторых, захотелось сделать красиво - разнести точки равномерно по всей шкале [0......1023]....... Ну я такой думаю: "ладно, как минимум резистор подтяжки и резистор какой-то кнопки долны быть одинаковы, чтобы дали как раз 512 ....... ну а потом покумекаю как определить идеальный номинал для второго резистора, чтобы когда один - уводил точку наверх, а когда запаралелливался с первым уходил вниз........" И вроде как всё в целом так то понятно, но в итоге залип я на несколько дней, пытаясь понять как именно искать номинал второго резистора ....... исписал кучу бумаги, даже немного познал эксель, через который значения конечно же нашёл, но это разве метод....... И вот с тех пор блуждаю по форумам в надежде, что кто-то однажды поведает как можно в такой задаче найти идеальное соотношение математическим методом (через уравнение) ......[/uquote]
В два раза уменьшай каждый последующий резистор.
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

На 12 кнопок
Изображение
Друг Кота
Аватара пользователя
Сообщения: 44079
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

linkov1959 писал(а):На 12 кнопок
А как ваша схема реагирует на одновременное нажатие двух и более кнопок?
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

Сообщение linkov1959 »

АлександрЛ, не схема а программа, в моей программе никак не реагирует - реакция только по одной кнопке. В операторе Case для каждой кнопки указан узкий диапазон реагирования. Даже один бит АЦП из 1024 имеет значение, если он не будет стабильным 0.1с команда не пройдет.
Встал на лапы
Сообщения: 132
Зарегистрирован: Ср фев 11, 2015 19:16:32

Сообщение smart_pic »

если кнопками замыкать резисторы. т.е. кнопка ставится параллельно резистору , то клавиатура на 4-6 кнопок легко реализуема , причем может быть замкнуто любое количество кнопок. Номиналы резисторов берутся такие же как для построения ЦАПа.
На 10бит АЦП 7 или 8 кнопок еще будут как то работать в идеальных условиях, но больше это уже на уровне шумов , и точно ничего толкового не получится.
Контактная информация:
Ответить

Вернуться в «Есть работа»