Не срабатывает реле с первого раза помогите !

Pyotr
Offline
Зарегистрирован: 12.03.2014

DESArt пишет:

Токоограничивающий резистор, можно поподробнее куда его и примерно какого сопротивления поставить?

Его не просто поставить, а ещё и коммутировать отдельно нужно. Попробуйте для начала без конденсаторов. LM2576 кажется от 6-7 В работает. Уж меньше напряжение на аккуме не просядет при старте.

DESArt
Offline
Зарегистрирован: 26.02.2017

Pyotr пишет:

DESArt пишет:

Токоограничивающий резистор, можно поподробнее куда его и примерно какого сопротивления поставить?

Его не просто поставить, а ещё и коммутировать отдельно нужно. Попробуйте для начала без конденсаторов. LM2576 кажется от 6-7 В работает. Уж меньше напряжение на аккуме не просядет при старте.

 

В том то и дело, для LM не проблема, вот проблема для компа которому нужно 19v в пике 3a 

Я уже собрал всю схему и ПК прежде чем подумал что лучше было бы сделать на Raspberry PI ))))

Попробую отключить кондеры...

Pyotr
Offline
Зарегистрирован: 12.03.2014

На модуле стоит С на 1000 мкФ. Думаю этого достаточно. И подключен модуль проводками, а это уже сопротивление - ограничение тока.

И диод на LM.

DESArt
Offline
Зарегистрирован: 26.02.2017

 

Как то так? выделено синим

Pyotr
Offline
Зарегистрирован: 12.03.2014

Конечно нет) Диод, надеюсь, шоттки над резистором 100 Ом?

Чтоб схему сразу  не городить, попробуй без конденсаторов.

DESArt
Offline
Зарегистрирован: 26.02.2017

Нет!!! диод там обычный 1n5822 не шотки )

DESArt
Offline
Зарегистрирован: 26.02.2017

Pyotr пишет:

Конечно нет) Диод, надеюсь, шоттки над резистором 100 Ом?

Чтоб схему сразу  не городить, попробуй без конденсаторов.

 

Как отключу кондеры отпишусь, но это будет только завтра

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

100 ом это очень много, достаточно Ом 5
посмотрел марку диода, да пять ом самое то

DESArt
Offline
Зарегистрирован: 26.02.2017

Pyotr
Offline
Зарегистрирован: 12.03.2014

DESArt пишет:

Нет!!! диод там обычный 1n5822 не шотки )

Дык там ток через него под 4 А!! Нужен шоттки на ток более 10 А. Кремний будет греться как утюг. Даже на радиаторе.

DESArt
Offline
Зарегистрирован: 26.02.2017

Нашел схему в инете там резистор на земле висит

Затра попробую

1. Отключу диод

2. Отключить кондеры вообще

3. Поставлю диод Шоттки ))

4. Подключить их через резистор

И отпишусь, Всем спасибо за советы

Pyotr
Offline
Зарегистрирован: 12.03.2014

DESArt пишет:

Нашел схему в инете там резистор на земле висит

Затра попробую

1. Отключу диод

2. Отключить кондеры вообще

3. Поставлю диод Шоттки ))

4. Подключить их через резистор

И отпишусь, Всем спасибо за советы

1. Подключай, а не отключай.

2. Да

3. 5822 всеж слабоват для тех токов, что писал

4. Нет. Еще раз - через резистор только заряд. Работа без резистора.

ВН
Offline
Зарегистрирован: 25.02.2016

 

068     pinMode(PIN_RELAY, OUTPUT);  digitalWrite(PIN_RELAY, LOW);
069     pinMode(PIN_POWER_PC, OUTPUT); digitalWrite(PIN_POWER_PC, LOW);

лучше так писать, назначили выход и сразу указали состояние

потом, все что тут выше написали справедливо, но попробуйте начать с самого простого

в конце сетапа, после назначения и установки выходов,  напиште delay(1000);   и проверьте как работает

 

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

ВН пишет:

068     pinMode(PIN_RELAY, OUTPUT);  digitalWrite(PIN_RELAY, LOW);
069     pinMode(PIN_POWER_PC, OUTPUT); digitalWrite(PIN_POWER_PC, LOW);

лучше так писать, назначили выход и сразу указали состояние

потом, все что тут выше написали справедливо, но попробуйте начать с самого простого

в конце сетапа, после назначения и установки выходов,  напиште delay(1000);   и проверьте как работает

Эту идею я в посте 33 предложил )))

