К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

нужна помощь для сборки простой схемы

Гость
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
Цитата:
Сообщение от art1201 пашковка Посмотреть сообщение
да в сети копипастов много, просто мысль о том что не могу сделать бесит надо собрать и успокоиться...поэтому помощи попросил
Типа увидеть Париж и умереть !?
В Вашем случае увидеть как моргает ... и успокоиться !
Гость
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) сегодня отдаю заказчику.


К списку вопросов






Copyright ©, Все права защищены