Контроллер RGB подсветки панели приборов автомобиля

Модератор: boogyman

Аватара пользователя
mikolka6
Новичок
Сообщения: 6
Зарегистрирован: 08 апр 2014, 10:45

Re: Контроллер RGB подсветки панели приборов автомобиля

#201

Сообщение mikolka6 »

А тема ещё жива, а то есть вопрос к автору?!
Аватара пользователя
AntonChip
Администратор
Сообщения: 265
Зарегистрирован: 24 дек 2011, 22:11
Откуда: Киров
Контактная информация:

#202

Сообщение AntonChip »

Тема скорее не жива, но вопрос задавайте
Аватара пользователя
mikolka6
Новичок
Сообщения: 6
Зарегистрирован: 08 апр 2014, 10:45

Re:

#203

Сообщение mikolka6 »

AntonChip писал(а): 10 сен 2018, 07:55 Тема скорее не жива, но вопрос задавайте
Сам пока ещё нуб в написании прошивки, ток изучаю в режиме "чайника" хотя ещё лет пять назад купил оригинал AVR isp mk2, но некогда было. Долго искал что-то подобное для панели приборов своего рено логан и вспомнил эту тему, выбрал с 4 каналами. Алгоритм работы практически то что нужно: общее питание вешаем (в моём варианте) на постоянный плюс акума, "вход 1" (запуск стрелок (3 канал) и табла (1 канал) приборки) подключаем на ключ зажигания, "вход 2" (подсветку шкалы (2 канал) и стрелки (3 канал) приборки) подключаем на габариты, 4 канал на подсветка красного сектора тахометра, "вход к ручнику" можно так же подпитать к аварийным лампочкам. Схему автора поспешно реализовал в железе, прошил, протестил на RGB ленте и выяснилось, что после выборочного отключения "входов 1 и 2" зависает в цикличности 4 и 3 RGB каналы (поочередно загораются и тухнут). Так же в процессе "женитьбы с приборкой" столкнулся с двумя проблемами. Первая - принимая во внимание своеобразность своей приборки было принято решение использовать для подсветки самих стрелок (3 канал) мини RGB светодиоды с сотика ибо другие не влазиют,( пилить кожух и отражатель нет желания), но они оказались с общим минусом. То-есть в одном RGB канале? в моём случае 3-тим (для стрелок) я так понимаю мне нужно использовать P-Chhanel полевик с шунтом на плюс и логикой "0". Проблема вторая - нет припухания яркости всех каналов в режиме габаритов, а хотелось бы в моём варианте, ведь днём нужно видеть, что на табло (бак, температура и тд) и стрелки (которые не имеют люминесцентного покрытия из-за RGB подсветки) то-есть яркость на всю, а при наступлении темного времени суток будет утомлять высокая яркость табла и стрелок. В принципе можно и все входа и питание запитать вместе и настройками снизить общую яркость. Тогда в принципе можно освободить порты входа 1 и 2 за ненадобностью и пустить их к примеру на датчик спидометра и т.д. Но тогда днём свечения цифр будет яркое чтоб видеть их, а ночью получается опять же нужно снижать чтоб не слепило. То-есть опять не хватает снижения яркости по команде по входам к примеру "вход2". Я попытался загнать прошивку для тренировки в AVR Studio 7, а схему в Proteus и поиграться с логикой на 3 канал, да яркостью, но пробуя запуская тесты (эмуляции) валится куча ошибок. Вот я теперь в засаде, может кто поможет ? Нужно на канале 3 инвертировать RGB с лог. единицы, в лог. ноль. И сделать, что если "входе 2" лог. единица, второй и третий RGB каналы плавно разгорятся с соответствующей заданной задержкой и яркостью, а каналы первый и третий протухают (при этом имеют два режима регулировке яркости, для входа 1 и для входа 2). Ткните носом где рыть. ))) Спасибо.
Аватара пользователя
AntonChip
Администратор
Сообщения: 265
Зарегистрирован: 24 дек 2011, 22:11
Откуда: Киров
Контактная информация:

Контроллер RGB подсветки панели приборов автомобиля

#204

Сообщение AntonChip »

