Обявления

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

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

Плавный пуск на ATtiny13

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

Плавный пуск на ATtiny13

Сообщение Ivan_Nikolaevich » 07 май 2011 16:39

Уж извините за мою настойчивость, но вот что нарыл... За основу взята и схема и прошивка из какого то учебника по Мк. К сожалению потерял ссылку на сайт. Но думаю что авторсих прав не нарушаем... :-) Исходник схемы не привожу. там его даже нет, только симулятор для Протеуса. Реализовано плавное увеличенние мощости в нагрузке при подаче питания, либо при замыкании кнопки на 2-ой ноге МК. В схеме я её заменил на выключатель с фиксацией. получилась вот эдакая принципиальная схема.
Изображение

Как бы хотелось, что бы работал сей девайс
1. При нажатии кноки, и фиксации её плано нарастает мощость в нагрузке до максимума.
2. По достижении максимума в нагрузке на выходе 6 Мк появлется "1" ( +5 В), срабатывает рееле, коротит транзистор. И так всё остаётся до момента размыкания Копки.
3. При размыкании кнопки, сначала с вывода 6 МК пропадает "1", затем плавно уменьшается мощность нагрузки до нуля. - всё.
В исходнике программы ШИМ уже прописан, и управление кнопкой прописано.
Если честно, не смог я доделать до того, что хочу... :wall: :wall: :wall:
Какое то гадство! Если можете, помогите!!!
Исходник программы.
Код: Выделить всё
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator


Project :
Version :
Date    : 15.09.2009
Author  : XXXXX
Company : Home
Comments:


Chip type               : ATtiny13
AVR Core Clock frequency: 9,600000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 16
*****************************************************/

#include <tiny13.h>
#include <delay.h>

int cnt=0;
char Step=0xFF;

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0xFE;
// Place your code here
cnt++;
//Каждый 20-й заход в прерывание
if (cnt==19){
  cnt=0;
  //254 шага увеличения ширины импульса
  if (Step !=0xFE ) {
   Step++;
   OCR0A=Step;   
  }
}
}

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

// Declare your global variables here

void main(void)
{
// Declare your local variables here
char st; //Состояние кнопки
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=Out Func4=Out Func3=In Func2=Out Func1=Out Func0=Out
// State5=0 State4=0 State3=P State2=0 State1=0 State0=0
PORTB=0x08;
DDRB=0x37;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 9600,000 kHz
// Mode: Fast PWM top=FFh
// OC0A output: Non-Inverted PWM
// OC0B output: Disconnected

TCCR0A=0x83;      //83=non-inverted, C3=inverted
/* TCCR0A
  (10)=Clear OC0A on Compare Match, set OC0A at TOP
  |
--    --(11)=Fast PWM + WGM02 in TCCR0B=0
10000011
*/

TCCR0B=0x01;
/* TCCR0B
     -(0)=WGM02
00000001
*/
TCNT0=0x10;
OCR0A=0x00;
OCR0B=0x00;

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

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x06;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// Watchdog Timer initialization
// Watchdog Timer Prescaler: OSC/1024k
// Watchdog Timer interrupt: Off
#pragma optsize-
WDTCR=0x39;
WDTCR=0x29;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Global enable interrupts
#asm("sei")

while (1)
      {   
      #asm("wdr"); //Сброс сторожевого таймера
      // Посмотрим состояние кнопки
      st=PINB & 0b001000;
      delay_us(50);     
      if (!st) {
       //Замкнута
       Step=0xFF;
       OCR0A=0xFF;
       cnt=0;
      }
      };
}


:-) :-) :-)

Добавлено спустя 21 час 29 минут:
:wall: :wall: :wall: Приношу свои извинения, в принципиальной схеме конечно ошибка, исправлю... Контакты реле коротят истоу- сток транзистора, а не нагрузку конечно... Для того, что б и надёжность была повыше, да и при приличных нагрузках транзистор и вовсе не грелся..... :-)
Ivan_Nikolaevich
Пробегал мимо
 
Сообщения: 12
Зарегистрирован: 30 мар 2011 10:22
Откуда: Россия. Москва

Re: Плавный пуск на ATtiny13

Сообщение steslia » 18 июл 2014 10:22

