Мини-задача о attiny13, ШИМ и кнопках

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Мини-задача о attiny13, ШИМ и кнопках

Сообщение ARV »

предлагаю всем, кто приустал от обсуждения взлетающих с транспортеров самолетов и прочих глупостей, заняться решением небольших задачек по теме форума.

первую задачку предлагаю такую (навеяно вот этой темой)

ДАНО: микроконтроллер attiny13.
ТРЕБУЕТСЯ: навесить на него как можно больше светодиодов с регулированием яркости методом ШИМ, при этом чтобы яркость каждого можно было задать при помощи кнопок. Иначе говоря, кроме навешивания как можно большего количества светодиодов, надо навесить еще достаточное количество кнопок для управления этими светодиодами.
УСЛОВИЕ: не использовать микросхем, кроме самого контроллера и вообще свести к минимуму дискретную обвязку сего чуда.

Предлагаю решать задачку на Си. В крайнем случае можно изложить алгоритм решения, подкрепленный наброском схемы.

мне кажется, что время, проведенное за решением такой (а потом, может быть, будут и другие) задачки гораздо более плодотворно пустопорожнего МЯЯЯУканья...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
sheva_s
Грызет канифоль
Сообщения: 256
Зарегистрирован: Пт апр 27, 2007 14:32:48
Откуда: Украина Кривой Рог
Контактная информация:

Сообщение sheva_s »

Поддерживаю , предлагаю даже модераторам прикрепить постоянно тему , где будут даваться задачи и обсуждаться способы их решения, самое то для начинающих к которым себя причисляю. В ближайшие дни постараюсь посидеть над задачей если позволит время.
Реклама
Аватара пользователя
asteroid7
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Сообщение asteroid7 »

Не хватает условий. Но, можно расширить количество решений и предложить варианты: с максимальной яркостью свечения и с максимальным количеством светодиодов. При этом условиться, что постоянный ток одного светодиода 10 мА, падение 1 В. Импульсный ток светодиода 100 мА с циклом 1/10. Общее питание 5 В.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

условий достаточно. каждый светодио должен получать ШИМ-питание от 0 до 100% скважности - чего еще не хватает? ток и прочее - это не главное, суть задачи - в формировании нескольких ШИМов и опросе нескольких кнопок при очень ограниченном количестве выводов и вообще ресурсов МК.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Эиком - электронные компоненты и радиодетали
ILIS
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт сен 01, 2009 09:54:47

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение ILIS »

Ну я в своей теме (что у тебя по ссылке) уже реализовал 3 ШИМ управляемых 3-мя кнопками :)

Что еще можно сделать: т.к. ножек всего 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, ШИМ и кнопках

Сообщение ARV »

ILIS писал(а):т.к. ножек всего 6, то диодов максимум будет 5. и одна кнопка.
а слабО 5 светодиодов и 5 кнопок? ;) хотя для вполне удобного управления достаточно и 3-х кнопок...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

не хватает самого главного - жюри.
кто будет проверять работоспособность программ?
Чем дальше, тем больше становлюсь занудой...
Изображение
ILIS
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт сен 01, 2009 09:54:47

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение ILIS »

ARV писал(а):
ILIS писал(а):т.к. ножек всего 6, то диодов максимум будет 5. и одна кнопка.
а слабО 5 светодиодов и 5 кнопок? ;) хотя для вполне удобного управления достаточно и 3-х кнопок...
Могу 6 светодиодов и 6 кнопок) Только яркость меняться будет скачками. Т.е. нажал кнопку +10% и так до максимума.
Идея простая. Нажатие кнопки подает на ножку ноль. Диод правда погаснет. Состояние ножки обрабатываем в то время, когда импульс ШИМ высокий. Если состояние тоже высокое - значит кнопка не нажата, иначе делаем нужные операции ) 8)
ILIS
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт сен 01, 2009 09:54:47

Сообщение ILIS »