Нужно на канале 3 инвертировать RGB с лог. единицы, в лог. ноль.
Этот кусок кода поменять

Код: Выделить всё

  
  if (tick < red_pwm_3)
    PORTC |= (1 << LED_RED_3);
  else
    PORTC &= ~(1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC |= (1 << LED_GREEN_3);
  else
    PORTC &= ~(1 << LED_GREEN_3);

  if (tick < blue_pwm_3)
    PORTC |= (1 << LED_BLUE_3);
  else
    PORTC &= ~(1 << LED_BLUE_3);
на

Код: Выделить всё

  if (tick < red_pwm_3)
    PORTC &= ~(1 << LED_RED_3);
  else
    PORTC |= (1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC &= ~(1 << LED_GREEN_3);
  else
    PORTC |= (1 << LED_GREEN_3);    

  if (tick < blue_pwm_3)
    PORTC &= ~(1 << LED_BLUE_3);
  else
     PORTC |= (1 << LED_BLUE_3); 
Аватара пользователя
mikolka6
Новичок
Сообщения: 6
Зарегистрирован: 08 апр 2014, 10:45

Re: Контроллер RGB подсветки панели приборов автомобиля

#205

Сообщение mikolka6 »

Спасибо за помощь!!! Завтра попробую на макете и в прогах. Я так подумал, что мне можно использовать родные шины питания (светодиодной) подсветки приборки, ведь панель штатно имеет функцию притухания информационного табло, туда и запитаю канал 1 и 3 (стрелку и табло), а канал 2 и 4 (шкала и красный сектор тахометра)на шину при включении подсветки. Хотя в схему функцию притухания на вход 2 нужно бы реализовать для приборок на лампочках.
Аватара пользователя
mikolka6
Новичок
Сообщения: 6
Зарегистрирован: 08 апр 2014, 10:45

Re: Контроллер RGB подсветки панели приборов автомобиля

#206

Сообщение mikolka6 »

Чет нечего у меня не вышло, ошибка при сборке. Наверно инвертирую на транзисторах.
Аватара пользователя
mikolka6
Новичок
Сообщения: 6
Зарегистрирован: 08 апр 2014, 10:45

Re: Контроллер RGB подсветки панели приборов автомобиля

#207

Сообщение mikolka6 »

AntonChip писал(а): 12 сен 2018, 19:37 Нужно на канале 3 инвертировать RGB с лог. единицы, в лог. ноль.
Этот кусок кода поменять

Код: Выделить всё

  
  if (tick < red_pwm_3)
    PORTC |= (1 << LED_RED_3);
  else
    PORTC &= ~(1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC |= (1 << LED_GREEN_3);
  else
    PORTC &= ~(1 << LED_GREEN_3);

  if (tick < blue_pwm_3)
    PORTC |= (1 << LED_BLUE_3);
  else
    PORTC &= ~(1 << LED_BLUE_3);
на

Код: Выделить всё

  if (tick < red_pwm_3)
    PORTC &= ~(1 << LED_RED_3);
  else
    PORTC |= (1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC &= ~(1 << LED_GREEN_3);
  else
    PORTC |= (1 << LED_GREEN_3);    

  if (tick < blue_pwm_3)
    PORTC &= ~(1 << LED_BLUE_3);
  else
     PORTC |= (1 << LED_BLUE_3); 
Чета я уже голову сломал. Прошивку отредактировать не получилось, инвертировать сигнал с МК тоже не вышло, спалил по крыворукости МК и запаял вытравленную плату, Протеусу ума дать не могу, ругается и ошибки валит, эмуляция не идёт. Пробывал в Атмел studio 7 прошивку инвентировать, нифига не вышло, наверно не то тыкаю. В общем, машина без приборки. Может кто поможет прошивку инвертировать. Пробовал подключать нагрузку по 3 каналу в таких вариациях, верхняя правая это штатная, верхняя левая это я пробовал без изменения прошивки, а нижняя левая это для переделанной прошивки. Но чет не пошло, МК вспух. Изображение https://drive.google.com/file/d/1RZ-j0_ ... sp=sharing. Вот ошибки @echo Building file: $< и #include "hsv_to_rgb.h"
Ответить