Может кто захочет повторить то, что на схеме.
Обратите внимание на включение реле. Там ошибка, коротится не транзистор, а нагрузка.

З.Ы. просто попал сюда в поисках схемы плавного пуска для двигателя детского мотоцикла.
steslia
Пробегал мимо
 
Сообщения: 2
Зарегистрирован: 23 окт 2013 12:18

Re: Плавный пуск на ATtiny13

Сообщение Alex_S » 18 июл 2014 11:38

Глупый вопрос - а зачем там вообще реле? Ведь транзистор и сам должен шикарно справиться с задачей. Единственное, поставить транзистор с бОльшим током и меньшим напряжением. Например, IRFZ44n. У него сопротивление открытого перехода 17мОм. Значит, при 10А будет падать аж 170мВ, что соизмеримо с контактами реле.
Аватара пользователя
Alex_S
Частенько бываю
 
Сообщения: 142
Зарегистрирован: 22 дек 2009 13:11
Откуда: Одесса-мама

Re: Плавный пуск на ATtiny13

Сообщение ma35tr0 » 18 июл 2014 17:41

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

Re: Плавный пуск на ATtiny13

Сообщение Sony » 23 июл 2014 00:46

Alex_S писал(а):Глупый вопрос - а зачем там вообще реле? Ведь транзистор и сам должен шикарно справиться с задачей. Единственное, поставить транзистор с бОльшим током и меньшим напряжением. Например, IRFZ44n. У него сопротивление открытого перехода 17мОм. Значит, при 10А будет падать аж 170мВ, что соизмеримо с контактами реле.

Дело в том, что ток 10А там не максимальный. Вернее он даже меньше в несколько раз, когда ребенок едет по прямой, а вот когда он вопрется скажем в стенку- то тогда пока сработает термопредохранитель на 20А, то ток может раза в 2 сжечь любой полевик...

Добавлено спустя 5 минут 42 секунды:
ma35tr0 писал(а):Очень простой алгоритм. Погуглите - очень многов уроков вплоть до комментов каждой строки кода.
А для чего, если не секрет?
Что будете ШИМить и замыкать/размыкать?

Если не трудно - укажите ссылку. Шимить надо электродвигатель постоянного тока, а после выхода на 100% - шунтировать релюшкой.
Сам нашел на просторах инета похожую схему, а прошивки к ней нету...
Вложения
Sony
Пробегал мимо
 
Сообщения: 9
Зарегистрирован: 14 дек 2010 03:07

Re: Плавный пуск на ATtiny13

Сообщение ma35tr0 » 23 июл 2014 22:44

Sony писал(а):Если не трудно - укажите ссылку. Шимить надо электродвигатель постоянного тока, а после выхода на 100% - шунтировать релюшкой.
Сам нашел на просторах инета похожую схему, а прошивки к ней нету...

Лучше использовать Н-канальный полевик:
  • при равных рабочих токах и RDSon он стоит дешевле, чем П-канальный;
  • Н-канальный полевик не надо раскачивать.
Вот, держите прошивку.
SoftStartPWM.zip
плавный запуск
(650 байт) Скачиваний: 242

В отличии от схемы, кнопку запуска цепляете на прерывание INT0, т.е. 6ая ножка, а выход на реле - 3я ножка.
Конденсатор, что стоит у кнопок не нужен. Подтяните только 6-ую ножку к +5В через резистор 5,6-10К.

Прошивку писал на скорую руку, но алгоритм вроде соответствует вашей просьбе - пока нажата кнопка, ШИМ плавно нарастает и после достижения 100% включается шунт.реле.
Если отпустить кнопку при ШИМ = 100% - отключается реле, затем ШИМ плавно уменьшается.
Частота ШИМ 147 Гц.
Фьюзы:
Low: 0x79
High: 0xFF
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней

Re: Плавный пуск на ATtiny13

Сообщение Sony » 27 июл 2014 23:35

ma35tr0 писал(а):
Вот, держите прошивку.

Спасибо. Пока я на отдыхе, приеду в середине недели - проверю корректность. Если будут вопросы - сообщу
Sony
Пробегал мимо
 
Сообщения: 9
Зарегистрирован: 14 дек 2010 03:07


Вернуться в ATtiny



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

Сейчас этот форум просматривают: Yahoo [Bot] и гости: 3

cron