Ну а если больше - можно и больше, только алгоритм будет ого-го ))) с двоичной адресацией диода и кучей транзисторов ))) т.к. микрухи низя по условию... это в теории )
ramid
Встал на лапы
Сообщения: 133
Зарегистрирован: Ср июл 16, 2008 21:23:37
Откуда: Україна, Київ

Сообщение ramid »

Делал когда-то управление RGB светодиодом. Кнопки (4 штуки) на АЦП повесил. Заняло одну ногу контроллера. Диод - еще три ноги отхватил. Одна нога (не считая RESET) - в резерве (для еще одного диода).
Из дополнительного обвеса только кучка резисторов - пять на кнопки и три на диоды.
В прерывании таймера - ШИМ, там-же запуск АЦП на однократное преобразование. В основном цикле - обработка кнопок и действия, с ними связанные. В моем случае - переключение эффектов и скорость, но ничего не мешает и яркостью порулить. Вот ,где-то так, примерно. Подробностей, к сожалению, не помню уже.
ILIS
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт сен 01, 2009 09:54:47

Сообщение ILIS »

ramid писал(а):Делал когда-то управление RGB светодиодом. Кнопки (4 штуки) на АЦП повесил. Заняло одну ногу контроллера. Диод - еще три ноги отхватил. Одна нога (не считая RESET) - в резерве (для еще одного диода).
Из дополнительного обвеса только кучка резисторов - пять на кнопки и три на диоды.
В прерывании таймера - ШИМ, там-же запуск АЦП на однократное преобразование. В основном цикле - обработка кнопок и действия, с ними связанные. В моем случае - переключение эффектов и скорость, но ничего не мешает и яркостью порулить. Вот ,где-то так, примерно. Подробностей, к сожалению, не помню уже.
В общем тема раскрыта ) Забыл, что в тиньке есть АЦП. Туда очень много кнопок можно повесить ) Ну и 5 диодов. Это самый удобный вариант будет.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

ну, я бы не сказал, что использование АЦП самый удобный вариант... хотя вполне приемлемый :) развязав кнопки диодами, т.е. по диоду на кнопку, можно на один входной порт повесить все кнопки - их число будет совпадать с числом светодиодов. чтобы светодиоды не погасали, опрос кнопок надо вести в моменты, когда на соответствующем выщоде ШИМ=0 :)

GP1, зачем вам жюри? для тренировки мозга жюри не требуется :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение Yellow Tiger »

ARV писал(а):а слабО 5 светодиодов и 5 кнопок?
А почему не шесть? Или RESET дорог, как память? :)))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мини-задача о attiny13, ШИМ и кнопках

Сообщение ARV »

Yellow Tiger писал(а):
ARV писал(а):а слабО 5 светодиодов и 5 кнопок?
А почему не шесть? Или RESET дорог, как память? :)))
предложите решение, как на 6 ног (вместе с ресетом) повесить 6 светодиодов и 6 кнопок :) а улыбаться из-за угла каждый может :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

есть идея, правда на Си не обещаю, не спец. :)))
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

GP1 писал(а):есть идея, правда на Си не обещаю, не спец. :)))
и где она?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

ARV писал(а):
GP1 писал(а):есть идея, правда на Си не обещаю, не спец. :)))
и где она?
Сначала проверить надо, завтра займусь.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Goodefine
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

А чего все за шесть светодиодов уцепились? Нужели цифра 9-ть хуже? :)
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Аватара пользователя
OBIVAN
Встал на лапы
Сообщения: 84
Зарегистрирован: Вт ноя 25, 2008 18:56:41

Сообщение OBIVAN »

Ну как вариант еще можно использовать 3-состояния вывода мк. и увеличить число светиков 2-раза.
Аватара пользователя
Goodefine
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Сообщение Goodefine »

Итого 18... Уже лучше. Только в 9-ть раз превысить импульсный ток над номинальным еще можно, а вот в 18 не уверен... Но цифра солидная :) ...
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»