софтстарт
-
Johnson1496
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Сб май 02, 2015 10:06:21
софтстарт
В связи со слабоумием прошу на коммерческой основе решить проблему с написанием кода для Tiny13
Суть проблемы:
1. При подаче питания на устройство на всех выходах устанавливается 0;
2. Включение. При кратковременной подаче на один из входов 1 (кнопка)
- подает на один из входов/выходов 1;
- через 30 сек появляется 1 на втором выходе;
- через 30 сек. Появляется 1 на третьем выходе;
при этом 1 первом и втором выходах не снимаются
3. Выключение. При кратковременной подаче на первый вход 1 (кнопка):
- на третьем выходе 1 сменяется на 0;
- через 30 сек появляется 0 на втором выходе;
- через 30 сек появляется 0 на первом выходе.
4. Если процесс включения не закончился и была нажата кнопка - начинается процесс выключения (обратный порядок из места когда нажата кнопка)
Программу хотелось бы на С с пояснениями для даунов.
Привести значения фьюзов, т.к. заводские установки множителя частоты бывают разными.
Цену вопроса обсуждаем в личке.
Суть проблемы:
1. При подаче питания на устройство на всех выходах устанавливается 0;
2. Включение. При кратковременной подаче на один из входов 1 (кнопка)
- подает на один из входов/выходов 1;
- через 30 сек появляется 1 на втором выходе;
- через 30 сек. Появляется 1 на третьем выходе;
при этом 1 первом и втором выходах не снимаются
3. Выключение. При кратковременной подаче на первый вход 1 (кнопка):
- на третьем выходе 1 сменяется на 0;
- через 30 сек появляется 0 на втором выходе;
- через 30 сек появляется 0 на первом выходе.
4. Если процесс включения не закончился и была нажата кнопка - начинается процесс выключения (обратный порядок из места когда нажата кнопка)
Программу хотелось бы на С с пояснениями для даунов.
Привести значения фьюзов, т.к. заводские установки множителя частоты бывают разными.
Цену вопроса обсуждаем в личке.
- Реклама
- electroget
- Друг Кота
- Сообщения: 4651
- Зарегистрирован: Ср сен 30, 2020 16:51:47
- Откуда: РФ
Re: софтстарт
*Пошёл закупаться попкорном*
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: софтстарт
тут на форуме эту задачу уже решали я и самсусамыч (но оба на алгоритм билдере) поищи...
я завтра у себя гляну, может проекты сохранились...
Добавлено after 2 minutes 17 seconds:
даже название темы было похожим... чтото типа софтстарт для лампового усилителя...
я завтра у себя гляну, может проекты сохранились...
Добавлено after 2 minutes 17 seconds:
даже название темы было похожим... чтото типа софтстарт для лампового усилителя...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: софтстарт
У практически всех МК при подаче питания на выводах устанавливается или 1 или Z-состояние.
Для получения начального 0 придется схемотехникой побаловаться - минимум инверторы на транзисторах добавить.

