Академия Гитарной Электроники: 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

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

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

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

вот.Что и как делать дальше отпишу завтра. Прикрепленный файл  migalka.rar (640байт)
Количество загрузок:13 Прикрепленное изображение: миг.jpg кружек частота "синуса" между рисками 512 байт тут Вы можете нарисовать любую форму сигнала. ( разумеется с амплитудой от 1 до 255) я навскидку навоял, что то вроде пилы в каждом такте 4 зуба.

у 2313 - 2,3,6,7 входы. 12,13,14,15 - выходы. ШИМ конечно слабенький около 3кГц (это при внутреннем RC 8МГц.) Выводы под кварц свободны если поставить кварц 20МГц разумеется частота 2.5 раза увеличится.
проверить нет на чем, но думаю должно работать если, что подправим.

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

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


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

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