| 0
- 12.08.2013 - 23:07
|
доброго времени ,нужна помощь в сборке схемы все комплектующие есть текстолит тож,уже если честно месяца два наплывами пытаюсь собрать схему страба но неполучается ,немогу разобраться поэтому решил спросить мож кто поможет .краснодар пашковка) схема http://www.autosaratov.ru/phorum/sho...-руками? зарание за помощь спасибо братцы | | |
| 1
- 12.08.2013 - 23:24
| гдето я это уже видел | | |
| 2
- 12.08.2013 - 23:28
| да в сети копипастов много, просто мысль о том что не могу сделать бесит надо собрать и успокоиться...поэтому помощи попросил | | |
| 3
- 13.08.2013 - 02:03
|
да, уже было только на PICe Нужно собрать устройство, описание внутри эта схема в Proteus тоже забавно мигает | | |
| 4
- 13.08.2013 - 11:50
|
>пытаюсь собрать схему страба но неполучается возможно это потому что схема нарисована не очень наглядно, и для начала её надо разрисовать как то так. | | |
| 5
- 13.08.2013 - 14:18
| братцы мож кто рублей за 500 соберет,поможет земляку)было бы неплохо | | |
| 6
- 13.08.2013 - 15:20
| надо сделать печатку и монтаж (детали есть ) | | |
| 7
- 13.08.2013 - 19:29
|
Если это когда либо могло бы быть сделано то могло бы быть сделано и так. За неимением десятичного счётчика использован двоичный, что конечно ограничивает число вспышек несколькими значениями из ряда 2-4-8, но мне хотелось просто посмотреть вживую. Разумеется на мк гораздо проще, но не прикольно. | | |
| 8
- 14.08.2013 - 02:54
|
ну может кто ответит что нибудь в лс, на мое предложение | | |
| 9
- 14.08.2013 - 14:47
| блин ну мож кто поможет ,тут работы на 30 минут ,и денег дам просто реально не получается,сколько будет стоить такая работа? | | |
| 10
- 14.08.2013 - 14:52
|
могу подарить ту плату что на картинке, но на ней нет регулировочных резисторов и вспышки идут по четыре. Или можно Андрей7 написать, который сделал хорошую плату в смежной схеме. Вообще странно что китайцы такого ещё не предлагают за копейки. | | |
| 11
- 14.08.2013 - 15:57
| спасибо большо за это.но мне хотелось бы то что на схеме может сооброхим натроих)и соберем за денежное вознограждение схему) скиньте номер в лс наберу | | |
| 12
- 14.08.2013 - 16:00
| я просто хрена никого незнаю на форуме потому и [*****]...ываю всех реально мысль о сборке покоя не дает) | | |
| 13
- 14.08.2013 - 18:16
|
К сожалению именно такой схемы как ваша у меня нет и не предвидится. Номер Андрей7 уже давал в упомянутом выше топике - 8-905 477 21 16, не вижу причин почему бы ему не заняться. Кстати по вашей схеме нагрузка коммутируется по отношению к корпусу, но для автомобиля возможно удобнее использовать P-канальные ключи и коммутировать шину питания, с точки зрения удобства подключения. | | |
| 14
- 15.08.2013 - 21:22
| Цитата:
В Вашем случае увидеть как моргает ... и успокоиться ! | | |
| 15
- 15.08.2013 - 22:05
|
Вот так оно выглядело бы лучше, на мой взгляд. В смысле защиты от кз, подключения лампочек и т.п. заклинание для контроллера (поскольку в Proteus нет модельки для tiny43 то не проверено и возможно сработает не так как надо) - Код: /*****************************************************
Chip type : ATtiny43U
AVR Core Clock frequency: 8,000000 MHz
*****************************************************/
#include <tiny43u.h>
#define CPU_FREQ 8000000
#define V_bat_max ((5/5)*(5+10))
#define V_bat_min ((11*255)/V_bat_max)
#define out_1 PORTB.4
#define out_2 PORTB.5
#define ocp_led PORTB.6
unsigned char t_imp, t_pause, n_imp, v_bat;
unsigned char tmr [7];
unsigned char ADC_0, ADC_1, ADC_2, ADC_3;
void ports_init ()
**
DDRA=0b01010000; PORTA=0b10000000;
DDRB=0b11111111; PORTB=0b00000000;
**
void timer_0_init ()
**
TCCR0A |= 1<<WGM01; //ctc
TCCR0B |= 1<<CS02|1<<CS00; //div by 1024
OCR0A = 0x9C; //156 - 50Hz
TIMSK0 |= 1<<OCIE0A; // int on compare match
**
void timer_1_init ()
**
//TCCR1A |= 1<<WGM11|1<<WGM10; //fast PWM, outputs disconnected
//TCCR1B |= 1<<WGM12|1<<CS11 ; //top OCR1A, div by 8
**
void acmp_init ()
**
ACSR |= 1<<ACBG;
**
void adc_init ()
**
ADCSRA |= 1<<ADEN|1<<ADPS2|1<<ADPS1|1<<ADPS0;
ADCSRB |= 1<<ADLAR;
ADCSRA |= 1<< ADSC;
**
interrupt [TIM0_COMPA] void timer0_comp (void)
**
char i;
for (i=0; i<7; i++) {if (tmr [i]) tmr [i]--;**
#asm("wdr")
**
void ADC_read ()
**
static char ADC_select = 1;
if (!ADCSRA.ADSC)
**
switch (ADC_select)
**
case 0: ADMUX = 0; ADC_select = 1; ADC_3 = ADCH; break;
case 1: ADMUX = 1; ADC_select = 2; ADC_0 = ADCH; break;
case 2: ADMUX = 2; ADC_select = 3; ADC_1 = ADCH; break;
case 3: ADMUX = 3; ADC_select = 0; ADC_2 = ADCH; break;
**
ADCSRA |= 1<< ADSC;
**
**
void convert_ADC ()
**
t_imp = ((unsigned int)ADC_0 * 20*5)>>8;
t_pause = ((unsigned int)ADC_1 * 20*5)>>8;
n_imp = ((unsigned int)ADC_2 * 10)>>8;
v_bat = ADC_3;
**
void blinking_led (char a)
**
char i;
for (i=0; i<a;)
**
if (!tmr[5]) tmr[5]= 25; ocp_led = ~ocp_led; i++;
**
ocp_led = 0;
**
void battery_check ()
**
while (v_bat < V_bat_min) {out_1 = 0; out_2 = 0; blinking_led (10);**
**
enum state {all_off, out1_on, out1_off, out2_on, out2_off, all_on** out_state;
void out2performing ()
**
static char n_imp_tmp;
if (out_state == all_off) {out_state = out1_on; tmr[1] = t_imp; n_imp_tmp = n_imp;**
if ((out_state == out1_on)&&(! tmr[1])) {out_state = out1_off; tmr[2] = t_pause;**
if ((out_state == out1_off)&&(! tmr[2])&&(n_imp_tmp)) {out_state = out1_on; tmr[1] = t_imp; n_imp_tmp-- ;**
else if ((!n_imp_tmp)&&(out_state == out1_off)) {out_state = out2_on; n_imp_tmp = n_imp; tmr[1] = t_imp;**
if ((out_state == out2_on)&&(! tmr[1])) {out_state = out2_off; tmr[2] = t_pause;**
if ((out_state == out2_off)&&(! tmr[2])&&(n_imp_tmp)) {out_state = out2_on; tmr[1] = t_imp; n_imp_tmp-- ;**
else if((!n_imp_tmp)&&(out_state == out2_off)) {out_state = out1_on; n_imp_tmp = n_imp; tmr[1] = t_imp;**
switch (out_state)
**
case all_off: out_1 = 0; out_2 = 0; break;
case out1_on: out_1 = 1; out_2 = 0; break;
case out1_off: out_1 = 0; out_2 = 0; break;
case out2_on: out_1 = 0; out_2 = 1; break;
case out2_off: out_1 = 0; out_2 = 0; break;
case all_on: out_1 = 1; out_2 = 1; break;
default: break;
**
**
void ocp ()
**
while (((out_state == out1_on)||(out_state == out2_on))&&(ACSR.ACO)) {out_1 = 0; out_2 = 0; ocp_led = 1; tmr[6] = 255;**;
while (tmr[6]);
ocp_led = 0;
**
void main(void)
**
#pragma optsize-
CLKPR |= 1<<CLKPCE;
CLKPR=0x00; // Crystal Oscillator division factor: 1
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
ports_init ();
acmp_init ();
adc_init ();
timer_0_init ();
timer_1_init ();
#pragma optsize-
#asm("wdr")
WDTCSR=0x18;
WDTCSR |= 1<<WDE|1<<WDP2; // 0,25s
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
#asm("sei")
while (1)
**
ADC_read ();
convert_ADC ();
battery_check ();
out2performing ();
ocp ();
**
** | | |
| 16
- 16.08.2013 - 19:01
|
финальная версия. при замыкании стоков пинцетом на корпус срабатывает защита и ключи (на 12А) остаются целы. Проверялось с галогеновой лампочкой 12V 35W (cопротивление холодной лампы в районе 0,5 Ома). Код: /*****************************************************
Chip type : ATtiny43U
AVR Core Clock frequency: 8,000000 MHz
*****************************************************/
#include <tiny43u.h>
#include <delay.h>
#define CPU_FREQ 8000000
#define V_bat_min (((int)11*255)/18)
#define out_1 PORTB.4
#define out_2 PORTB.5
#define ocp_led PORTB.7
unsigned char t_imp, t_pause, n_imp, v_bat;
unsigned char tmr [7];
unsigned char ADC_0, ADC_1, ADC_2, ADC_3;
void ports_init ()
**
DDRA=0b01010000; PORTA=0b10000000;
DDRB=0b11111111; PORTB=0b00000000;
**
void timer_0_init ()
**
TCCR0A |= 1<<WGM01; //ctc
TCCR0B |= 1<<CS02|1<<CS00; //div by 1024
OCR0A = 0x9C; //156 - 50Hz
TIMSK0 |= 1<<OCIE0A; // int on compare match
**
void timer_1_init ()
**
//TCCR1A |= 1<<WGM11|1<<WGM10; //fast PWM, outputs disconnected
//TCCR1B |= 1<<WGM12|1<<CS11 ; //top OCR1A, div by 8
**
void acmp_init ()
**
ACSR |= 1<<ACBG;
**
void adc_init ()
**
ADCSRA |= 1<<ADEN|1<<ADPS2|1<<ADPS1|1<<ADPS0;
ADCSRB |= 1<<ADLAR;
ADCSRA |= 1<< ADSC;
**
interrupt [TIM0_COMPA] void timer0_comp (void)
**
char i;
for (i=0; i<7; i++) {if (tmr [i]) tmr [i]--;**
#asm("wdr")
**
void ADC_read ()
**
static char ADC_select = 1;
static char counter = 64;
static unsigned int v_bat_tmp;
if (!ADCSRA.ADSC)
**
switch (ADC_select)
**
case 0: ADMUX = 0; ADC_select = 1; ADC_3 = ADCH; break;
case 1: ADMUX = 1; ADC_select = 2; ADC_0 = ADCH; break;
case 2: ADMUX = 2; ADC_select = 3; ADC_1 = ADCH; break;
case 3: ADMUX = 3; ADC_select = 0; ADC_2 = ADCH; break;
**
if (counter) {v_bat_tmp += ADC_3; counter--;**
else {v_bat = v_bat_tmp >>6; v_bat_tmp = 0; counter = 64;**
ADCSRA |= 1<< ADSC;
**
**
void convert_ADC ()
**
t_imp = ((unsigned int)ADC_0 * 2*25)>>8;
t_pause = ((unsigned int)ADC_1 * 2*25)>>8;
n_imp = ((unsigned int)ADC_2 * 10)>>8;
**
void blinking_led ()
**
ocp_led = ~ocp_led; delay_ms (400) ;
**
void battery_check ()
**
while (v_bat < V_bat_min) {out_1 = 0; out_2 = 0; blinking_led (); ADC_read (); convert_ADC ();**
ocp_led = 0;
**
enum state {all_off, out1_on, out1_off, out2_on, out2_off, all_on** out_state;
void out2performing ()
**
static char n_imp_tmp;
if (out_state == all_off) {out_state = out1_on; tmr[1] = t_imp; tmr[0] = 5; n_imp_tmp = n_imp;**
if ((out_state == out1_on)&&(! tmr[1])) {out_state = out1_off; tmr[2] = t_pause;**
if ((out_state == out1_off)&&(! tmr[2])&&(n_imp_tmp)) {out_state = out1_on; tmr[1] = t_imp; tmr[0] = 5; n_imp_tmp-- ;**
else if ((!n_imp_tmp)&&(out_state == out1_off)) {out_state = out2_on; n_imp_tmp = n_imp; tmr[0] = 5; tmr[1] = t_imp;**
if ((out_state == out2_on)&&(! tmr[1])) {out_state = out2_off; tmr[2] = t_pause;**
if ((out_state == out2_off)&&(! tmr[2])&&(n_imp_tmp)) {out_state = out2_on; tmr[1] = t_imp; tmr[0] = 5; n_imp_tmp-- ;**
else if((!n_imp_tmp)&&(out_state == out2_off)) {out_state = out1_on; n_imp_tmp = n_imp; tmr[0] = 5; tmr[1] = t_imp;**
switch (out_state)
**
case all_off: out_1 = 0; out_2 = 0; break;
case out1_on: out_1 = 1; out_2 = 0; break;
case out1_off: out_1 = 0; out_2 = 0; break;
case out2_on: out_1 = 0; out_2 = 1; break;
case out2_off: out_1 = 0; out_2 = 0; break;
case all_on: out_1 = 1; out_2 = 1; break;
default: break;
**
**
void ocp ()
**
while (((out_state == out1_on)||(out_state == out2_on))&&(ACSR.ACO)&&(!tmr[0])) {out_1 = 0; out_2 = 0; ocp_led = 1; tmr[6] = 255; out_state = all_off;**;
while (tmr[6]);
ocp_led = 0;
**
void main(void)
**
#pragma optsize-
CLKPR |= 1<<CLKPCE;
CLKPR=0x00; // Crystal Oscillator division factor: 1
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
ports_init ();
acmp_init ();
adc_init ();
timer_0_init ();
timer_1_init ();
#pragma optsize-
#asm("wdr")
WDTCSR=0x18;
WDTCSR |= 1<<WDE|1<<WDP2; // 0,25s
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
#asm("sei")
out_state = all_off;
t_imp=25, t_pause=25, n_imp=5, v_bat=200;
while (1)
**
ADC_read ();
convert_ADC ();
battery_check ();
out2performing ();
ocp ();
**
** | | |
| 17
- 20.08.2013 - 23:59
| 16-8pin> А зачем супрессор на такую большую напругу? | | |
| 18
- 21.08.2013 - 12:54
|
Мало ли что в автомобильной электросхеме может гулять. Сапрессор стоит копейки. | | |
| 19
- 21.08.2013 - 13:02
|
В смысле напряжение когда он открывается всё же меньше чем предельное для ключей (55V для IRF4905). Там ещё в схеме предохранитель надо дорисовать, ампер на 40. И использована цепочка резистор - стабилитрон вместо интегрального стабилизатора в цепи питания мк по той же причине, для повышения надёжности в условиях всплесков по питанию. Всё таки на дискретной логике получается дубовее и это плюс для применения на авто. | | |
| 20
- 21.08.2013 - 13:06
| Ну так и ставить на 16-18 вольт, а то если будет 47 то ни чего не выживет уже. К примеру на PA3 будет сильно выше VCC... | | |
| 21
- 21.08.2013 - 13:08
|
а вот так, на мой взгляд, могла бы выглядеть схема на ИЕ8 | | |
| 22
- 21.08.2013 - 13:10
| в смысле, не выживет? при продолжительном повышении конечно уже и штатное оборудование начнёт дохнуть, а кратковременный спайк эта схема должна пережить. | | |
| 23
- 21.08.2013 - 13:22
| Хз должна не должна, сколько много и долго проц переживет по PA3 превышение на 20 вольт? некоторые даже на 0,5 вольта не могут.... | | |
| 24
- 21.08.2013 - 13:45
| у него же на выводах питания стабилитрон. можно конечно и его подстраховать, но по идее и так должно работать. или я чего то не понимаю? | | |
| 25
- 21.08.2013 - 13:57
| Я про другое...про то что нельзя подавать напряжение по входам больше, чем питание кристалла (VCC). А тут VCC 5 вольт, а по ноге PA3 при супрессоре на 47 вольт...может и 20 быть... | | |
| 26
- 21.08.2013 - 14:16
| понятно. расчёт был на то что при указанных сопротивлениях в измерительных цепях параметров внутренних диодов мк хватит для отвода излишков. или можно конечно внешние стабилитроны приставить. | | |
| 27
- 21.08.2013 - 14:34
| не хватит, и смысла нет в супрессоре на 47 вольт и предохранителе на 40а. На 16 вольт и предохр. по минимуму, да и кмоп типа 561 больше 15 вольт не любит совсем. Да и при четких 15 вольт питания горит через пару лет... И в нормальной машине нет таких всплесков...я не нашел... | | |
| 28
- 21.08.2013 - 14:40
| предохранитель на случай спекания сапрессора, а через резистор 10кОм при напряжении 40V протечёт 4мА, с учётом того что ожидаемая длительность импульса - микросекунды, я думаю должно хватить (с ходу не нашёл в описании на мк параметров его защитных диодов). | | |
| 29
- 21.08.2013 - 15:24
| а, нашёл - "maximum allowed AVR clamp diode current is just 1 mA" | | |
| 30
- 21.08.2013 - 16:00
| ну хз, "думаю, вроде, должно" я б так делать не стал...не надежно както. Надежней или стабилитрон добавить или супрессор другой | | |
| 31
- 21.08.2013 - 16:07
| cогласен, однако с учётом того что это устройство реально нигде применяться не будет, можно оставить как есть. | | |
| 32
- 21.08.2013 - 21:18
| ))) а для чего все страдания с разработкой тогда? | | |
| 33
- 21.08.2013 - 22:57
| 32-XRay >ученье - свет | | |
| 34
- 22.08.2013 - 12:03
|
Кстати, вот этот цифровой вольтметр отлично работает без какой либо дополнительной защиты входов, за исключением разумеется внутренних защитных диодов мк и делителей напряжения на выводах ADC - при измеряемом напряжении до 25V. Ток через диоды впрочем меньше миллиампера, но зато постоянный а не импульсный. | | |
| 35
- 22.08.2013 - 16:20
| хотя по здравому размышлению входам в схеме вольтметра ничего и не угрожает. | | |
| 36
- 24.08.2013 - 06:49
| Spin спасибо за то что дал мой номер.Уже доделываю стробоскоп но не этот, а на PICe (http://схема-авто.рф/%D1%81%D1%82%D1...%B8%D0%B0.html) сегодня отдаю заказчику. | |
Интернет-форум Краснодарского края и Краснодара |