Академия Гитарной Электроники: 4 режима светодиодов на мк - Академия Гитарной Электроники

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

4 режима светодиодов на мк

#1 Пользователь офлайн   WRD 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 14 Февраль 2018 - 20:51

Всем привет.
такое дело, нужно сделать 4 режима работы светодиодов на мк но я не умею этого(( паяльщик а не программист.

такая штука (контролнр атмел или пик) 4 кнопки, 4 выхода.
1 выход включается когда зажата 1 кнопка на выходе синус (или типа того) чтоб светодиоды загорались и расли с эффектом пульсации
2 выход включен когда зажаты две кнопки на выходе думаю меандр но не ровный а чтоб светодиод мигал как неисправная лампа дневного света
3 также как и 2 только если зажаты 3 кнопки
4 когда зажаты все кнопки светодиоды на четвертом выходе просто горят

на выходы скорее всего повешаю транзисторы чтоб ток шел через них а не мк как-то так)
готов поставить пиво, шоколадку или денег тому кто смогет такое написать

это только часть большой конструкции которую покажу потом когда готово будет но это единственная часть на которую я самостоятельно потрачу слишком много времени которого у меня нет(
0

Добрый день.
Для поддержания guitar-gear необходимо пара килорублей. Всем небезразличным просьба воспользоваться формой Я.Деньги
Проверь свой e-mail на валидность!!
В редактор добавлена кнопка "Спойлер" для выкладки больших изображений, всех игнорирующих эту возможность ждет наказание.

#2 Пользователь офлайн   Nazarett 

  • то тут то там..
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 Февраль 2018 - 16:48

Для этого вам нужен PWM, который реализуется на таймерах и опрос кнопок (или EXTI).
Попробуйте сначала найти реализацию PWM для вашего контроллера, а там все в принципе просто.
1. Эффект пульсации, это модуляция pwm небольшой скважностью от скважности, которая дает примерно 80% от свечения.
2. Меандр, это pwm управляемый другим таймером.

Само управление кнопками, это по сути комбинация вызовов функций свечения через входы.

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

#3 Пользователь офлайн   WRD 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 Февраль 2018 - 19:21

Просмотр сообщенияNazarett (15 Февраль 2018 - 16:48) писал:

Для этого вам нужен PWM, который реализуется на таймерах и опрос кнопок (или EXTI).
Попробуйте сначала найти реализацию PWM для вашего контроллера, а там все в принципе просто.
1. Эффект пульсации, это модуляция pwm небольшой скважностью от скважности, которая дает примерно 80% от свечения.
2. Меандр, это pwm управляемый другим таймером.

Само управление кнопками, это по сути комбинация вызовов функций свечения через входы.

Разумнее прикупить 2 долларовую микросхему для управления светодиодными лентами, там еще много всяких режимов найдете)
Реализовать увы не помогу, с авр/пик не работаю.

спасибо я это и так понимаю что по сути нужен генератор. но нужно чтоб режимы переключались именно таким способом, при зажатии и нужна реализация( потому тему и создал в надежде что кто-то кто на мк уже собаку съел за вменяемую награду поможет)
0

#4 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 Февраль 2018 - 19:59

WRD, больше конкретики, помогу.
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#5 Пользователь офлайн   Nazarett 

  • то тут то там..
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 Февраль 2018 - 20:11

Просмотр сообщенияWRD (15 Февраль 2018 - 19:21) писал:

спасибо я это и так понимаю

github в помощь
а сегодня качественно играть на гитаре могут не только лишь все... мало кто может...
0

#6 Пользователь офлайн   Vitalka 

  • Антиум
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 Февраль 2018 - 20:42

Если кнопки зажимаются конкретные, а не рандомные, то для простоты можно реализовать на ардуино.
Шануймося браття, бо ми того варті
0

#7 Пользователь офлайн   WRD 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 Февраль 2018 - 22:30

Просмотр сообщенияVitalka (15 Февраль 2018 - 20:42) писал:

Если кнопки зажимаются конкретные, а не рандомные, то для простоты можно реализовать на ардуино.

рандомные

qwer009 сказал:

больше конкретики, помогу.
что нужно?
0

#8 Пользователь офлайн   Vitalka 

  • Антиум
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 Февраль 2018 - 22:48

Можно и с рандомными - вроде придумал, как это сделать без длинных переборов вариантов выбора
Шануймося браття, бо ми того варті
0

#9 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 16 Февраль 2018 - 06:47

WRD, нужно все. Тип камня ( желательно атмел, под пики нужно будет софт качать), хотя бы структурную схему с указанием ног камня ( если увижу, что лучше сделать иначе подскажу, а Вам решать ), более конкретно режимы работы диодов ( частота пульсаций, дискретность изменения яркости свечения ).
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#10 Пользователь офлайн   Nazarett 

  • то тут то там..
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 16 Февраль 2018 - 17:24

Просмотр сообщенияVitalka (15 Февраль 2018 - 22:48) писал:

Можно и с рандомными - вроде придумал, как это сделать без длинных переборов вариантов выбора

Дык там и не нужен перебор
uint8 res = 0;
pin1 = 3;
pin2 = 5;
pin3 = 6;
pin4 = 1;
res = (uint8) (port & 1 << pin1 + port & 1 << pin2 + port & 1 << pin3 + port & 1 << pin4); // res принимает значения от 0 до 4, где 0 - ниодной нажатой, 
switch(res)
{
case: 1
//что там у вас когда одна нажата
case: 2
//когда две нажаты
case: 3
//когда три нажаты
case: 4
//когда четыре нажаты
}

Этот код нужно вызывать в прерывании таймера
switch можно (нужно) вынести в другую функцию, тогда вот так:
void dosomething(uint8 current)
{
switch(res)
{
case: 1
//что там у вас когда одна нажата
case: 2
//когда две нажаты
case: 3
//когда три нажаты
case: 4
//когда четыре нажаты
}
}
void buttons((void *fn)(uint8 current))
{
uint8 res = 0;
pin1 = 3;
pin2 = 5;
pin3 = 6;
pin4 = 1;
res = (uint8) (port & 1 << pin1 + port & 1 << pin2 + port & 1 << pin3 + port & 1 << pin4); // res принимает значения от 0 до 4, где 0 - ниодной нажатой, 
fn(res) 
}

Тогда обработчик прерывания будет короче, что важно, плюс можно сделать уни-запись обработчка, типа:
init (сюда свалить номера кнопок, и обработчик (*fn)(uint 8))
{
делаем подпись на событие (на самом деле просто передаем указатель на функцию которая будет вызвана при условии что какая то кнопка нажата)
}
Удобно тем, что при инициализации задаются нужные вам выводы, которые можно менять, причем если грамотно сделать эту инициализацию (напримре туда во внутрь добавить инит таймера и периферии) можно это изменять прямо впрограмме типа "угадай куда нажму какой вывод щас обрабатываю" :D
а сегодня качественно играть на гитаре могут не только лишь все... мало кто может...
0

#11 Пользователь офлайн   WRD 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 16 Февраль 2018 - 19:50

Просмотр сообщенияqwer009 (16 Февраль 2018 - 06:47) писал:

WRD, нужно все. Тип камня ( желательно атмел, под пики нужно будет софт качать), хотя бы структурную схему с указанием ног камня ( если увижу, что лучше сделать иначе подскажу, а Вам решать ), более конкретно режимы работы диодов ( частота пульсаций, дискретность изменения яркости свечения ).

тк пока ничего нет и все покупать надо то выходит что любой мк по удобнее и по дешевле))) какой-нибудь attiny или если его мало таже atmega8 думаю вполне пойдет кнопки - 4 вывода (хоть 1234) замыкаемые на землю или питание, 4 вывода (можно тоже любые, всеравно все к платке шлейфами подключаться будет) выходов к затворам полевиков которые на землю замыкают диоды

