PWM и PT4115

Xrustik
Offline
Зарегистрирован: 13.06.2016

Доброго всем вечера.

Хочу с помощью Arduino и светодиодного прожектора 10В (http://ru.aliexpress.com/item/10W-White-800-900LM-Waterproof-IP65-Outdoo...) сделать ДХО на машину. Т.к.  места в фаре мало, то в тот же прожектор хочу добавить еще диод желтого цвета для поворотника. Чтобы поворотник было заметнее, ДХО при его работе должен притухать.

С программной частью разобрался:

long previousMillis = 0;
int val=0;


void setup() {
  pinMode(3, OUTPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
}

void loop() {
  int Gab = digitalRead(4);
  int Pov = digitalRead(5);
  int Acc = digitalRead(6);
  
  if (millis() - previousMillis > 100){
    previousMillis = millis();    
    val++;
    }
    
  if (Gab == LOW && Pov == LOW && Acc == HIGH && val>10 ){
    analogWrite(3,255);
    }
               
  if (Gab == HIGH || (Pov == HIGH && Acc == HIGH) ){
    analogWrite(3,10);
    val = 0;
  }

  if (Acc == LOW && Gab == LOW){
    analogWrite(3,0);
  }

}

Светодиод, подключенный к ноге №3 горит в полную силу при появлении сигнала ACC, или притухает при срабатывании поворотника или габаритных огней. Думал просто подключу эту же ногу ко входу DIM микросхемы PT4115 вот так:

http://i80.fastpic.ru/big/2016/0613/86/cf7d0800c7e346759681ad0e803d5d86.jpg

Но что-то не получается. Что я делаю не так?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

много инфы в начале, а в конце мало, причем не менее главной. что именно не так?

Xrustik
Offline
Зарегистрирован: 13.06.2016

Да даже не зажигается светодиод. Причем если управлять не PWM, а напряжением с помощью резистора (PT4115 понимает и такое), то подбирая разное напряжение можно получить разную силу свечения. Так что со светодиодом все в порядке.

Но у Arduino Micro нет аналоговых выходов (

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

резистор с конденсатором повесь

Xrustik
Offline
Зарегистрирован: 13.06.2016

А куда его вешать вот на этой схеме:

a5021
Offline
Зарегистрирован: 07.07.2013

Как-то сама идейка -- приглушать ДХО при работе поворотника -- не очень. Так как ДХО ничего не освещают, а выполняют больше индикаторную функцию, то приглушить их на постоянно. Схема проще, надежность выше, ардуина не нужен.

Xrustik
Offline
Зарегистрирован: 13.06.2016

Тут совмещенный ДХО/габарит, поэтому он должен притухать, когда включены габаритные огни. А притухание ДХО при включенном поворотнике для того, чтобы поворотник был заметнее - на многих машинах с заводским ДХО сделано именно так.

Xrustik
Offline
Зарегистрирован: 13.06.2016
long previousMillis = 0;
int val=0;


void setup() {
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
}

void loop() {
  int Gab = digitalRead(4);
  int Pov = digitalRead(5);
  int Acc = digitalRead(6);
  
  if (millis() - previousMillis > 100){
    previousMillis = millis();    
    val++;
    }
    
  if (Gab == LOW && Pov == LOW && Acc == HIGH && val>10 ){
    analogWrite(3,255);
    analogWrite(2,255);
    }
               
  if (Gab == HIGH ){
    analogWrite(3,10);
    analogWrite(2,10);
  }

  if (Pov == HIGH && Acc == HIGH){
    analogWrite(3,10);
    analogWrite(2,10);
    val = 0;
  }

  if (Acc == LOW && Gab == LOW){
    analogWrite(3,0);
    analogWrite(2,0);
  }

}

Переделал код, теперь одновременно работает светодиод на макетке на ноге №3 и сигнал на PT4115 идет с ноги №2.

Xrustik
Offline
Зарегистрирован: 13.06.2016

На ноге№2 ШИМа нет ))) переделал на ногу №9:

long previousMillis = 0;
int val=0;

