Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Cтробоскоп на штатные фары на Attiny2313

Здесь только проекты на ATtiny

Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 13 дек 2010 12:28

Предлагаю сообразить стробоскоп на штатные фары авто на базе Attiny2313

Описание девайса:
    — при кратковременном нажатии на рукоятку переключения фар ближний/дальний, трижды в секунду мигает одна фара, затем пауза 0,5сек., после чего мигает вторая фара. Это 1 цикл.
    если удерживать рукоятку (не отпускать), — мигание циклическое с указанной паузой. Если отпустить рукоятку, девайс должен завершить цикл, после чего фары гасятся.
    при включенных габаритах и/или ближнем свете фар, устройство работает в штатном режиме. Мигание обеих фар происходит за счет "дергивания" рукоятки.

В программировании не силён. Так что, прошивка "сырая". Не могу разобраЦа с прерываниями; не могу "заставить" МК принимать положительное напряжение на PINX :wall:
Надо сделать так, чтобы при подачи положительного напряжения на PINX, девайс мигал в штатном режиме.
Уже 1,5-2 месяца над этим бьюсь :wall:
Выкладываю черновую схему девайса и код программы.

черновая версия


Код: Выделить всё
/*****************************************************
Project : строб на штатные фары
Version : 1.0
Date    :  10.10.2010
Author  : Freeware, for evaluation and non-commercial use only
Company :
Comments:


Chip type               : ATtiny2313
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 32
*****************************************************/

#include <tiny2313.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=1 State2=1 State1=1 State0=1
PORTB=0x0F;
DDRB=0x0F;

// Port D 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
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// 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;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

while (1)

{
PORTB=0xFF; // Инициализация порта B
DDRB=0xFF;

PORTD=0xFF; // Инициализация порта D
DDRD=0x00;

ACSR=0x80; // Инициализация аналогового компаратора


while(1)

if (PIND.0==0)
{

PORTB.0=0;  // off
delay_ms(300); // Задержка
PORTB.0=1;  // on
delay_ms(300); // Задержка
PORTB.0=0;  // off
delay_ms(300); // Задержка
PORTB.0=1;  // on
delay_ms(300); // Задержка
PORTB.0=0;  // off
delay_ms(300); // Задержка
PORTB.0=1;  // on
delay_ms(300); // Задержка
PORTB.0=0;  // off
delay_ms(700); // Задержка

PORTB.1=0;  // off
delay_ms(300); // Задержка
PORTB.1=1;  // on
delay_ms(300); // Задержка
PORTB.1=0;  // off
delay_ms(300); // Задержка
PORTB.1=1;  // on
delay_ms(300); // Задержка
PORTB.1=0;  // off
delay_ms(300); // Задержка
PORTB.1=1;  // on
delay_ms(300); // Задержка
PORTB.1=0;  // off
delay_ms(700); // Задержка

//-----------------
    }
else {
PORTB.0=0;  // off
PORTB.1=0;  // off
}
}
}


Т.к. есть еще свободные порты, можно сделать джампер для выбора эффекта мигания (Например, поочередное мигание, двойное мигание обеими фарами и то, что Я описал выше) + добавить плавное гашение света в салоне авто. ПолучиЦа супер мега девайс.

Люди добрые!
Наставьте новичка на путь праведный. Объясните, как работать с прерываниями и подачей положительного напряжения к PINX :-)
Буду признателен за помощь знатоков :-)
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение Casper_pro » 13 дек 2010 21:57

Вот тебе схемка, файл прошивки, проект в протеусе!
Тут всё учтено как ты хотел!
Вложения
1.rar
(21.34 КБ) Скачиваний: 392
Archive.rar
(14.55 КБ) Скачиваний: 361
Casper_pro
Частенько бываю
 
Сообщения: 36
Зарегистрирован: 02 дек 2010 00:19

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 14 дек 2010 16:21

Благодарю за помощь, Casper_pro !
И как Я не догадался инвертировать сигнал через транзюки :-) ведь на лампы сделал (управление плюсом) :jokingly:
Просмотрел код и нашел свою ошибку.
Спасибо! :-)
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 16 дек 2010 16:25

Casper_pro, видать эту тему в двоем раскручивать будем :-)

Добавил переключатель (с замыканием на минус) для выбора эффекта мигания:
    — трижды в секунду одна фара, пауза, трижды в секунду другая (PIND.2);
    — поочередное мигание фар (PIND.3);
    — двойное мигание обеими фарами (PIND.4)

Выложил прототип. Кликните по картинке, загрузиЦа Gif
СмотриЦа ничего :)

Добавил задержку света в салоне на 7 секунд. Концевики дверей подключены к PORTD5, с замыканием на минус.

Трабл в следующем:
    — в протеусе симулирую открытые двери (PORTD5 замкнут на минус) и в этот момент пытаюсь помигать фарами
    (без разницы, какой эффект установлен и включены ли габариты), ничего не мигает :(

2 дня над этим голову ломаю :wall:
Не могу разобраЦа, почему не получаеЦа :scratch:

И еще, как реализовать ШИМ? Кто подскажет; примером объяснит? :-)
ХочеЦа сделать следующее:
    — открыл дверь — мгновенное включение света в салоне;
    — закрыл дверь — задержка выключения света на 7 секунд, после чего, свет плавно гаснет в течении неск.секунд;
    — если дверь открыта более 10 минут, - свет плавно гаснет и без разницы, заведен двигатель или нет.

А у меня получилось резкое выключение света в салоне после 7-секундной выдержки. Совсем не тот эффект :(
Да и к тому же с косяками. Если двери открыты, помигать фарами не получаеЦа :sorry:

Люди добрые, помогите кто чем может :)

Вот код Си и схема:

Код: Выделить всё
/*****************************************************
Project : Строб на штатные фары
Version : 1.0
Date    : 14.12.2010
Author  : Freeware, for evaluation and non-commercial use only
Company : ma35tr0
Comments: 3 режима мигания + плавное гашения света в салоне с задержкой


Chip type               : ATtiny2313
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 32
*****************************************************/

#include <tiny2313.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=1 State2=1 State1=1 State0=1
PORTB=0x0F;
DDRB=0x0F;

// Port D 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
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// 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;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

while (1)

{
PORTB=0x00; // Инициализация порта B
DDRB=0xFF;

PORTD=0xFF; // Инициализация порта D
DDRD=0x00;

ACSR=0x80; // Инициализация аналогового компаратора


while(1)

if ((!PIND.0) & (!PIND.1))
{
PORTB.0=1;  // on
PORTB.1=1;  // on
}

//----------------- ЭФФЕКТ #1: МИГАНИЕ ТРИЖДЫ В СЕКУНДУ - ЛЕВАЯ ФАРА, ПАУЗА, ПРАВАЯ ФАРА

else
if ((!PIND.0) & (PIND.1==1) & (!PIND.2==1))
{
PORTB.0=0;  // off
delay_ms(300); // Задержка
PORTB.0=1;  // on
delay_ms(300); // Задержка
PORTB.0=0;  // off
delay_ms(300); // Задержка
PORTB.0=1;  // on
delay_ms(300); // Задержка
PORTB.0=0;  // off
delay_ms(300); // Задержка
PORTB.0=1;  // on
delay_ms(300); // Задержка
PORTB.0=0;  // off
delay_ms(700); // Задержка

PORTB.1=0;  // off
delay_ms(300); // Задержка
PORTB.1=1;  // on
delay_ms(300); // Задержка
PORTB.1=0;  // off
delay_ms(300); // Задержка
PORTB.1=1;  // on
delay_ms(300); // Задержка
PORTB.1=0;  // off
delay_ms(300); // Задержка
PORTB.1=1;  // on
delay_ms(300); // Задержка
PORTB.1=0;  // off
delay_ms(700); // Задержка
}

//----------------- ЭФФЕКТ #2: ПООЧЕРЕДНОЕ МИГАНИЕ - ЛЕВАЯ ФАРА, ПАУЗА, ПРАВАЯ ФАРА

else
if ((!PIND.0) & (PIND.1==1) & (!PIND.3==1))
{
PORTB.0=0;  // off
PORTB.1=0;  // off
PORTB.0=1;  // on
delay_ms(1000); // Задержка
PORTB.0=0;  // off
PORTB.1=1;  // on
delay_ms(1000); // Задержка
PORTB.1=0;  // off
PORTB.0=1;  // on
delay_ms(1000); // Задержка
PORTB.0=0;  // off
PORTB.1=1;  // on
delay_ms(1000); // Задержка
PORTB.1=0;  // off
  }

//----------------- ЭФФЕКТ #3: МИГАНИЕ ОБЕИМИ ФАРАМИ 2 РАЗА С ПАУЗОЙ 0,5 СЕКУНД

else
if ((!PIND.0 ) & (PIND.1==1) & (!PIND.4==1))
{
PORTB.0=0;  // off
PORTB.1=0;  // off
delay_ms(500); // Задержка
PORTB.0=1;  // on
PORTB.1=1;  // on
delay_ms(500); // Задержка
PORTB.0=0;  // off
PORTB.1=0;  // off
delay_ms(500); // Задержка
PORTB.0=1;  // on
PORTB.1=1;  // on
delay_ms(500); // Задержка
PORTB.0=0;  // off
PORTB.1=0;  // off

//-----------------ЗАДЕРЖКА СВЕТА В САЛОНЕ НА 7 СЕКУНД
}
else
if ((!PIND.5) & (!PIND.1==0) & (!PIND.0==0))
{
PORTB.0=0;  // off
PORTB.1=0;  // off
PORTB.2=1;  // on
delay_ms(7000); // Задержка 7 секунд
PORTB.2=0;  // off
//-----------------
}
else {
PORTB.0=0;  // off
PORTB.1=0;  // off
PORTB.2=0;  // off
}
}
}
Вложения
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение Demckiy » 06 янв 2011 18:10

ШИМ работает...но одновременно с открытой дверью, фары через раз моргают...как это устранить???? ШИМ настроин на таймере0...

вот ссылка на исходник и файл протеуса.
http://narod.ru/disk/2846740001/2313.zip.html
Demckiy
Частенько бываю
 
Сообщения: 37
Зарегистрирован: 13 апр 2010 18:49

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 10 янв 2011 15:03

Demckiy писал(а):ШИМ работает...но одновременно с открытой дверью, фары через раз моргают...как это устранить???? ШИМ настроин на таймере0...

вот ссылка на исходник и файл протеуса.
http://narod.ru/disk/2846740001/2313.zip.html




Поправил работу строба. Выкинул переключатель эффектов.
А вот с ШИМ-ом не разобрался. Это для меня пока еще загадка :wall:

У вас ШИМ запускаеЦа сразу. При нажатой кнопки, лампа плавно гаснет и опять плавно загораеЦа.

Нужно сделать так:
    нажал на кнопку (дверь отркрыта) — запустился ШИМ. Лампочка в салоне плавно загорелась.
    отпустил кнопку (дверь закрыта) — лампочка горит еще 7 секунд, после чего плавно гаснет.

Вот Ваш исходник с коррективами строба:
Код: Выделить всё
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 04.01.2011
Author  : F4CG
Company : F4CG
Comments:


Chip type           : ATtiny2313
Clock frequency     : 4,000000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 32
*****************************************************/


#include <tiny2313.h>
#include <delay.h>

#define LED PORTB.2

unsigned char tm;
unsigned char second;
unsigned char Direct=0;
unsigned char cnt;
unsigned char Step=0;



//****************************************
//Здесь будут обработчики прерываний
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
/* tm++; //Увеличиваем на 1 значение tm
    if (tm==15)//если tm стала равна 15 то
      {
       second ++;//увеличиваем на 1 переменную second
       tm=0;//и обнуляем переменную tm
      }
     if (second==3)//если прошло 3 секунды
     {
       second = 0;//обнуляем переменную second
       LED=~LED;//и изменяем состояние порта PB0 на обратное
     } /**/


    if (Step)
  {
  cnt++;
//Каждый 20-й заход в прерывание
   if (cnt==50)
    {
     cnt=0;
     Step--;
  //254 шага увеличения ширины импульса
      if (Direct)
      {
        OCR0A=0xFE-Step; //254-0
      }
      else
      {
        if (!Step)
         {
           OCR0A=0xFF; //=255
         }
           else
         {
           OCR0A=Step;
         }
      }
    }
  }
}

// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
// Place your code here

}

interrupt       [EXT_INT0] void ext_int0_isr(void)
{

         Direct=~Direct;
         //Step=0xFE;
         if (Direct)
         {
         Step=0xFE-OCR0A; //254-0
         }
         else
         {
         Step=OCR0A;
         }
}

void Port_Init(void)
{
PORTA=0x00;
DDRA=0x00;

PORTB=0b00000000;
DDRB=0b11111111;

PORTD=0b1111111;
DDRD=0b0000000;
}

void Timer0_Init(void)
{
/* биты регистра:
COM0A1 COM0A0 COM0B1 COM0B0 Reserved Reserved WGM01 WGM00 */
TCCR0A=0x83;

/* биты регистра:
FOC0A FOC0B Reserved Reserved WGM02 CS02 CS01 CS00 */
TCCR0B=0b00000001;

TCNT0=0x10;

OCR0A=0b11111111;

OCR0B=0b00000000;

/* биты регистра:
TOIE1 OCIE1A OCIE1B Reserved ICIE1 OCIE0B TOIE0 OCIE0A */
TIMSK=0x03;
}





/*{void Timer1_Init(void)
{
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
}/**/

void main(void)
{

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

Timer0_Init();
Port_Init();

GIMSK=0x40;
MCUCR=0x02;


#asm("SEI");

while (1)
      {
     #asm("wdr"); //Сброс сторожевого таймера



//----------------- ВСЕ, ЧТО НАХОДИ_Ц_А ВЫШЕ ЭТОЙ СТРОКИ, Я НЕ ТРОГАЛ. КОРРЕКТИВЫ НАЧИНАЮЦА НИЖЕ ТЕКУЩЕЙ СТРОКИ



//----------------- КНОПКИ УПРАВЛЕНИЯ МИГАНИЕМ
if ((!PIND.0) & (!PIND.1))
{
PORTB.0=1;  // on
PORTB.1=1;  // on
}


//----------------- ЭФФЕКТ: МИГАНИЕ ТРИЖДЫ В СЕКУНДУ - ЛЕВАЯ ФАРА, ПАУЗА, ПРАВАЯ ФАРА
else if ((!PIND.0) & (PIND.1==1))
{
    PORTB.0=0;  // off
    delay_ms(300); // Задержка
    PORTB.0=1;  // on
    delay_ms(300); // Задержка
    PORTB.0=0;  // off
    delay_ms(300); // Задержка
    PORTB.0=1;  // on
    delay_ms(300); // Задержка
    PORTB.0=0;  // off
    delay_ms(300); // Задержка
    PORTB.0=1;  // on
    delay_ms(300); // Задержка
    PORTB.0=0;  // off
    delay_ms(700); // Задержка

    PORTB.1=0;  // off
    delay_ms(300); // Задержка
    PORTB.1=1;  // on
    delay_ms(300); // Задержка
    PORTB.1=0;  // off
    delay_ms(300); // Задержка
    PORTB.1=1;  // on
    delay_ms(300); // Задержка
    PORTB.1=0;  // off
    delay_ms(300); // Задержка
    PORTB.1=1;  // on
    delay_ms(300); // Задержка
    PORTB.1=0;  // off
    delay_ms(700); // Задержка



}


else {
PORTB.0=0;  // off
PORTB.1=0;  // off

}
}
}



Я уже думаю, если не получиЦа релиазовать плавное включение/выключение света на ШИМ, то воспользуюсь кондёром и транзиком, а задержку реализую программно, на 7 сек.

АСЫЫЫЫЫЫЫЫЫ! Отзовитесь! :-)
SOS! SOS!
Вложения
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение JiP » 26 янв 2011 13:58

Разберитесь с включением силовых полевиков. Если ставите n-канальный в верхнее плечо, обязательно использование драйвера- иначе транзистор не откроется. p-канальные хуже по характеритикам (как правило) и управляются отрицательным напряжением.
JiP
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 26 янв 2011 13:50

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 26 янв 2011 14:14

JiP писал(а):Разберитесь с включением силовых полевиков. Если ставите n-канальный в верхнее плечо, обязательно использование драйвера- иначе транзистор не откроется. p-канальные хуже по характеритикам (как правило) и управляются отрицательным напряжением.


Спасибо за совет!
Я планирую к транзюкам авто релюху приделать. Т.е. коммутация фар будет релейное.
А свет в салоне - транзюк.
Подскажите, пожалуйста, какой транзистор лучше ставить?


И как быть с ШИМ? :(
Сколько времени уже и-нет ковыряю... Пока ничего :(
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение JiP » 26 янв 2011 16:04

Транзистор лучше поставить управляемый логическим уровнем, что-нить из серии IRFL0xx- смотрите по токам нагрузки. Если обычная салонная лампа- IRFL044 хватит с головой- он ампер 6-8 вроде протащить должен. Почему выбор на полевики пал? Посмотрите DS на, например, BC337 и BC817- обычные биполярники, до полуампера тока, мелкие (особенно второй- SOT-23 корпус), дешевые.
С ШИМом наворотили, ИМХО. :) рекомендую на втором счетчике поднять генератор переполнения каждые 0.1 сек, в обработчик запихать инкременты необходимых переменных и на основании их моргать фарами, осчитывать секунды до погасания лампочки, плавный инкремент-декремент регистра ШИМа и т.д.- просто будете знать, что каждые 0.1 сек контроллер уходит в прерывание по переполнению таймера. У Вас-же получается, что большую часть цикла он сидит и отсчитывает задержки ("nop", или "delay"), так не делают в основном цикле- для быстрой реакции приходится использовать внешнее прерывание.
JiP
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 26 янв 2011 13:50

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 26 янв 2011 16:14

JiP писал(а):рекомендую на втором счетчике поднять генератор переполнения каждые 0.1 сек, в обработчик запихать инкременты необходимых переменных и на основании их моргать фарами, осчитывать секунды до погасания лампочки, плавный инкремент-декремент регистра ШИМа и т.д.- просто будете знать, что каждые 0.1 сек контроллер уходит в прерывание по переполнению таймера. У Вас-же получается, что большую часть цикла он сидит и отсчитывает задержки ("nop", или "delay"), так не делают в основном цикле- для быстрой реакции приходится использовать внешнее прерывание.


Всё это для меня что-то загадочное :scratch:
Я вообще с шимом и внешними прерываниями не дружу :(
Вот, ща сижу и читаю. За эти неск. дней столько всего... Нет! Не узнал :(
Везде по разному пишут и комменты разные.
Работаю методом научного тыка, авось заработает. Да вот не получаеЦа пока.
Мне бы исходник для CVAVR с комментами.

ШИМ и прерывания - всё это пока грёзы :(
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение JiP » 26 янв 2011 16:33

В CVAVR прекрасный мастер начальной инициализации. Вам надо всего-лишь правильно инициализировать два счетчика. Один отдать под ШИМ (есть там такой параметр Fast PWM, top 0xFF), второй настроить на генерацию прерывания каждые 0.1 сек. Это именно то, с чего бы начал я. С шимом работать проще простого- при правильно инициализированном, просто записываете нужное число в его регистр, остальное он делает сам. Ваша задача в теле программы- определиться, какое число и когда записать.
Мне бы исходник для CVAVR с комментами.
- тут важно определиться, для чего этот проект, если только ради готового устройства- может и заморачиваться не стоит- проще попросить за небольшую денюжку разработать, если хотите научиться- грызите гранит (и даташиты с аппноутами). :)
JiP
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 26 янв 2011 13:50

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 26 янв 2011 16:44

JiP писал(а):- тут важно определиться, для чего этот проект

Не только ради готового устройста, а для того, чтобы самому че-то сделать.
Я с 8 лет в ДОСААФ ходил, потом на радиокружок записался и до 9 класса ходил
И радио собирал, и ЦМУ.. Короче, чего только не собирал :)

Потом как-то не до этого было - выпускной, армия и т.д...

Это больше для души, нежели факт готового устройства.
Купить - проще простого и особого ума не надо. Я же хочу сам :)
Вот и нужен мне наставник :)
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение JiP » 26 янв 2011 17:01

Тогда надо много читать.
На первых порах крайне рекомендую составлять блок-схему алгоритма, работа устройства становится гораздо прозрачнее. Как готов алгоритм со всеми переходами, уже переность в проект.
Посмотрите в сети- есть куча сайтов по МК для новичков, с примерами правильного кода- может что-то оттуда надергать, чтоб не изобретать велосипед.
Одно скажу точно- использовать delay_ms(300) или (700) в основном цикле- зло. У Вас кристалл молотит на 4 МГц- это почти 4 млн операций в сек, но он тупо простаивает, отсчитывая задержку пустыми тактами. Фарками помаргали- минус ~15 млн операций, часть которых могла быть полезна.
JiP
Пробегал мимо
 
Сообщения: 4
Зарегистрирован: 26 янв 2011 13:50

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение Kenny » 14 фев 2011 20:26

а нет ли случайно схемы с прошивкой на реле поворотов на аттини2313?)) :-)
Kenny
Частенько бываю
 
Сообщения: 25
Зарегистрирован: 08 сен 2009 13:51
Откуда: Киев

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение Casper_pro » 16 фев 2011 20:11

Kenny писал(а):а нет ли случайно схемы с прошивкой на реле поворотов на аттини2313?)) :-)

Да ти чего!!!? Зачем тратить сто рублей на тини если есть схемы на полевиках на которые потратишь от силы рублей 30!
Casper_pro
Частенько бываю
 
Сообщения: 36
Зарегистрирован: 02 дек 2010 00:19

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 17 фев 2011 08:35

Kenny писал(а):а нет ли случайно схемы с прошивкой на реле поворотов на аттини2313?)) :-)


Ты хочешь заменить штатное реле поворотов?
В таком случае, зачем тебе МК?
Полностью согласен с Casper_pro
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение Kenny » 17 фев 2011 17:13

та просто еще туда пару функций засунуть хотел) На сигналке есть лишний канал - хотел использовать его как триггер для включения фар. ПС : на скутер :-)
Kenny
Частенько бываю
 
Сообщения: 25
Зарегистрирован: 08 сен 2009 13:51
Откуда: Киев

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 16 июн 2012 10:57

На всеобщее обозрение предлагаю рабочую схему:

Основные функции:
• строб на штатные фары (3 эффекта мигания);
• выключение габаритов/фар при постановке на охрану;
• включение/выключение одной кнопкой без фиксации.

Управление устройством осуществляет микроконтроллер ATTINY2313 (ATMEL).

Функция стробоскоп
Мигание фарами производится кратковременным нажатием [HAND].
В этом случае запускается 1 цикл мигания. При удержании [HAND] цикл повторяется N раз. После отпускания кнопки, фары погаснут после полного завершения цикла.

В память МК записаны 3 эффекта мигания:
• Эффект №1 Тройное мигание каждой фары с паузой;
• Эффект №2 Двойное мигание обеими фарами с паузой;
• Эффект №3 Попеременное мигание фар без паузы
Выбор активного эффекта производится переключателем (см. схему).

ВНИМАНИЕ!
Функция стробоскоп РАБОТАЕТ:
• При выключенном внешнем освещении;
• При включенных габаритных огнях.

Функция стробоскоп НЕ РАБОТАЕТ:
• При включенном ближнем свете фар.
В данном случае мигание производится в штатном режиме


Сигнал [LOCK]
Необходимая функция для тех, кто часто забывает выключать наружное освещение.
[LOCK] подключается к lock-сигналу с блока автосигнализации и/или центрального замка.
В данном случае, при включенном наружном освещении, нажав на кнопку запирания дверей, оно будет выключено.

Описание работы:
При подключении питания сразу загорается зеленый светодиод, индицируя наличия питания и дежурного режима устройства.
ПЕРВОЕ кратковременное нажатие на кнопку [ON/OFF], включает габаритные огни. В этот момент меняется состояние светодиодов: зеленый гаснет (дежурный режим), красный загорается (активный режим).
ВТОРОЕ кратковременное нажатие включает ближний свет фар. Состояние светодиодов не менятся
ТРЕТЬЕ кратковременное нажатие выключает всё внешнее освещение. Красный светодиод гаснет (активный режим), зеленый загорается (дежурный режим).
Далее покругу.


Если удерживать кнопку [ON/OFF] около 2 сек. при включенном ближнем свете фар, то они погаснут, а габаритные огни все еще будут гореть.
Красный светодиод горит (активный режим), зеленый погашен (дежурный режим).

Если удерживать кнопку [ON/OFF] около 2 сек. при включенных габаритах, то габаритные огни выключаются.
Красный светодиод погаснет (активный режим), зеленый загорится (дежурный режим).

Прилагаю схему, прошивку, разводку ПП и фотки собранного девайса + видео на макетке






Видео
http://youtu.be/J35XA0Jekow
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение hardlock » 19 июн 2012 22:55

ma35tr0, отлично! Не могли бы Вы выложить плату в Спринте?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение pit05 » 20 июн 2012 08:21

Прилагаю схему, прошивку
Может чиво недопонял,но прошывку я ненашол,ткните пальцем!Где написано о фюзах?
pit05
Пробегал мимо
 
Сообщения: 23
Зарегистрирован: 02 авг 2011 18:40
Откуда: Ровенская обл

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 20 июн 2012 10:31

hardlock писал(а):ma35tr0, отлично! Не могли бы Вы выложить плату в Спринте?


пытаюсь, но ту такое сообщение выходит:
"strobe_pcb.lay => Расширение lay запрещено администратором"

Добавлено спустя 8 минут 38 секунд:
pit05 писал(а):
Прилагаю схему, прошивку
Может чиво недопонял,но прошывку я ненашол,ткните пальцем!Где написано о фюзах?

Пардон!
Схему и печатку на работе чертил, а вот над прошивкой дома работал, потому вот так :)

прошивка:
Код: Выделить всё
:100000000AC018951895189518951895189518956B
:100010001895189518958FED8DBFC0ECE8EA4E2E17
:10002000DD275D2EEEE7F0E0A0E6B0E088278D93B7
:100030003197E9F7662484E68093620084E6809332
:1000400063008AEF809364008C9A8D9ABA9ABB9A67
:10005000899ABC9A88988A988B988E98B898B998FB
:1000600000916000003009F002C0919A02C091989E
:10007000C49A80E0809361008B98A6E69C9197FFDC
:1000800004C083990EC09F779C93839B0AC08BE426
:100090009F9399273CD29F91839B03C090689C9328
:1000A000D1D18A98A6E69C9196FF04C082990EC091
:1000B0009F7B9C93829B0AC08BE49F93992727D2B6
:1000C0009F91829B03C090649C9300D280E08093B8
:1000D0006100A0E30C9100FB81E00EF080E08F93C3
:1000E000A0E30C9106FB81E00EF480E09F91892350
:1000F000882309F403C081E080936100A0E30C91A0
:1001000000FB81E00EF080E08F93A6E30C9100FBF2
:1001100081E00EF480E09F918923882309F403C0D5
:1001200082E080936100A0E30C9100FB81E00EF07F
:1001300080E08F93A6E30C9101FB81E00EF480E058
:100140009F918923882309F403C083E08093610091
:10015000A0E30C9100FB81E00EF080E08F93A0E320
:100160000C9106FB81E00EF480E09F9189238F9330
:1001700000916000023081E009F080E09F918923C6
:10018000882309F403C084E080936100A0E30C910C
:1001900000FB81E00EF080E08F93A6E30C9100FB62
:1001A00081E00EF480E09F9189238F93009160009D
:1001B000023081E009F080E09F918923882309F4CF
:1001C00003C084E080936100A0E30C9100FB81E018
:1001D0000EF080E08F93A6E30C9101FB81E00EF41A
:1001E00080E09F9189238F9300916000023081E02D
:1001F00009F080E09F918923882309F403C084E0FB
:100200008093610000916000003009F002C0919A73
:1002100002C09198C49AA0E30C9100FB81E00EF417
:1002200080E08F9300916000013081E009F080E070
:100230009F918923882309F404C0949A9598C298C1
:10024000C398A0E30C9100FB81E00EF480E08F9353
:1002500000916000023081E009F080E09F918923E5
:10026000882309F404C0949A959AC298C398A0E38D
:100270000C9100FB81E00EF480E08F930091600010
:10028000033081E009F080E09F918923882309F4FD
:1002900004C094989598C298C398A0E30C9100FB71
:1002A00081E00EF080E08F93A0E30C9101FB81E0F0
:1002B0000EF480E09F918923882309F404C0949A66
:1002C0009598C29AC39AA0E30C9100FB81E00EF0CE
:1002D00080E08F93A0E30C9101FB81E00EF080E0C1
:1002E0009F918923882309F404C094989598C29A11
:1002F000C39AA0E30C9100FB81E00EF480E08F93A1
:10030000A0E30C9101FB81E00EF080E09F91892336
:10031000882309F404C094989598C298C3980091D2
:100320006100013009F03EC0C298C398A2E68C91EA
:100330009927EDD0C29AA2E68C919927E8D0C2986D
:10034000A2E68C919927E3D0C29AA2E68C919927D4
:10035000DED0C298A2E68C919927D9D0C29AA2E6A3
:100360008C919927D4D0C298C398A2E68C919927F2
:10037000CED0C39AA2E68C919927C9D0C398A2E6A1
:100380008C919927C4D0C39AA2E68C919927BFD0AB
:10039000C398A2E68C919927BAD0C39AA2E68C9111
:1003A0009927B5D000916100023009F01EC0C298B3
:1003B000C398A3E68C919927AAD0C29AC39AA3E6C0
:1003C0008C919927A4D0C298C398A3E68C919927C1
:1003D0009ED0C29AC39AA3E68C91992798D0C298CE
:1003E000C398A4E68C91992792D0009161000330C4
:1003F00009F01AC0C298C39AA4E68C91992787D0B5
:10040000C29AC398A4E68C91992781D0C298C39AC6
:10041000A4E68C9199277BD0C29AC398A4E68C91CC
:10042000992775D0C298C39A00916100043009F0F1
:1004300008C0C298C398C29AC39AA4E68C9199271F
:1004400066D00ECE839B21C0A5E68C918F5F8C93E6
:1004500082E390E05CD000916500083208F414C09B
:1004600080916000815080936000009160000030B6
:1004700009F006C080E082BB80E080936000C498F1
:1004800080E08093650021C0DDCFA0E68C918F5F76
:100490008C9300916000033009F006C080E082BBBD
:1004A00080E080936000C49800916000013009F002
:1004B00003C080E182BB05C0023009F002C080E3C6
:1004C00082BB089580E080936500089580E080936A
:1004D000600080E082BB80E080936000C49800915F
:1004E0006000033009F002C080E082BB80E991E047
:1004F0000ED080E88ABF0895F894FFCF3197F1F7C6
:100500000895689462F80895E89462F80895EF9366
:10051000FF93EE27E82BE92B31F0E8EEF3E031977B
:0C052000F1F70197D1F7FF91EF910895DA
:00000001FF


фьюзы


дерзайте!
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение hardlock » 20 июн 2012 12:31

ma35tr0 писал(а):"strobe_pcb.lay => Расширение lay запрещено администратором"

упакуйте RARом и прошивку тоже. Можно всё в один файл. На хостинге мало места - вынужденная мера.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 20 июн 2012 13:27

Все в одном архиве
strobe_full.zip
Все в одном архиве, кроме файла proto.gif (архив превышает :( )
(128.71 КБ) Скачиваний: 258
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение Kenny » 19 авг 2012 03:14

Посоветуйте как сделать коммутацию +12 ? То есть 3 лампы в фаре, общий минус.
Kenny
Частенько бываю
 
Сообщения: 25
Зарегистрирован: 08 сен 2009 13:51
Откуда: Киев

Re: Cтробоскоп на штатные фары на Attiny2313

Сообщение ma35tr0 » 19 авг 2012 09:09

реле
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

След.

Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5