1 режим тк нужно пульсацию плавную думаю нужен синус 0,7 гц, я хз как на мк оно реализовывается но думаю на лесенку в 8 бит плевать)))с остальными режимами думаю проще в разы, пульсации думаю можно сгладить кондером хотя вроде на выходе может быть пара сотен кгц и выше?
0

#12 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 16 Февраль 2018 - 20:31

WRD, тогда тиня 26 водь не дорогая. Посмотрите у себя или 2313 тоже доступная хотя у нас она дороже. первый вариант обязательно синус? треугольник можно реализовать аппаратно.а по сколько диодов в нагрузке будет?
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#13 Пользователь офлайн   WRD 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 17 Февраль 2018 - 00:55

Просмотр сообщенияqwer009 (16 Февраль 2018 - 20:31) писал:

WRD, тогда тиня 26 водь не дорогая. Посмотрите у себя или 2313 тоже доступная хотя у нас она дороже. первый вариант обязательно синус? треугольник можно реализовать аппаратно.а по сколько диодов в нагрузке будет?

я думаю 2313 отлично подойдет, она везде есть, и в Алмате и в МСК я ее встречал)

про синус, думаю и треугольник подойдет тк нужно чтоб плавно загорался и обратно гас) просто тк я обычно паяю аналоговое привык к синусу)))