void setup() {
  pinMode(9, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
}

void loop() {
  int Gab = digitalRead(4);
  int Pov = digitalRead(5);
  int Acc = digitalRead(6);
  
  if (millis() - previousMillis > 100){
    previousMillis = millis();    
    val++;
    }
    
  if (Gab == LOW && Pov == LOW && Acc == HIGH && val>10 ){
    analogWrite(3,255);
    analogWrite(9,255);
    }
               
  if (Gab == HIGH ){
    analogWrite(3,10);
    analogWrite(9,10);
  }

  if (Pov == HIGH && Acc == HIGH){
    analogWrite(3,10);
    analogWrite(9,10);
    val = 0;
  }

  if (Acc == LOW && Gab == LOW){
    analogWrite(3,0);
    analogWrite(9,0);
  }

}

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
Xrustik
Offline
Зарегистрирован: 13.06.2016

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

на фото не видно ты землю подцепил? или только 1 провод?

Xrustik
Offline
Зарегистрирован: 13.06.2016

Только один, земля подключена ко входу GND самой Arduino

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

земля pt4115 подключена к ардуине или нет?

Xrustik
Offline
Зарегистрирован: 13.06.2016

Да, земля Arduino и земля PT4115 подключены к одной минусовой клемме аккумулятора.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хорошо. фильтр припаяй

Xrustik
Offline
Зарегистрирован: 13.06.2016

А куда именно? Я честно говоря не очень в электронике, если слово фильтр с помощью гугла расшифроваь могу, то куда именно его воткнуть сообразить не смогу.

Я так понимаю, что в вашей ссылке как раз и описан пример использования фильтра для сглаживания PWM?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

http://arduino-info.wikispaces.com/file/view/pwm-filter.jpg/268667542/pw...

резистор к пину с шимом ардуины, dcout к выводу dim pt4115

Xrustik
Offline
Зарегистрирован: 13.06.2016

Нужных элементов нету, завтра в магазин электроники зайду. И все-таки ломаю глову, почему ШИМ не работает.

В любом случае спасибо за помощь.

m-zzz
Offline
Зарегистрирован: 30.05.2015

а родные габариты и поворотники совсем не восстановимые?

Xrustik
Offline
Зарегистрирован: 13.06.2016

С ними все в порядке - я из интереса ковыряюсь. А фару все равно вскрывать для ремонта, одна из линз ближнего света треснула.

m-zzz
Offline
Зарегистрирован: 30.05.2015

Так зачем, если не секрет, обьединять ДХО, габариты и поворотники? Смысл то какой?

Особенно если учесть линзованную оптику в вышеобозначенном прожекторе?

Xrustik
Offline
Зарегистрирован: 13.06.2016

Фара компактная и руки чешутся ). И даже если не объединять с поворотником, то ДХО должны или притухать, или полностью выключаться. На предыдущей машине они у меня включались с помощью реле. Теперь хочу попробовать что-нибудь другое для разнообразия.

m-zzz
Offline
Зарегистрирован: 30.05.2015

Не надо им притухать.. от слова "СОВСЕМ"...

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

При включении желтого сигнала поворота, в случае расположения в одном оптическом корпусе, ДХО как раз логично гасить полностью, чтоб сигнал поворота был максимально читаемым.

При включении габаритов или фар ДХО должны автоматически выключаться, это уже ГОСТ. Исключение только для кратковременного помаргивания фарами, и все.. Внимательно читайте нормативные документы..

Xrustik
Offline
Зарегистрирован: 13.06.2016

Если говорить про ГОСТ, то посмотрите на все последние модели ВАЗа, там именно совмещенные ДХО/габарит за счет двухнитиевой лампы у Калины/Гранты/Нивы или светодиодов у Весты/Хрея, у иномарок аналогичная схема. А притухание ДХО для выделения поворотников я подсмотрел у АУДИ и т.п. Сотрудники ГИБДД не знают ГОСТов, зато у них наметанный глаз на отличные от других авто, поэтому лучше не выделяться своими переделками. А моя схема будет максимально похожа на заводскую.

Xrustik
Offline
Зарегистрирован: 13.06.2016

Ничего у меня с PT4115 не получилось, спалил только 2 драйвера - слишком все мелкое для моих рук. Решил сделать по-другому, перед драйвером поставил микросхему ULN2003. Каждый из ее семи выходов дает до 500мА, включил параллельно по два ее выхода на каждый драйвер. Работает как задумано, только греется зараза - приклеил радиатор.

axill
Offline
Зарегистрирован: 05.09.2011

У меня прекрасно работает шим с pt4115. Покажите схему

Xrustik
Offline
Зарегистрирован: 13.06.2016

Примерно так: отпаял ногу №3 на готовом драйвере и пытался подключить к ней Arduino. Остальное (кнопки и прочее) не стал рисовать, оно не важно. Видимо у меня не получается отпаять ногу без повреждений самого чипа.

axill
Offline
Зарегистрирован: 05.09.2011

Даташит так понимаю не читали?

на управляющую ногу нельзя подавать более 2.5в, вы подаете 5в

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

я второй способ использую

Xrustik
Offline
Зарегистрирован: 13.06.2016
The DIM pin can be driven by an external DC voltage (VDIM) to adjust the output current to a value below the nominal average value defined by RS. The DC voltage is valid from 0.5V to 2.5V. When the dc voltage is higher than 2.5V, the output current keeps constant. - Когда напряжение меньше 0,5В драйвер выключен, когда напряжение выше 2,5 выходной ток максимальный, в промежутке между происходит регулировка уровнем напряжения.
 
Я так понимаю, на диоде вы уронили напряжение с 5В до 4В?
axill
Offline
Зарегистрирован: 05.09.2011

Xrustik пишет:

Я так понимаю, на диоде вы уронили напряжение с 5В до 4В?

совсем нет

если dim пин ни к чему не подключать на него будет действовать внутренняя подтяжка к 2.5в

когда я ставлю диод катодом к ардуине, то логическая единица (считай когда на пине 5в) никак не влияет на dim так как диод закрыт. Зато когда мы ставим логический ноль dim через диод и выходной каскад ардуино замыкается на gnd отключая питание светодиода подключенного к pt4115

Теперь если мы на ардуино выводим ШИМ то светодиода будет включаться/выключаться в соотвествии со скважностью ШИМ. Это то, что нужно для управления яркостью. Номинальный ток pt4115 (за счет резисторного шунта в схеме) должен соответствовать номинальному току светодиода

Xrustik
Offline
Зарегистрирован: 13.06.2016

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