Мини-задача о attiny13, ШИМ и кнопках
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18657
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Мини-задача о attiny13, ШИМ и кнопках
предлагаю всем, кто приустал от обсуждения взлетающих с транспортеров самолетов и прочих глупостей, заняться решением небольших задачек по теме форума.
первую задачку предлагаю такую (навеяно вот этой темой)
ДАНО: микроконтроллер attiny13.
ТРЕБУЕТСЯ: навесить на него как можно больше светодиодов с регулированием яркости методом ШИМ, при этом чтобы яркость каждого можно было задать при помощи кнопок. Иначе говоря, кроме навешивания как можно большего количества светодиодов, надо навесить еще достаточное количество кнопок для управления этими светодиодами.
УСЛОВИЕ: не использовать микросхем, кроме самого контроллера и вообще свести к минимуму дискретную обвязку сего чуда.
Предлагаю решать задачку на Си. В крайнем случае можно изложить алгоритм решения, подкрепленный наброском схемы.
мне кажется, что время, проведенное за решением такой (а потом, может быть, будут и другие) задачки гораздо более плодотворно пустопорожнего МЯЯЯУканья...
первую задачку предлагаю такую (навеяно вот этой темой)
ДАНО: микроконтроллер attiny13.
ТРЕБУЕТСЯ: навесить на него как можно больше светодиодов с регулированием яркости методом ШИМ, при этом чтобы яркость каждого можно было задать при помощи кнопок. Иначе говоря, кроме навешивания как можно большего количества светодиодов, надо навесить еще достаточное количество кнопок для управления этими светодиодами.
УСЛОВИЕ: не использовать микросхем, кроме самого контроллера и вообще свести к минимуму дискретную обвязку сего чуда.
Предлагаю решать задачку на Си. В крайнем случае можно изложить алгоритм решения, подкрепленный наброском схемы.
мне кажется, что время, проведенное за решением такой (а потом, может быть, будут и другие) задачки гораздо более плодотворно пустопорожнего МЯЯЯУканья...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Не хватает условий. Но, можно расширить количество решений и предложить варианты: с максимальной яркостью свечения и с максимальным количеством светодиодов. При этом условиться, что постоянный ток одного светодиода 10 мА, падение 1 В. Импульсный ток светодиода 100 мА с циклом 1/10. Общее питание 5 В.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18657
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
условий достаточно. каждый светодио должен получать ШИМ-питание от 0 до 100% скважности - чего еще не хватает? ток и прочее - это не главное, суть задачи - в формировании нескольких ШИМов и опросе нескольких кнопок при очень ограниченном количестве выводов и вообще ресурсов МК.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Мини-задача о attiny13, ШИМ и кнопках
Ну я в своей теме (что у тебя по ссылке) уже реализовал 3 ШИМ управляемых 3-мя кнопками 
Что еще можно сделать: т.к. ножек всего 6, то диодов максимум будет 5. и одна кнопка.
одной кнопкой можно выбрать регулируемый диод. Как? Например: нажимаем кнопку за определенный промежуток времени ножное количество раз (считаем его) это и будет номер нужного светодиода.
Если же кнопка нажата долго, то плавно меняем яркость светодиода. После отпускания кнопки меняем направление изменения яркости. Или же при достежении максимума яркости, начинаем ее убавлять, убавив до 0 - прибавлять и т.д., но мне кажется это не так удобно, если требуется поймать максимум.
Что еще можно сделать: т.к. ножек всего 6, то диодов максимум будет 5. и одна кнопка.
одной кнопкой можно выбрать регулируемый диод. Как? Например: нажимаем кнопку за определенный промежуток времени ножное количество раз (считаем его) это и будет номер нужного светодиода.
Если же кнопка нажата долго, то плавно меняем яркость светодиода. После отпускания кнопки меняем направление изменения яркости. Или же при достежении максимума яркости, начинаем ее убавлять, убавив до 0 - прибавлять и т.д., но мне кажется это не так удобно, если требуется поймать максимум.
Код: Выделить всё
#define CHK_B(x) !(PINB & _BV(x))
long int delay = 0;
int switchedDelay = 0;
int tempLEDnumber = 0;
int LEDnumber = 0;
while(1)
{
delay++;
if(CHK_B(0))
{
switchedDelay ++;
else if (switchedDelay > 2000)
{
switchedDelay = 1000;
//тут надо всавить код изменения яркости диода номер LEDnumber
}
}
else
{
if (switchedDelay < 1000) tempLEDnumber++;
}
if (delay == 100000)
{
LEDnumber = tempLEDnumber;
tempLEDnumber = 0;
delay = 0;
}
}
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18657
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мини-задача о attiny13, ШИМ и кнопках
а слабО 5 светодиодов и 5 кнопок?ILIS писал(а):т.к. ножек всего 6, то диодов максимум будет 5. и одна кнопка.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Мини-задача о attiny13, ШИМ и кнопках
Могу 6 светодиодов и 6 кнопок) Только яркость меняться будет скачками. Т.е. нажал кнопку +10% и так до максимума.ARV писал(а):а слабО 5 светодиодов и 5 кнопок?ILIS писал(а):т.к. ножек всего 6, то диодов максимум будет 5. и одна кнопка.хотя для вполне удобного управления достаточно и 3-х кнопок...
Идея простая. Нажатие кнопки подает на ножку ноль. Диод правда погаснет. Состояние ножки обрабатываем в то время, когда импульс ШИМ высокий. Если состояние тоже высокое - значит кнопка не нажата, иначе делаем нужные операции )
Делал когда-то управление RGB светодиодом. Кнопки (4 штуки) на АЦП повесил. Заняло одну ногу контроллера. Диод - еще три ноги отхватил. Одна нога (не считая RESET) - в резерве (для еще одного диода).
Из дополнительного обвеса только кучка резисторов - пять на кнопки и три на диоды.
В прерывании таймера - ШИМ, там-же запуск АЦП на однократное преобразование. В основном цикле - обработка кнопок и действия, с ними связанные. В моем случае - переключение эффектов и скорость, но ничего не мешает и яркостью порулить. Вот ,где-то так, примерно. Подробностей, к сожалению, не помню уже.
Из дополнительного обвеса только кучка резисторов - пять на кнопки и три на диоды.
В прерывании таймера - ШИМ, там-же запуск АЦП на однократное преобразование. В основном цикле - обработка кнопок и действия, с ними связанные. В моем случае - переключение эффектов и скорость, но ничего не мешает и яркостью порулить. Вот ,где-то так, примерно. Подробностей, к сожалению, не помню уже.
В общем тема раскрыта ) Забыл, что в тиньке есть АЦП. Туда очень много кнопок можно повесить ) Ну и 5 диодов. Это самый удобный вариант будет.ramid писал(а):Делал когда-то управление RGB светодиодом. Кнопки (4 штуки) на АЦП повесил. Заняло одну ногу контроллера. Диод - еще три ноги отхватил. Одна нога (не считая RESET) - в резерве (для еще одного диода).
Из дополнительного обвеса только кучка резисторов - пять на кнопки и три на диоды.
В прерывании таймера - ШИМ, там-же запуск АЦП на однократное преобразование. В основном цикле - обработка кнопок и действия, с ними связанные. В моем случае - переключение эффектов и скорость, но ничего не мешает и яркостью порулить. Вот ,где-то так, примерно. Подробностей, к сожалению, не помню уже.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18657
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
ну, я бы не сказал, что использование АЦП самый удобный вариант... хотя вполне приемлемый
развязав кнопки диодами, т.е. по диоду на кнопку, можно на один входной порт повесить все кнопки - их число будет совпадать с числом светодиодов. чтобы светодиоды не погасали, опрос кнопок надо вести в моменты, когда на соответствующем выщоде ШИМ=0 
GP1, зачем вам жюри? для тренировки мозга жюри не требуется
GP1, зачем вам жюри? для тренировки мозга жюри не требуется
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Yellow Tiger
- Сверлит текстолит когтями
- Сообщения: 1148
- Зарегистрирован: Вт июл 08, 2008 12:24:17
Re: Мини-задача о attiny13, ШИМ и кнопках
А почему не шесть? Или RESET дорог, как память?ARV писал(а):а слабО 5 светодиодов и 5 кнопок?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18657
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мини-задача о attiny13, ШИМ и кнопках
предложите решение, как на 6 ног (вместе с ресетом) повесить 6 светодиодов и 6 кнопокYellow Tiger писал(а):А почему не шесть? Или RESET дорог, как память?ARV писал(а):а слабО 5 светодиодов и 5 кнопок?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18657
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
и где она?GP1 писал(а):есть идея, правда на Си не обещаю, не спец.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!



