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

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

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

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

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

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


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

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

Здесь только проекты на ATtiny
Post Reply
Ivan_Nikolaevich
Пробегал мимо
Posts: 12
Joined: 30 Mar 2011 10:22
Location: Россия. Москва

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

Post by Ivan_Nikolaevich »

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

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

Code: Select all

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: Приношу свои извинения, в принципиальной схеме конечно ошибка, исправлю... Контакты реле коротят истоу- сток транзистора, а не нагрузку конечно... Для того, что б и надёжность была повыше, да и при приличных нагрузках транзистор и вовсе не грелся..... :-)
steslia
Пробегал мимо
Posts: 2
Joined: 23 Oct 2013 12:18

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

Post by steslia »

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

З.Ы. просто попал сюда в поисках схемы плавного пуска для двигателя детского мотоцикла.
User avatar
Alex_S
Живу тут
Posts: 156
Joined: 22 Dec 2009 12:11
Location: Одесса-мама
Contact:

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

Post by Alex_S »

Глупый вопрос - а зачем там вообще реле? Ведь транзистор и сам должен шикарно справиться с задачей. Единственное, поставить транзистор с бОльшим током и меньшим напряжением. Например, IRFZ44n. У него сопротивление открытого перехода 17мОм. Значит, при 10А будет падать аж 170мВ, что соизмеримо с контактами реле.
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

Очень простой алгоритм. Погуглите - очень многов уроков вплоть до комментов каждой строки кода.
А для чего, если не секрет?
Что будете ШИМить и замыкать/размыкать?
Sony
Пробегал мимо
Posts: 9
Joined: 14 Dec 2010 02:07

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

Post by Sony »

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

Добавлено спустя 5 минут 42 секунды:
ma35tr0 wrote:Очень простой алгоритм. Погуглите - очень многов уроков вплоть до комментов каждой строки кода.
А для чего, если не секрет?
Что будете ШИМить и замыкать/размыкать?
Если не трудно - укажите ссылку. Шимить надо электродвигатель постоянного тока, а после выхода на 100% - шунтировать релюшкой.
Сам нашел на просторах инета похожую схему, а прошивки к ней нету...
Attachments
Один из вариантов найденных на просторах инета
Один из вариантов найденных на просторах инета
ШИМ для детского авто2.jpg (11.21 KiB) Viewed 9182 times
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

Sony wrote:Если не трудно - укажите ссылку. Шимить надо электродвигатель постоянного тока, а после выхода на 100% - шунтировать релюшкой.
Сам нашел на просторах инета похожую схему, а прошивки к ней нету...
Лучше использовать Н-канальный полевик:
  • при равных рабочих токах и RDSon он стоит дешевле, чем П-канальный;
  • Н-канальный полевик не надо раскачивать.
Вот, держите прошивку.
SoftStartPWM.zip
плавный запуск
(650 Bytes) Downloaded 738 times
В отличии от схемы, кнопку запуска цепляете на прерывание INT0, т.е. 6ая ножка, а выход на реле - 3я ножка.
Конденсатор, что стоит у кнопок не нужен. Подтяните только 6-ую ножку к +5В через резистор 5,6-10К.

Прошивку писал на скорую руку, но алгоритм вроде соответствует вашей просьбе - пока нажата кнопка, ШИМ плавно нарастает и после достижения 100% включается шунт.реле.
Если отпустить кнопку при ШИМ = 100% - отключается реле, затем ШИМ плавно уменьшается.
Частота ШИМ 147 Гц.
Фьюзы:
Low: 0x79
High: 0xFF
Sony
Пробегал мимо
Posts: 9
Joined: 14 Dec 2010 02:07

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

Post by Sony »

ma35tr0 wrote:
Вот, держите прошивку.
Спасибо. Пока я на отдыхе, приеду в середине недели - проверю корректность. Если будут вопросы - сообщу
Post Reply