Для получения начального 0 придется схемотехникой побаловаться - минимум инверторы на транзисторах добавить.
- VNS
- Говорящий с текстолитом
- Сообщения: 1624
- Зарегистрирован: Пт дек 10, 2021 12:48:46
- Откуда: Тюмень
Re: софтстарт
[uquote="Johnson1496",url="/forum/viewtopic.php?p=4235998#p4235998"]Цену вопроса обсуждаем в личке.[/uquote]
Нечего тут обсуждать… такой алгоритм не стоит и выеденного яйца.
Наверное Вы делаете усилители на продажу и потому готовы оплатить за данный алгоритм? Если так, то тогда потратьте ту сумму которую Вы готовы были заплатить, на тех кто в этом более нуждается (соседям, или кому ещё...). Ну а алгоритм работы по вашему описанию вот Вам в виде прошивки за спасибо:
Схема:
МК тактируется на заводских установках (1,2 МГц).
Алгоритм такой: При подаче питания на МК, на выходах 1, 2, 3 присутствует лог 0. При первом нажатии на кнопку устанавливается флаг включения и на выходе 1 появляется лог 1. Затем через 30 сек. проверяется флаг отключения. Если флаг отключения сброшен то включается выход 2 и тд. Если флаг отключения был поднят (была повторно нажата кнопка) во время отсчёта 30 сек., то выход 1 будет выключен. И далее по такому же принципу реализован последующий алгоритм. То есть в любой момент времени можно повторно нажать на кнопку и ход алгоритма переключится на противоположный. Включение сменится на выключение и наоборот. Чтобы визуально видеть какой режим (включение или отключение) отрабатывает, к выводу РВ3 (2) можно подключить светодиод через резистор катодом на общую шину. Светодиод светится – режим включения, погашен – режим отключения. Светодиод на схеме не указан.
Нечего тут обсуждать… такой алгоритм не стоит и выеденного яйца.
МК тактируется на заводских установках (1,2 МГц).
Алгоритм такой: При подаче питания на МК, на выходах 1, 2, 3 присутствует лог 0. При первом нажатии на кнопку устанавливается флаг включения и на выходе 1 появляется лог 1. Затем через 30 сек. проверяется флаг отключения. Если флаг отключения сброшен то включается выход 2 и тд. Если флаг отключения был поднят (была повторно нажата кнопка) во время отсчёта 30 сек., то выход 1 будет выключен. И далее по такому же принципу реализован последующий алгоритм. То есть в любой момент времени можно повторно нажать на кнопку и ход алгоритма переключится на противоположный. Включение сменится на выключение и наоборот. Чтобы визуально видеть какой режим (включение или отключение) отрабатывает, к выводу РВ3 (2) можно подключить светодиод через резистор катодом на общую шину. Светодиод светится – режим включения, погашен – режим отключения. Светодиод на схеме не указан.
Последний раз редактировалось VNS Ср май 25, 2022 17:18:22, всего редактировалось 1 раз.
- Реклама
-
Johnson1496
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Сб май 02, 2015 10:06:21
Re: софтстарт
Проблема решена. Тему можно закрыть.
- VNS
- Говорящий с текстолитом
- Сообщения: 1624
- Зарегистрирован: Пт дек 10, 2021 12:48:46
- Откуда: Тюмень
Re: софтстарт
[uquote="BOB51",url="/forum/viewtopic.php?p=4236260#p4236260"]У практически всех МК при подаче питания на выводах устанавливается или 1 или Z-состояние.[/uquote]
Вы ошиблись. При подаче питания все входы/выходы принимают только Z состояние, то есть переключены на режим входа.
всего навсего нужно вначале алгоритма перевести необходимые выводы в режим выхода и тогда на этих выводах будет лог 0.
Добавлено after 3 hours 32 minutes 24 seconds:
В данной прошивке светодиод указывающий на режимы… работает иначе. В режиме отключения он не тухнет, а мигает, а вот когда режим завершится полностью, тогда он гаснет.
Вы ошиблись. При подаче питания все входы/выходы принимают только Z состояние, то есть переключены на режим входа.
И здесь ошиблись...Для получения начального 0 придется схемотехникой побаловаться - минимум инверторы на транзисторах добавить.
Добавлено after 3 hours 32 minutes 24 seconds:
В данной прошивке светодиод указывающий на режимы… работает иначе. В режиме отключения он не тухнет, а мигает, а вот когда режим завершится полностью, тогда он гаснет.
Re: софтстарт
Кроме АВРок есть и другие МК (та же mcs51 к примеру), так что не будьте столь категоричны.
Относительно момента перехода к нулевому статусу даже для АВРок:
сначала интервал предзапуска (задержка POR), затем несколько операций - хоть и мизерное время, но таки имеется.
Так что ежли важен "абсолютный нулевой интервал" придется таки поморочиться.
Альтернатива активным каскадам - подтягивающие к gnd резисторы.