DESArt
Offline
Зарегистрирован: 26.02.2017

Все таки я вернулся сегодня и вот что я успел проверить, 

 

 

В схеме есть разъем X1 так называемый он подает напряжение напрямую на остальную часть схемы исключая реле (в частности на конденсаторы)

Так вот если замкнуть этот разъем то соответственно конденсаторы зарядятся и включается схема сразу с первой попытки

Правильно было написано что кондеры замыкают схему

Скретч ещё не правил, проверю позже но думаю это не поможет т.к. перед нажатием на кнопку МК уже в запущеном состоянии в режиме MODE_NONE (по скретчу)

С косяком разобрались

Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется

буду искать решение и вклиниваться как то в существующую схему...

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

так мы это уже все поняли, что конденсаторы засаживают цепь 12 вольт )))

Pyotr
Offline
Зарегистрирован: 12.03.2014

DESArt пишет:

Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется

буду искать решение и вклиниваться как то в существующую схему...

Если я не надоел ещё...

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

Не хочется выпаивать, просто перереж две дорожки

ВН
Offline
Зарегистрирован: 25.02.2016

DESArt пишет:
Скретч ещё не правил, проверю позже но думаю это не поможет т.к. перед нажатием на кнопку МК уже в запущеном состоянии в режиме MODE_NONE (по скретчу)

может и не поможет. Это способ разобраться не слишком ли рано включается "кнопка".

DESArt пишет:
Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется

буду искать решение и вклиниваться как то в существующую схему...

перережте дорожку и поставьте диод шоттки между +12в Х1 и входными конденсаторами ЛМки.

просадка по питаню тут должна исчисляться миллисекундами, если по входу +12 нет больших дросселей 

triac
triac аватар
Offline
Зарегистрирован: 03.05.2018

DESArt пишет:

Нет!!! диод там обычный 1n5822 не шотки )

1N5822 - это диод Шоттки, 3A 40V

bwn
Offline
Зарегистрирован: 25.08.2014

DESArt пишет:

При тестах я подключаю все это дело к БП обычному от 220 (12в 2А) 

Мне чудится или вы так и продолжаете тестить на этом БП? Если да, то занимаетесь х-ей. Мелкоблок на китайские амперы и автоаккумулятор это очень разные источники энергии. ИМХО.

DESArt
Offline
Зарегистрирован: 26.02.2017

В коде нашел 2 ошибки из за чего на разных режимах (1 бп, 2 бп) то запускалось то нет

Почему то команда controller.button_power_status = bool(!digitalRead(PIN_POWER_BUTTON)); всегда возвращала False

Если кто мне объяснит почему буду признателен

и второй момент

когда был подключен 1 БП то на "сенсоре" было 1.5 вольта, когда подключаем 2 бп то на "сенсоре" 0в

это пол беды, в коде была ошибка так как ARef у меня 5в, а мы считаем что 3в на "сенсоре" это ПК включен то значение 210 было неверным #define VOLTAGE_SENSOR_ON 210 //(2.7 вольта включен, меньше выключен) т.к. у нас получается 1024/5(ARef) ~ 204,8 это 1 вольт

Соттветственно при исправлении на значение 500 мы исправили ошибку с 1 или 2 БП

вот собственно скретч исправленный

// Контакты =============================================
#define PIN_TX 2 //Данные TX
#define PIN_RX 3 //Данные RX

#define PIN_LED          3  //Светодиод
#define PIN_POWER_BUTTON 4  //Кнопка включения всей системы
#define PIN_RELAY        5  //Включение реле питания
#define PIN_POWER_PC     8  //Контакт замыкания кнопки ПК
#define PIN_SENSOR_PC    A5 //Датчик включения ПК

                               //687 = 2.7v , 0-343 - 0 до 1.5 вольта  1024/5 = 1 вольт
#define VOLTAGE_SENSOR_ON  500 //(2.7 вольта включен, меньше выключен)

#define MODE_NONE 0 //Режим ожидания действия
#define MODE_SYS_BUTTON_DOWN 1 //Режим нажатой кнопки (системной*)
#define MODE_HARD_SYSTEM_OFF 2 //Режим жесткого выключения системы

#define MODE_SYSTEM_ON 3 //Включение системы
#define MODE_SYSTEM_ON_POWER_PC 4 //Включение ПК

#define MODE_SYSTEM_OFF 5 //Выключение системы
//=======================================================


class Controller
{
public:
	Controller()
	{
		mode = MODE_NONE;
		thread_timer = 0;
		timer_button_down = 0;
		
		button_power_status = false;
		button_power_down = false;

		DATA_POWER_pc = false;
		DATA_POWER_system = false;

		WAIT_pc_off = false;
		WAIT_pc_on = false;
	};

	byte mode;
	//Таймер задержки при режимах кроме NONE
	unsigned long thread_timer;
	
	/* СИСТЕМНАЯ КНОПКА ================================================================== */
	unsigned long timer_button_down; //Таймер нажатия кнопки
	bool button_power_status;  //Auto: кнопка питания (системная*) определяется автоматически
	bool button_power_down;    //Переключатель (используется для запоминания времени нажатия)
    /* =================================================================================== */

	bool DATA_POWER_pc;     //Auto: Питание на системнике включено или нет
	bool DATA_POWER_system; //Питание включено в системе или нет

	bool WAIT_pc_on; //Ожидание включения ПК
	bool WAIT_pc_off; //Ожидание выключения ПК
};

Controller controller;

void setup() {
	//Устанавливаем пины
	pinMode(PIN_POWER_BUTTON, INPUT);
	pinMode(PIN_SENSOR_PC, INPUT);

	pinMode(PIN_RELAY, OUTPUT);
	digitalWrite(PIN_RELAY, LOW);

	pinMode(PIN_POWER_PC, OUTPUT);
	digitalWrite(PIN_POWER_PC, LOW);

	controller.mode = MODE_NONE;

	delay(2000);
}

void loop() {

	if (digitalRead(PIN_POWER_BUTTON) == HIGH)
	{
		controller.button_power_status = false;
	}
	else
	{
		controller.button_power_status = true;
	}
	//controller.button_power_status = bool(!digitalRead(PIN_POWER_BUTTON)); //Нажата системная кнопка или нет (LOW = нажата)
	controller.DATA_POWER_system   = bool(digitalRead(PIN_RELAY)); //Проверка состояния основного питания
	controller.DATA_POWER_pc       = bool((analogRead(PIN_SENSOR_PC) > VOLTAGE_SENSOR_ON)); //Включен ПК или нет (определяется датчиком)
	
	//Если мы в режиме NONE и системная кнопка нажата переходим в режим нажатой кнопки
	if ((controller.mode == MODE_NONE) && (controller.button_power_status == true)) controller.mode = MODE_SYS_BUTTON_DOWN;

	switch (controller.mode)
	{
    
	//Режим ожидания ----------------------------------------------------------------------
	case MODE_NONE: 
	{
		//Если режим кнопки нажат (кнопку нажимали)
		if (controller.button_power_down)
		{
			//Была нажата кнопка высчитываем время
			controller.timer_button_down = millis() - controller.timer_button_down;

			if ((controller.timer_button_down > 100) && (controller.timer_button_down < 5000))
			{
			    //Определяем статус питания ПК и делаем действия
				if (controller.DATA_POWER_pc == false)
				{
					controller.WAIT_pc_on = false;
					controller.thread_timer = millis();
					controller.mode = MODE_SYSTEM_ON;
				}
				else
				{
					controller.thread_timer = millis();
					controller.WAIT_pc_off = false;
					controller.mode = MODE_SYSTEM_OFF;
				}
			}

			//Жестко вырубаем систему
			if (controller.timer_button_down > 5000) controller.mode = MODE_HARD_SYSTEM_OFF;

			//Возвращаем статус нажатой кнопки в исходное состояние
			controller.button_power_down = false;
			
		}

	}
	break; 

    //Нажали кнопку -------------------------------------------------------------------------
	case MODE_SYS_BUTTON_DOWN: 
	{ 
		
		//Если статус кнопки = false
		if (!controller.button_power_down)
		{
			//Запоминаем время нажатия кнопки
			controller.timer_button_down = millis();
			//Устанавливаем кнопку в режим нажатия
			controller.button_power_down = true;
			
		}

		//Если статус кнопки "Отпущена" то переходим в режим MODE_NONE (там будет подсчет времени нажатой кнопки)
		if (!controller.button_power_status) controller.mode = MODE_NONE;

	}
	break;

	//Жесткое выключение системы ------------------------------------------------------------
	case MODE_HARD_SYSTEM_OFF: 
	{ 
		digitalWrite(PIN_RELAY, LOW);
		digitalWrite(PIN_POWER_PC, LOW);
		controller.mode = MODE_NONE;
	}
	break;

	//Включение системы ---------------------------------------------------------------------
	case MODE_SYSTEM_ON:
	{
		//Пытаемся включить систему
		if (!controller.DATA_POWER_system) digitalWrite(PIN_RELAY, HIGH);

		//Что то пошло не так система не включилась спустя 3 секунды
		if ((controller.DATA_POWER_system == false) && ((millis() - controller.thread_timer) > 3000))
		{
			digitalWrite(PIN_RELAY, LOW);
			controller.mode = MODE_NONE;
		}
		else
		{
			controller.mode = MODE_SYSTEM_ON_POWER_PC;
			controller.thread_timer = millis();
		}
		
	}
    break;

	//Включение ПК
	case MODE_SYSTEM_ON_POWER_PC:
	{
		//Система питания дала сбой переходим в стандартный режим
		if (!controller.DATA_POWER_system) controller.mode = MODE_NONE;

        //Система питания запущена
		if ((millis() - controller.thread_timer > 2000) && (!controller.WAIT_pc_on))
		{

			digitalWrite(PIN_POWER_PC, HIGH);
			controller.thread_timer = millis();
			controller.WAIT_pc_on = true;

		}

		//Если питание ПК включилось
		if ((controller.DATA_POWER_pc == true) && (controller.WAIT_pc_on))
		{
			digitalWrite(PIN_POWER_PC, LOW);
			controller.mode = MODE_NONE;
		}

		//В течении 10 сек ПК не запустился что то пошло не так
		if ((controller.WAIT_pc_on) && (millis() - controller.thread_timer > 10000)) controller.mode = MODE_HARD_SYSTEM_OFF;

	}
	break;

	//Выключение системы --------------------------------------------------------------------
	case MODE_SYSTEM_OFF:
	{
		//Если ПК Включен
		if (controller.DATA_POWER_pc == true)
		{
			if (millis() - controller.thread_timer < 500) digitalWrite(PIN_POWER_PC, HIGH);
			if (millis() - controller.thread_timer > 1500)
			{
				digitalWrite(PIN_POWER_PC, LOW);
				controller.WAIT_pc_off = true;
			}
		}

		//Если ПК выключен
		if (controller.DATA_POWER_pc == false) 
		{
			if (controller.WAIT_pc_off)
			{
				controller.thread_timer = millis();
				controller.WAIT_pc_off = false;
				return;
			}
			else
				if (millis() - controller.thread_timer > 3000)
				{
					//Выключаем основное питание
					digitalWrite(PIN_RELAY, LOW);
					controller.mode = MODE_NONE; //Переходим в обычный режим
				}
		}

		if (millis() - controller.thread_timer > 120000) controller.mode = MODE_HARD_SYSTEM_OFF;
 
	}
	break;
	}
	

}

 

DESArt
Offline
Зарегистрирован: 26.02.2017

Теперь можно заняться замыканием кондеров...

DESArt
Offline
Зарегистрирован: 26.02.2017

ВН пишет:

DESArt пишет:
Скретч ещё не правил, проверю позже но думаю это не поможет т.к. перед нажатием на кнопку МК уже в запущеном состоянии в режиме MODE_NONE (по скретчу)

может и не поможет. Это способ разобраться не слишком ли рано включается "кнопка".

DESArt пишет:
Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется

буду искать решение и вклиниваться как то в существующую схему...

перережте дорожку и поставьте диод шоттки между +12в Х1 и входными конденсаторами ЛМки.

просадка по питаню тут должна исчисляться миллисекундами, если по входу +12 нет больших дросселей 

Можете схемку нарисовать небольшую куда что подключать? я чет не понял ((

DESArt
Offline
Зарегистрирован: 26.02.2017

Pyotr пишет:

DESArt пишет:

Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется

буду искать решение и вклиниваться как то в существующую схему...

Если я не надоел ещё...

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

Не хочется выпаивать, просто перереж две дорожки

 

Если я не надоел ещё... - конечно нет

Перерезал, пробывал, просадка получается большой и ПК вырубается к сожалению без кондеров никак

DESArt
Offline
Зарегистрирован: 26.02.2017

Такая схема зарядки прокатит?

Транзюк BC574

 

Ещё один был вопрос на него так никто и не ответил

>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)

Pyotr
Offline
Зарегистрирован: 12.03.2014

DESArt пишет:

Такая схема зарядки прокатит?

Транзюк BC574

 

Ещё один был вопрос на него так никто и не ответил

>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)

Не прокатит. Совсем холодно.
Могу позже нарисовать на р-мосфете вместо реле. 

Ресет подтянуть к +5В резистором 10 кОм. (5-15 кОм)

Подключите всю схему к аккуму, хоть от шуруповерта. Он может выдавать десятки А в отличие от БП на 2 китайских А. Просадки быть не должно. А если уж будет (??), то тогда схему менять.

DESArt
Offline
Зарегистрирован: 26.02.2017

Pyotr пишет:

DESArt пишет:

Такая схема зарядки прокатит?

Транзюк BC574

 

Ещё один был вопрос на него так никто и не ответил

>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)

Не прокатит. Совсем холодно.
Могу позже нарисовать на р-мосфете вместо реле. 

Ресет подтянуть к +5В резистором 10 кОм. (5-15 кОм)

Подключите всю схему к аккуму, хоть от шуруповерта. Он может выдавать десятки А в отличие от БП на 2 китайских А. Просадки быть не должно. А если уж будет (??), то тогда схему менять.

Спасибо, проверю сегодня на авто отпишусь

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

самое простое вместо перемычки Х1 воткнуть резистор 51 ом 2 ватта, МЛТ

DESArt
Offline
Зарегистрирован: 26.02.2017

В общем так:

Тест в Авто: включается все с первого раза это радует, НО кондеров которые я впендюрил на 10тыс мкф не хватает

т.е. я глушу авто, потом завожу иногда вырубает комп, иногда не вырубает, в общем я пришел к выводу что это бесполезно, да и 3А только на ПК + 2А на всю остальную лабуду как то накладно... да и греется все очень даже не слабо (Сам проц ПК, Усилитель, LM, Преобразователь думаю тоже будет греться) такая неплохая грелка )))

что будет в +30 даже и представить боюсь там поплавится наверное все нафиг ))

буду делать ПК на Raspberry PI 3

Спасибо всем кто подсказывал и советовал, обязательно учту при следующих разработках

Pyotr  Если будет время и желание скидывай схему я хоть гляну как это делается

 

Позже создам новую ветку где буду выкладывать схемы сборки пк в авто

ПК - Raspberry PI 3

Усилитель - TDA8571J

Питание - LM2576

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DESArt пишет:

буду делать ПК на Raspberry PI 3

только используй AllWinner то есть оранж пи, при тех же скоростях - дешевле в разы.

Я ее постоянно использую во всяких поделках, очень хорошо сделанные платы. И подделок не бывает, так как китай уже ;) ;) ;)

 

DESArt
Offline
Зарегистрирован: 26.02.2017

wdrakula пишет:

DESArt пишет:

буду делать ПК на Raspberry PI 3

только используй AllWinner то есть оранж пи, при тех же скоростях - дешевле в разы.

Я ее постоянно использую во всяких поделках, очень хорошо сделанные платы. И подделок не бывает, так как китай уже ;) ;) ;)

 

 

Да Raspberry есть уже )) лежит без дела )))

Pyotr
Offline
Зарегистрирован: 12.03.2014

DESArt пишет:

 

Pyotr  Если будет время и желание скидывай схему я хоть гляну как это делается

Да схема то простейшая. С учетом готовой платы с мин. доработками.

С1 и R3 паять на место диода. VT2 вместо реле. R1 1мОм и более вместо 1к. VT1 можно заменить на транз. с меньшим усилением (до 100 или около). С1 побольше (1 мкФ) - медленнее будет открываться р-мосфет.

При подаче высокого уровня через базу ток ~4.5 мкА. Коллекторный ~450 мкА, который будет заряжать С1, плавно открывая мосфет - сопротивление канала будет уменьшаться от бесконечности до нескольких мОм. Это длится доли сек и нагреться мосфет не успеет.

 

Pyotr
Offline
Зарегистрирован: 12.03.2014

Да, и не забуть дорожку перерезать (от 5В до обмотки реле)- реле то почему-то взял 5 В, хотя логично было на 12 В ставить.

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

DESArt пишет:

Позже создам новую ветку где буду выкладывать схемы сборки пк в авто

ПК - Raspberry PI 3

Усилитель - TDA8571J

Питание - LM2576

Это не смущает?

Схема усилителя на микросхеме TDA8571J

Технические характеристики усилителя:

  • U pаб = 14.4B(8-18B);
  • Rн = 4 Ом;
  • I вых.пик = 7,5А;
  • P тип = 40 Вт;
  • F = 20... 20000 ГЦ;
  • К.г. = 10% (при 20 Вт).