диодов в нагрузке будет по раному тк это одинаковые детали по электронике но разные по форме и размеру, что-то вроде интерактивного консруктора
0

#14 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 17 Февраль 2018 - 08:04

WRD, Кое что мне все еще не понятно.
Сколько выходов четыре или один? ( если один то можно и 13 тиню она еще дешевле и доступней)
если четыре то.
1. когда нажата 1к - то на 1 выходе "синус" 2,3,4 не активны
2. когда нажата 2к - то на 2 выходе "синус" 1,3,4 не активны
3 и 4 аналогично.
так?

когда нажаты 1 и 2 на 1 и 2 выходах пульсации с частотой Х (?)
когда нажаты 1 и 3 на 1 и 3 выходах пульсации с частотой Х (?)
когда нажаты 2 и 4 на 2 и 4 выходах пульсации с частотой Х (?)
итд так?

с тремя кнопками аналогично, но соответственно мигают 3 выхода.

при четырех нажатых кнопках четыре выхода активны.

имеет ли значение время нажатия кнопок?

Предположим ситуация. нажата 1 кнопка включился режим 1, через время Т (?) добавили кнопку 2 включается ли второй режим? Или сохраняется первый до сброса ( не нажата ни одна кнопка) ? Если так, то какое время считается нажатие кнопок одновременным.

если время не имеет значения можно поставить тиню 13 и копеешную логику типа ЛА3 (7400) будет еще дешевле.
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#15 Пользователь офлайн   WRD 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 17 Февраль 2018 - 09:36

Просмотр сообщенияqwer009 (17 Февраль 2018 - 08:04) писал:

WRD, Кое что мне все еще не понятно.
Сколько выходов четыре или один? ( если один то можно и 13 тиню она еще дешевле и доступней)
если четыре то.
1. когда нажата 1к - то на 1 выходе "синус" 2,3,4 не активны
2. когда нажата 2к - то на 2 выходе "синус" 1,3,4 не активны
3 и 4 аналогично.
так?

когда нажаты 1 и 2 на 1 и 2 выходах пульсации с частотой Х (?)
когда нажаты 1 и 3 на 1 и 3 выходах пульсации с частотой Х (?)
когда нажаты 2 и 4 на 2 и 4 выходах пульсации с частотой Х (?)
итд так?

с тремя кнопками аналогично, но соответственно мигают 3 выхода.

при четырех нажатых кнопках четыре выхода активны.

имеет ли значение время нажатия кнопок?

Предположим ситуация. нажата 1 кнопка включился режим 1, через время Т (?) добавили кнопку 2 включается ли второй режим? Или сохраняется первый до сброса ( не нажата ни одна кнопка) ? Если так, то какое время считается нажатие кнопок одновременным.

если время не имеет значения можно поставить тиню 13 и копеешную логику типа ЛА3 (7400) будет еще дешевле.


выходов 4, режим активен пока зажата кнопка те отпустил и все выключилось или на режим вниз

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

время значение имеет и если запилить с логикой сильно дольше думаю только мк будт лучше
0

#16 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 17 Февраль 2018 - 09:58

WRD,
1. Режимов 4.
2. Выходов 4 и на каждом выходе только один из 4х режимов.

1. нажата одна любая кнопка - на первом выходе синус. остальные выходы не активны.
2. нажаты две любые кнопки - на втором выходе пульсации. остальные выходы не активны.
3. нажаты три любые кнопки - на третьем выходе пульсации. остальные выходы не активны.
4. нажаты все кнопки -на 4 выходе высокий уровень постоянно.

так?
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#17 Пользователь офлайн   WRD 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 17 Февраль 2018 - 13:02

Просмотр сообщенияqwer009 (17 Февраль 2018 - 09:58) писал:

WRD,
1. Режимов 4.
2. Выходов 4 и на каждом выходе только один из 4х режимов.

1. нажата одна любая кнопка - на первом выходе синус. остальные выходы не активны.
2. нажаты две любые кнопки - на втором выходе пульсации. остальные выходы не активны.
3. нажаты три любые кнопки - на третьем выходе пульсации. остальные выходы не активны.
4. нажаты все кнопки -на 4 выходе высокий уровень постоянно.

так?

да именно так
пульсации по амплитуде одинаковые а по времени разные типа как азбука морзе два коротких мигания и одно длинное например
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

3 человек читают эту тему
0 пользователей, 3 гостей, 0 скрытых пользователей