Причина: Исправил. Нарушение Правил форума п. 1.4
Контроллер дневных ходовых огней для авто
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
Здравствуйте! Вот решил сделать контроллер дневных ходовых огней для авто (старый сломался). Подскажите пожалуйста свои замечания, предложения, всели верно. Суть в следующем: при выключенном авто аккумулятор выдает 12в - дхо выключен. После того как заработал генератор на аккумулятор поступает 14.2в- дхо включаются. При этом, если включить ближний свет, дхо выключатся. По заявлению производителей светодиоды питаются 13.5в, общая мощность 12.5Вт. Еще вопрос, как правильно выбрать предохранитель?). Схема сделана в протеусе, исходник прилагаю. Заранее Спасибо!)
Последний раз редактировалось aen Вт май 12, 2015 17:46:19, всего редактировалось 1 раз.
Причина: Исправил. Нарушение Правил форума п. 1.4
Причина: Исправил. Нарушение Правил форума п. 1.4
- Реклама
А где схема?
У меня по такому принципу работает второй год. Заменил противотуманки на светодиодные.
У меня по такому принципу работает второй год. Заменил противотуманки на светодиодные.
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
Автовеломото раздел почитайте, там этих ДХО - как собак не резаных, на любой вкус...
Прости нам, господи, благодеяния наши.
Пренебрежение правилами ТБ улучшает генофонд человечества.
Пренебрежение правилами ТБ улучшает генофонд человечества.
- Реклама
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
Да, но суть не взять готовое. Я изучал программирование мк, и в качестве практики взял для себя задачу спроектировать данную схему контроллера. Поэтому, решил посоветоваться с опытными электронщиками, правильно ли подобраны компоненты, какие можно ввести улучшения, как рассчитать предохранитель и т.п.)
Во первых, мега8 слишком жирно для такого проекта. За глаза хватает тиньки 13.
Во вторых - напрягает входной делитель. Хоть расчетное напряжение на входе и 4,8 при 14,2 на борту, но как то учили предусматривать запасы. Дальше. При такой схеме придется переделывать схему машины, что никак не приветствуется ГАИ, да и геморройно. Обычно на корпусе минус, а вся коммутация по плюсу. Ну и маленький возможный неприятность - при выходе из строя блока штатным выключателем ближний свет не включится. Он же на плюсе, а блок накроется на минусе.
А вот если перенести коммутацию на плюс, то можно впендюривать просто параллельно подрулевому и блокировать включением дальнего.
Если применить не 7805 а 78L05, у которого ограничение 150 мА, то предохранитель не нужен становится для блока.
По хорошему нужно поставить ограничитель по питанию вольт на 18, балластный резистор, дроссель, защитные стабилитроны по входам МК и прочую лабуду. В промышленности так вообще через оптику развязывают входы и выходы МК. Но это так, экзотика, хотя в общем то, совсем не лишняя.
Во вторых - напрягает входной делитель. Хоть расчетное напряжение на входе и 4,8 при 14,2 на борту, но как то учили предусматривать запасы. Дальше. При такой схеме придется переделывать схему машины, что никак не приветствуется ГАИ, да и геморройно. Обычно на корпусе минус, а вся коммутация по плюсу. Ну и маленький возможный неприятность - при выходе из строя блока штатным выключателем ближний свет не включится. Он же на плюсе, а блок накроется на минусе.
А вот если перенести коммутацию на плюс, то можно впендюривать просто параллельно подрулевому и блокировать включением дальнего.
Если применить не 7805 а 78L05, у которого ограничение 150 мА, то предохранитель не нужен становится для блока.
По хорошему нужно поставить ограничитель по питанию вольт на 18, балластный резистор, дроссель, защитные стабилитроны по входам МК и прочую лабуду. В промышленности так вообще через оптику развязывают входы и выходы МК. Но это так, экзотика, хотя в общем то, совсем не лишняя.
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
vem566 писал(а):Во первых, мега8 слишком жирно для такого проекта. За глаза хватает тиньки 13.
Да) но это единственное, что было под рукой с ацп.
Вы имели ввиду запас по мощности резисторов?vem566 писал(а):Во вторых - напрягает входной делитель. Хоть расчетное напряжение на входе и 4,8 при 14,2 на борту, но как то учили предусматривать запасы
Не могли бы вы пояснить? Я рассчитывал что я подключаю плюс к аккумулятору, землю на корпус, и ходовые огни через полевой транзистор. Тоесть ни чего конструктивного менять не нужно.Забыл уточнить) при такой схеме, когда мы крутим стартер у нас выделяется очень большой ток. Как это может сказаться на блок дхо? Есть ли опасность возгорания?vem566 писал(а):Дальше. При такой схеме придется переделывать схему машины, что никак не приветствуется ГАИ, да и геморройно. Обычно на корпусе минус, а вся коммутация по плюсу.
vem566 писал(а):По хорошему нужно поставить ограничитель по питанию вольт на 18, балластный резистор, дроссель, защитные стабилитроны по входам МК и прочую лабуду.
Как это реализовать? Можете посоветовать какую-либо литературу на этот счет, или дать ссылку?)
Про МК разговора нет - дело вкуса.
По поводу делителя. Нет, не мощность резисторов я имел ввиду, а их величину. Верхний я бы увеличил вдвое.
По поводу дополнительной защиты можно посмотреть как подключены заводские блоки электроники в разных машинах. Лучше японских или немецких. Хотя у меня второй год работает без всяких изысков. На входе 78L05, на выходе полевик.
По поводу делителя. Нет, не мощность резисторов я имел ввиду, а их величину. Верхний я бы увеличил вдвое.
Я имел ввиду, что в качестве ДХО используется ближний свет. Если ДХО устанавливаются дополнительно, то все мною написанное смысла не имеет. А зачем их тушить при включении ближнего света? Пусть горят.Иван234 писал(а):Я рассчитывал что я подключаю плюс к аккумулятору, землю на корпус, и ходовые огни через полевой транзистор.
По поводу дополнительной защиты можно посмотреть как подключены заводские блоки электроники в разных машинах. Лучше японских или немецких. Хотя у меня второй год работает без всяких изысков. На входе 78L05, на выходе полевик.
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
Как я понял из интернета в заводских блоках используют реле и предохранители. Как вам такая схема защиты? Как я понял из описания, данная схема защитит контроллер от обратной полярности и перенапряжения.vem566 писал(а): По поводу дополнительной защиты можно посмотреть как подключены заводские блоки электроники в разных машинах. Лучше японских или немецких. Хотя у меня второй год работает без всяких изысков. На входе 78L05, на выходе полевик.
И к вопросу о предохранителе. Если моя схема потребляет 2А, то мне достаточно взять предохранитель на 2.1А?
- Вложения
-
- 4_3.jpg
- (37.05 КБ) 474 скачивания
Защита прикольная, но одноразовая. И вообще вредная. Я бы взял отсекающую, а не замыкающую.
Используют и реле и предохранители и опторазвязку и бесконтактные выключатели. Но все может быть значительно проще, чем в схеме из вложения. От переполюсовки защитит обычный диод, а от перенапряжения варистор. Условия эксплуатации в машине подразумевают, что переполюсовка это просто распиз не внимательность, а перенапряжение - неисправность электрооборудования. Но в бортовой цепи автомобиля имеют место быть выбросы напряжения. Кратковременные. На осциллографе "иголки". Вот от них нужно защитить, а не от попадания 220 на аккумулятор. Тут как раз варистор справится.
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
То есть, я ставлю на входе варистор в разрыв цепи+12В от аккумулятора, и моя проблема решена?vem566 писал(а): Но в бортовой цепи автомобиля имеют место быть выбросы напряжения. Кратковременные. На осциллографе "иголки". Вот от них нужно защитить, а не от попадания 220 на аккумулятор. Тут как раз варистор справится.
Варистор ставят параллельно нагрузке. Последовательно ставят NTC термисторы.
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
А как выбрать варистор? На сколько я знаю импульс напряжения может достигать 200В. У варистора есть три параметра: серднеквадратичное напряжение срабатывание, поглощаемая энергия, классификационное напряжение. В моем случае мне нужен варистор на 250В? И как рассчитать поглощаемую энергию?просто КОТ писал(а):Варистор ставят параллельно нагрузке. Последовательно ставят NTC термисторы.
Есть специальные. То ли на 15, то ли на 18 вольт. Не помню фамилию, а посмотреть сейчас не получится - на работе. Был цикл статей по бортовому компьютеру. Там про него писалось. Энергия там никакая. Он стоит для среза "иголок". Случай обрыва аккумулятора не рассматривался вообще. В рекомендациях допускалась замена на 18-ти вольтовый стабилитрон. Ну а в данном случае хватит RC цепочки. Последовательно с 78L05 по входу резистор ом 20-100 и емкость мкф на 100.
тушить требует:vem566 писал(а):...А зачем их тушить при включении ближнего света? Пусть горят...
в нем есть такой пункт:ГОСТ Р 41.48-2004 (Правила ЕЭК ООН N 48) Единообразные предписания, касающиеся сертификации транспортных средств в отношении установки устройств освещения и световой сигнализации
Ну и ПДД по этому поводу:6.19.7 Функциональная электрическая схема
В случае их установки дневные ходовые огни должны включаться автоматически, когда приведен в положение "включено" орган управления запуском/остановом двигателя. Должна быть обеспечена возможность приведения в действие и отключения функционирования автоматического включения дневных ходовых огней без помощи инструмента.
Дневные ходовые огни должны выключаться автоматически, когда включаются головные фары, за исключением тех случаев, когда головные фары включаются на короткий промежуток времени для сигнализации участникам движения.
Посему лучше предусмотреть такую возможность, мало ли, привяжутся еще19.4. Противотуманные фары могут использоваться:
-в условиях недостаточной видимости с ближним или дальним светом фар;
-в темное время суток на неосвещенных участках дорог совместно с ближним или дальним светом фар;
-вместо ближнего света фар в соответствии с пунктом 19.5 Правил.
19.5. В светлое время суток на всех движущихся транспортных средствах с целью их обозначения должны включаться фары ближнего света или дневные ходовые огни.
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
Резистор на 100 Ом должен быть больше 2Вт?vem566 писал(а): Ну а в данном случае хватит RC цепочки. Последовательно с 78L05 по входу резистор ом 20-100 и емкость мкф на 100.
- Сообщения: 11
- Зарегистрирован: Вс фев 08, 2015 21:41:27
Собрал схему, все работает, но дхо включаются при 4.4В, а не 3.6, как установлено программно. Думал, что это погрешность менял порог включения на 2.2,2.1, все равно результат один и тот-же включается при 4.4В. Затем поменял сопротивление резистора 4.7кОм на 3.5кОм,получилось более менее нормально, но при испытании в авто, дхо заметно мерцают. Думаю, что это программная ошибка, помогите пожалуйста разобраться, что не так? Выкладываю доработанную схему в протеусе, проект в cvavr. Все соответствует действительности кроме: резистор на 4.7кОм заменен на 3.5, стабилитрона на ножке с ацп нет.
/*****************************************************
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 4,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
int data;
float V;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x04;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x85;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
while (1)
{
delay_ms(20); // Задаем задержку в 20 миллисекунд
ADCSR |= 0x40; // Записываем 1 в ADSC
data = ADCW; // Вычитываем значение
V = (float) data*0.0048828; // Переводим в вольты
if (V>=4.2) PORTB.2=1;
else
PORTB.2=0;
m1:
if (PIND.2==1){
while (PIND.2==1){
delay_ms(10);
PORTB.2=0;
goto m1;
};
};
}
}
/*****************************************************
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 4,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
int data;
float V;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x04;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x85;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
while (1)
{
delay_ms(20); // Задаем задержку в 20 миллисекунд
ADCSR |= 0x40; // Записываем 1 в ADSC
data = ADCW; // Вычитываем значение
V = (float) data*0.0048828; // Переводим в вольты
if (V>=4.2) PORTB.2=1;
else
PORTB.2=0;
m1:
if (PIND.2==1){
while (PIND.2==1){
delay_ms(10);
PORTB.2=0;
goto m1;
};
};
}
}
- Вложения
-
- dxo.rar
- (21.55 КБ) 161 скачивание