Относительно момента перехода к нулевому статусу даже для АВРок:
сначала интервал предзапуска (задержка POR), затем несколько операций - хоть и мизерное время, но таки имеется.
Так что ежли важен "абсолютный нулевой интервал" придется таки поморочиться.
Альтернатива активным каскадам - подтягивающие к gnd резисторы.
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: софтстарт
очень страный алгоритм....на мягкий пуск не похоже...
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: софтстарт
Ну, как-то так...
Upd.
Спойлер
Код: Выделить всё
//==================
#include "proc_device.h"
//==================
//==================
// 1. При подаче питания на устройство на всех выходах устанавливается 0;
// 2. Включение. При кратковременной подаче на один из входов 1 (кнопка)
// - подает на один из входов/выходов 1;
// - через 30 сек появляется 1 на втором выходе;
// - через 30 сек. Появляется 1 на третьем выходе;
// при этом 1 первом и втором выходах не снимаются
// 3. Выключение. При кратковременной подаче на первый вход 1 (кнопка):
// - на третьем выходе 1 сменяется на 0;
// - через 30 сек появляется 0 на втором выходе;
// - через 30 сек появляется 0 на первом выходе.
// 4. Если процесс включения не закончился и была нажата кнопка - начинается процесс выключения (обратный порядок из места когда нажата кнопка)
//==================
//==================
void proc_device (void)
{
static u08 _proc_device;
switch (_proc_device)
{
case PROC_DEVICE_INIT:
io_init ();
_proc_device = PROC_DEVICE_WAIT_ON; // Установка состояния-режима ожидания включения
break;
case PROC_DEVICE_WAIT_ON: // Режим ожидания включения
if (Get_Event (EV_ID_KEY_PRESSED)) // Если есть событие нажатия кнопки
{
set_proc_soft_start_on (); // то установка состояния-режима включения
_proc_device = PROC_DEVICE_ON; // Установка состояния-режима включения
}
break;
case PROC_DEVICE_ON: // Режим включения
if (Get_Event (EV_ID_KEY_PRESSED)) // Если есть событие нажатия кнопки
{
set_proc_soft_start_off (); // то установка режима выключения
_proc_device = PROC_DEVICE_OFF; // Установка состояния-режима выключения
}
break;
case PROC_DEVICE_OFF: // Режим выключения
if (Get_Event (EV_ID_START_SOFT_OFF_FINISH)) // Если есть событие завершения режима выключения
{
_proc_device = PROC_DEVICE_WAIT_ON; // то установка состояния-режима ожидания включения
}
break;
default:
break;
}
proc_soft_start ();
proc_led_1 ();
}
//==================
//==================
void io_init (void)
{
set_bit (OUT_1_DDR, OUT_1); // Пин OUT_1 - выход
set_bit (OUT_1_DDR, OUT_2); // Пин OUT_2 - выход
set_bit (OUT_1_DDR, OUT_3); // Пин OUT_3 - выход
set_bit (LED_1_DDR, LED_1);
}
//==================
//==================
static u08 _proc_soft_start;
//------------------------------------------------------------------------
void set_proc_soft_start_on (void)
{
_proc_soft_start = 1;
}
//------------------------------------------------------------------------
void set_proc_soft_start_off (void)
{
_proc_soft_start = 4;
}
//------------------------------------------------------------------------
void proc_soft_start (void)
{
static soft_timer ST_PROC_SOFT_START;
switch (_proc_soft_start)
{
case 0: // Iddle
break;
case 1: // Режим включения
out_1_on ();
led_1_on ();
set_soft_timer (ST_PROC_SOFT_START, SOFT_START_TIME_1);
_proc_soft_start = 2;
break;
case 2:
if (handle_soft_timer (ST_PROC_SOFT_START))
{
out_2_on ();
set_soft_timer (ST_PROC_SOFT_START, SOFT_START_TIME_2);
_proc_soft_start = 3;
}
break;
case 3:
if (handle_soft_timer (ST_PROC_SOFT_START))
{
out_3_on ();
_proc_soft_start = 0; // Iddle
}
break;
case 4: // Режим выключения
out_3_off ();
set_proc_led_1_run ();
set_soft_timer (ST_PROC_SOFT_START, SOFT_START_TIME_1);
_proc_soft_start = 5;
break;
case 5:
if (handle_soft_timer (ST_PROC_SOFT_START))
{
out_2_off ();
set_soft_timer (ST_PROC_SOFT_START, SOFT_START_TIME_2);
_proc_soft_start = 6;
}
break;
case 6:
if (handle_soft_timer (ST_PROC_SOFT_START))
{
out_1_off ();
set_proc_led_1_off ();
Set_Event (EV_ID_START_SOFT_OFF_FINISH, USER_EVENT);
_proc_soft_start = 0; // Iddle
}
break;
default:
break;
}
}
//==================
//==================
static u08 _proc_led_1;
static soft_timer ST_PROC_LED_1;
void set_proc_led_1_run (void)
{
led_1_on (); // Так как в этом проекте урезанный таймер и нет немедленного исполненния, то включение светодиода.
_proc_led_1 = 1;
}
void set_proc_led_1_off (void)
{
led_1_off ();
_proc_led_1 = 0;
}
void proc_led_1 (void)
{
switch (_proc_led_1)
{
case 0:
break; // Idle.
case 1:
set_soft_timer (ST_PROC_LED_1, LED_BLINK_TIME);
_proc_led_1 = 2;
break;
case 2:
if (handle_soft_timer (ST_PROC_LED_1))
{
if (!check_bit(LED_1_PORT, LED_1))
led_1_on ();
else
led_1_off ();
set_soft_timer (ST_PROC_LED_1, LED_BLINK_TIME);
}
break;
}
}
//==================
//==================
void led_1_on (void)
{
__led_1_on ();
}
void led_1_off (void)
{
__led_1_off ();
}
void led_1_switch (void)
{
__led_1_switch ();
}
//==================
//==================
void out_1_on (void)
{
__out_1_on ();
}
void out_2_on (void)
{
__out_2_on ();
}
void out_3_on (void)
{
__out_3_on ();
}
//------------------------------------------------------------------------
void out_1_off (void)
{
__out_1_off ();
}
void out_2_off (void)
{
__out_2_off ();
}
void out_3_off (void)
{
__out_3_off ();
}
//==================
Последний раз редактировалось Demiurg Пт май 27, 2022 07:49:17, всего редактировалось 2 раза.
Re: софтстарт
Похоже таки в том девайсе собака зарыта...
Оамповые схемы выходят на рабочий режим после полного прогрева катодов...
А сей процесс зависит от качества лампы, ее времени работы(старения), внешней температуры и теплообмена с окружающей средой.
Все параметры могут изменяться во времени - посему простыми задержками софтстарт обеспечить сложновато.
Надо иметь объективный показатель готовности устройства к работе(и/или его составляющих).
Возможно какой-то вариант датчика тока служебных сеток или еще чего...

Оамповые схемы выходят на рабочий режим после полного прогрева катодов...
А сей процесс зависит от качества лампы, ее времени работы(старения), внешней температуры и теплообмена с окружающей средой.
Все параметры могут изменяться во времени - посему простыми задержками софтстарт обеспечить сложновато.
Надо иметь объективный показатель готовности устройства к работе(и/или его составляющих).
Возможно какой-то вариант датчика тока служебных сеток или еще чего...
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: софтстарт
Это распространенный проект. Повторяется. С вариациями
Суть софт старта в постепенном включении анодного напряжения.
Суть софт старта в постепенном включении анодного напряжения.
Re: софтстарт
[uquote="Demiurg",url="/forum/viewtopic.php?p=4236965#p4236965"]Ну, как-то так...[/uquote]
Ужос!( Или это наш метод - из простого делать сложное? Про стиль я молчу... Хедер не нужен.
Ужос!( Или это наш метод - из простого делать сложное? Про стиль я молчу... Хедер не нужен.
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: софтстарт
Хде ужос ужос нах?! Все нормально. Выдохни.
Ты забыл. Мой принцип конструктор
Ты забыл. Мой принцип конструктор
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: софтстарт

Добавлено after 30 seconds:
конструктор
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: софтстарт
Опрос кнопки. Выполнение главного алгоритма. Светодиод индикатор работы. Описание работы устройства в теме.
Критикуя, предлагай.
Почему я так делаю? Потому что такой подход позволяет быстро создавать, редактировать и изменять проекты. Также такой подход позволяет создавать различной сложности алгоритмы. Я это уже писал не раз. Поэтому, закончим обсуждение моего подхода. Проходили уже.
Критикуя, предлагай.
Почему я так делаю? Потому что такой подход позволяет быстро создавать, редактировать и изменять проекты. Также такой подход позволяет создавать различной сложности алгоритмы. Я это уже писал не раз. Поэтому, закончим обсуждение моего подхода. Проходили уже.
-
gatavin320
- Родился
- Сообщения: 4
- Зарегистрирован: Ср ноя 03, 2021 14:38:10


