Рейтинг продавца:
нет оценок
[Всего оценок: 0]
Зарегистрирован: Пт май 12, 2023 23:23:03 Сообщений: 2
Рейтинг сообщения:0
Здравствуйте! Кто может помочь написать код для 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". Желательно моргать пачками импульсов, согласно режима.
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистыOrdyl Alpha 350 и AM 140. Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Рейтинг продавца:
нет оценок
[Всего оценок: 0]
Зарегистрирован: Пт май 12, 2023 23:23:03 Сообщений: 2
Рейтинг сообщения:0
Я имел ввиду: режим1 - 1 импульс - длинная пауза - 1 импульс - длинная пауза; режим2 - 2 импульса - длинная пауза - 2 импульса - длинная пауза; режим3 - 3 импульса - длинная пауза - 3 импульса - длинная пауза; и т.д. Мне нужна индикация режима работы, а не индикация включенной нагрузки. Кнопка сброс нужна, чтобы быстро выйти с любого режима на нулевой режим. Пытаюсь сам написать, но пока не получается. Я только учусь.
Вот только у вас есть проблема- у АТтини13 возможно использовать из восьми, только ПЯТЬ выводов, шестой- "сброс", который у вас так и запланирован как "сброс" Три вывода- управление нагрузкой, два вывода- кнопки и всё, выводы кончились! Светодиод подключать некуда! А мой вариант- просто использование тех же выходов МК для индикации режимов. Либо подбираете другой МК, либо, кроме МК у вас будет использоваться ещё одна, или даже больше, микросхем, например, регистр 74НС595, например, тогда у вас из трёх выходов получится восемь http://codius.ru/articles/Arduino_%D0%A ... 1%82%D1%8B
И да, при использовании "расширителя портов" можно не заморачиваться в счётом морганий светодиода, а просто включать нужный светодиод- у вас "в запасе" целых пять выводов.
зы.. Возьмите ATtiny2313, там можно пользоваться аж 18 входами/выходами (включая сброс), можно даже семисегментный индикатор подключить, для индикации режима..
"сдесь" это условные обозначения любых пинов, настроенных на вывод. Не нравятся Т, замените на Q, U, O - алфавит большой.
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистыOrdyl Alpha 350 и AM 140. Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Рейтинг продавца:
нет оценок
[Всего оценок: 0]
Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Чт ноя 26, 2015 23:22:35 Сообщений: 161 Откуда: не с Уфы
Рейтинг сообщения:0
чет я не совсем понял...... Давай так - вот у тебя подтяжка входа на плюс, скажем 10к. И теперь ты будешь замыкать этот вход на минус через резисторы. Через 35 резисторов. Напиши какие это будут сопротивления и почему именно такие?
подтяжка входа на плюс, скажем 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" Ну, (имхо) как-то вот так...
Рейтинг продавца:
нет оценок
[Всего оценок: 0]
Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Чт ноя 26, 2015 23:22:35 Сообщений: 161 Откуда: не с Уфы
Рейтинг сообщения:0
вот к этому "немного помучиться" я и вёл..... Последние значения (34,35,36) слишком близко, считай для программных допусков уже места нет, в реальном устройстве со временем кнопки начнут чудить, реагировать на силу нажатия ....... итд. Тут разумеется надо сначала шкалу разбивать ровно, а уже потом под найденные точки вычислять сопротивления
как-то в том году понадобилось мне подключить всего две кнопки к одному входу, вот только были такие условия: во-первых, - 4 состояния (а это означает, что "видеть" надо будет и одновременное нажатие двух кнопок )........ и во-вторых, захотелось сделать красиво - разнести точки равномерно по всей шкале [0......1023]....... Ну я такой думаю: "ладно, как минимум резистор подтяжки и резистор какой-то кнопки долны быть одинаковы, чтобы дали как раз 512 ....... ну а потом покумекаю как определить идеальный номинал для второго резистора, чтобы когда один - уводил точку наверх, а когда запаралелливался с первым уходил вниз........" И вроде как всё в целом так то понятно, но в итоге залип я на несколько дней, пытаясь понять как именно искать номинал второго резистора ....... исписал кучу бумаги, даже немного познал эксель, через который значения конечно же нашёл, но это разве метод....... И вот с тех пор блуждаю по форумам в надежде, что кто-то однажды поведает как можно в такой задаче найти идеальное соотношение математическим методом (через уравнение) ......
вот к этому "немного помучиться" я и вёл..... Последние значения (34,35,36) слишком близко, считай для программных допусков уже места нет, в реальном устройстве со временем кнопки начнут чудить, реагировать на силу нажатия ....... итд. Тут разумеется надо сначала шкалу разбивать ровно, а уже потом под найденные точки вычислять сопротивления
как-то в том году понадобилось мне подключить всего две кнопки к одному входу, вот только были такие условия: во-первых, - 4 состояния (а это означает, что "видеть" надо будет и одновременное нажатие двух кнопок )........ и во-вторых, захотелось сделать красиво - разнести точки равномерно по всей шкале [0......1023]....... Ну я такой думаю: "ладно, как минимум резистор подтяжки и резистор какой-то кнопки долны быть одинаковы, чтобы дали как раз 512 ....... ну а потом покумекаю как определить идеальный номинал для второго резистора, чтобы когда один - уводил точку наверх, а когда запаралелливался с первым уходил вниз........" И вроде как всё в целом так то понятно, но в итоге залип я на несколько дней, пытаясь понять как именно искать номинал второго резистора ....... исписал кучу бумаги, даже немного познал эксель, через который значения конечно же нашёл, но это разве метод....... И вот с тех пор блуждаю по форумам в надежде, что кто-то однажды поведает как можно в такой задаче найти идеальное соотношение математическим методом (через уравнение) ......
АлександрЛ, не схема а программа, в моей программе никак не реагирует - реакция только по одной кнопке. В операторе Case для каждой кнопки указан узкий диапазон реагирования. Даже один бит АЦП из 1024 имеет значение, если он не будет стабильным 0.1с команда не пройдет.
если кнопками замыкать резисторы. т.е. кнопка ставится параллельно резистору , то клавиатура на 4-6 кнопок легко реализуема , причем может быть замкнуто любое количество кнопок. Номиналы резисторов берутся такие же как для построения ЦАПа. На 10бит АЦП 7 или 8 кнопок еще будут как то работать в идеальных условиях, но больше это уже на уровне шумов , и точно ничего толкового не получится.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения