24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

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

Здесь только проекты на ATtiny
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

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

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

Code: Select all

/*****************************************************
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 :-)
Буду признателен за помощь знатоков :-)
Casper_pro
Частенько бываю
Posts: 36
Joined: 01 Dec 2010 23:19

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

Post by Casper_pro »

Вот тебе схемка, файл прошивки, проект в протеусе!
Тут всё учтено как ты хотел!
Attachments
1.rar
(21.34 KiB) Downloaded 667 times
Archive.rar
(14.55 KiB) Downloaded 609 times
123456.jpg
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

Благодарю за помощь, Casper_pro !
И как Я не догадался инвертировать сигнал через транзюки :-) ведь на лампы сделал (управление плюсом) :jokingly:
Просмотрел код и нашел свою ошибку.
Спасибо! :-)
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

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

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

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

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

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

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

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

Code: Select all

/*****************************************************
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
}
}
 }
Attachments
Схема
Схема
Прототип
Прототип
prototype.gif (94.59 KiB) Viewed 14717 times
Demckiy
Частенько бываю
Posts: 37
Joined: 13 Apr 2010 18:49

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

Post by Demckiy »

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

вот ссылка на исходник и файл протеуса.
http://narod.ru/disk/2846740001/2313.zip.html
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

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

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


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

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

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

Code: Select all

/*****************************************************
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!
Attachments
схема практически не изменилась
схема практически не изменилась
JiP
Пробегал мимо
Posts: 4
Joined: 26 Jan 2011 12:50

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

Post by JiP »

Разберитесь с включением силовых полевиков. Если ставите n-канальный в верхнее плечо, обязательно использование драйвера- иначе транзистор не откроется. p-канальные хуже по характеритикам (как правило) и управляются отрицательным напряжением.
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

JiP wrote:Разберитесь с включением силовых полевиков. Если ставите n-канальный в верхнее плечо, обязательно использование драйвера- иначе транзистор не откроется. p-канальные хуже по характеритикам (как правило) и управляются отрицательным напряжением.
Спасибо за совет!
Я планирую к транзюкам авто релюху приделать. Т.е. коммутация фар будет релейное.
А свет в салоне - транзюк.
Подскажите, пожалуйста, какой транзистор лучше ставить?


И как быть с ШИМ? :(
Сколько времени уже и-нет ковыряю... Пока ничего :(
JiP
Пробегал мимо
Posts: 4
Joined: 26 Jan 2011 12:50

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

Post by JiP »

Транзистор лучше поставить управляемый логическим уровнем, что-нить из серии IRFL0xx- смотрите по токам нагрузки. Если обычная салонная лампа- IRFL044 хватит с головой- он ампер 6-8 вроде протащить должен. Почему выбор на полевики пал? Посмотрите DS на, например, BC337 и BC817- обычные биполярники, до полуампера тока, мелкие (особенно второй- SOT-23 корпус), дешевые.
С ШИМом наворотили, ИМХО. :) рекомендую на втором счетчике поднять генератор переполнения каждые 0.1 сек, в обработчик запихать инкременты необходимых переменных и на основании их моргать фарами, осчитывать секунды до погасания лампочки, плавный инкремент-декремент регистра ШИМа и т.д.- просто будете знать, что каждые 0.1 сек контроллер уходит в прерывание по переполнению таймера. У Вас-же получается, что большую часть цикла он сидит и отсчитывает задержки ("nop", или "delay"), так не делают в основном цикле- для быстрой реакции приходится использовать внешнее прерывание.
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

JiP wrote:рекомендую на втором счетчике поднять генератор переполнения каждые 0.1 сек, в обработчик запихать инкременты необходимых переменных и на основании их моргать фарами, осчитывать секунды до погасания лампочки, плавный инкремент-декремент регистра ШИМа и т.д.- просто будете знать, что каждые 0.1 сек контроллер уходит в прерывание по переполнению таймера. У Вас-же получается, что большую часть цикла он сидит и отсчитывает задержки ("nop", или "delay"), так не делают в основном цикле- для быстрой реакции приходится использовать внешнее прерывание.
Всё это для меня что-то загадочное :scratch:
Я вообще с шимом и внешними прерываниями не дружу :(
Вот, ща сижу и читаю. За эти неск. дней столько всего... Нет! Не узнал :(
Везде по разному пишут и комменты разные.
Работаю методом научного тыка, авось заработает. Да вот не получаеЦа пока.
Мне бы исходник для CVAVR с комментами.

ШИМ и прерывания - всё это пока грёзы :(
JiP
Пробегал мимо
Posts: 4
Joined: 26 Jan 2011 12:50

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

Post by JiP »

В CVAVR прекрасный мастер начальной инициализации. Вам надо всего-лишь правильно инициализировать два счетчика. Один отдать под ШИМ (есть там такой параметр Fast PWM, top 0xFF), второй настроить на генерацию прерывания каждые 0.1 сек. Это именно то, с чего бы начал я. С шимом работать проще простого- при правильно инициализированном, просто записываете нужное число в его регистр, остальное он делает сам. Ваша задача в теле программы- определиться, какое число и когда записать.
Мне бы исходник для CVAVR с комментами.
- тут важно определиться, для чего этот проект, если только ради готового устройства- может и заморачиваться не стоит- проще попросить за небольшую денюжку разработать, если хотите научиться- грызите гранит (и даташиты с аппноутами). :)
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

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

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

Это больше для души, нежели факт готового устройства.
Купить - проще простого и особого ума не надо. Я же хочу сам :)
Вот и нужен мне наставник :)
JiP
Пробегал мимо
Posts: 4
Joined: 26 Jan 2011 12:50

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

Post by JiP »

Тогда надо много читать.
На первых порах крайне рекомендую составлять блок-схему алгоритма, работа устройства становится гораздо прозрачнее. Как готов алгоритм со всеми переходами, уже переность в проект.
Посмотрите в сети- есть куча сайтов по МК для новичков, с примерами правильного кода- может что-то оттуда надергать, чтоб не изобретать велосипед.
Одно скажу точно- использовать delay_ms(300) или (700) в основном цикле- зло. У Вас кристалл молотит на 4 МГц- это почти 4 млн операций в сек, но он тупо простаивает, отсчитывая задержку пустыми тактами. Фарками помаргали- минус ~15 млн операций, часть которых могла быть полезна.
Kenny
Частенько бываю
Posts: 60
Joined: 08 Sep 2009 13:51
Location: Киев
Contact:

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

Post by Kenny »

а нет ли случайно схемы с прошивкой на реле поворотов на аттини2313?)) :-)
Casper_pro
Частенько бываю
Posts: 36
Joined: 01 Dec 2010 23:19

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

Post by Casper_pro »

Kenny wrote:а нет ли случайно схемы с прошивкой на реле поворотов на аттини2313?)) :-)
Да ти чего!!!? Зачем тратить сто рублей на тини если есть схемы на полевиках на которые потратишь от силы рублей 30!
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

Kenny wrote:а нет ли случайно схемы с прошивкой на реле поворотов на аттини2313?)) :-)
Ты хочешь заменить штатное реле поворотов?
В таком случае, зачем тебе МК?
Полностью согласен с Casper_pro
Kenny
Частенько бываю
Posts: 60
Joined: 08 Sep 2009 13:51
Location: Киев
Contact:

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

Post by Kenny »

та просто еще туда пару функций засунуть хотел) На сигналке есть лишний канал - хотел использовать его как триггер для включения фар. ПС : на скутер :-)
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

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

Основные функции:
• строб на штатные фары (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
User avatar
hardlock
Администратор
Posts: 4011
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

ma35tr0, отлично! Не могли бы Вы выложить плату в Спринте?
pit05
Пробегал мимо
Posts: 23
Joined: 02 Aug 2011 18:40
Location: Ровенская обл

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

Post by pit05 »

Прилагаю схему, прошивку
Может чиво недопонял,но прошывку я ненашол,ткните пальцем!Где написано о фюзах?
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

hardlock wrote:ma35tr0, отлично! Не могли бы Вы выложить плату в Спринте?
пытаюсь, но ту такое сообщение выходит:
"strobe_pcb.lay => Расширение lay запрещено администратором"

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

прошивка:

Code: Select all

: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
фьюзы
фьюзы для автостроба
фьюзы для автостроба
дерзайте!
User avatar
hardlock
Администратор
Posts: 4011
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

ma35tr0 wrote:"strobe_pcb.lay => Расширение lay запрещено администратором"
упакуйте RARом и прошивку тоже. Можно всё в один файл. На хостинге мало места - вынужденная мера.
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

Все в одном архиве
strobe_full.zip
Все в одном архиве, кроме файла proto.gif (архив превышает :( )
(128.71 KiB) Downloaded 527 times
Kenny
Частенько бываю
Posts: 60
Joined: 08 Sep 2009 13:51
Location: Киев
Contact:

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

Post by Kenny »

Посоветуйте как сделать коммутацию +12 ? То есть 3 лампы в фаре, общий минус.
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

реле
Post Reply