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

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

Всем привет!

Есть схема на ней разъем (5+, GND, Rele out)

Вторая схема "Питания" на ней этот же разъем (+5, GND, ReleIn)

Проблема в том что если на схему только что подали напряжение (реле не разу ещё не срабатывало), то

при нажатии на "кнопку" на контроллере подается сигнал на включение реле через транзистор "на схеме 1 его видно" BC547, реле с первого раза не стартует (щелкает и как будто ему питания не хватает вырубается)

Если нажимаю на "кнопку" ещё раз то реле срабатывает, (если хоть раз реле нормально включилось то потом работает как надо, все с первого раза и вкл и выкл)

Я в схемах не очень силен подскажите может что то не правильно на схеме

Могу прошивку контроллера скинуть но думаю она мало чем поможет ) тут в hardware части проблемы

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

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

vk007
Offline
Зарегистрирован: 16.06.2015

Чтобы не гадать "схема-программа" возьмите и посмотрите, что делается на базе транзистора в описываемых случаях. Если сигнал есть, но реле не включилось - схема, а если сигнал "пляшет" - программа.

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

Я же четко написал что это не программа, читайте внимательнее

Попросил помочь разобраться в схеме

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Видимо, ношкой топнуть забыл

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

Всем спасибо за очень дельные советы !

Но вопрос остался открытым

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

DESArt пишет:

Я же четко написал что это не программа, читайте внимательнее

Вообщето Ваше мнение никто не спрашивал.

Если бы Вы были способны самостоятельно найти источник проблемы, на форум бы не обращались.

Так что, если хотите получить помощь, выкладывайте скетч и схему (именно схему, а не чертеж печатной платы).

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

Чет я смотрю форум начинает портиться появляются всякие "Тролли" и "Умники"

"Вообщето Ваше мнение никто не спрашивал", а Ваше как будто ждут с нетерпением ))))

Вот без "вые**" можно же написать "Для определения проблемы выложите схему по чертежу невозможно определить" ))

или у всех какое то летнее обострение )))

 

Схема:

sadman41
Offline
Зарегистрирован: 19.10.2016

bc547 на 3А ставить и еще без резистора в базе? Ничего себе фокус-покус.

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

3А ведь на общей схеме или я не так что то понимаю?

Транзистор надо другой? и резистор на PIN?

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

т.е. должно быть как то так?!

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну, на общей или нет - я не знаю. Зачем-то же написано 3A. Скоко реле-то жрет? Резистор лично я бы поставил, но я в этих делах любитель.

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

Источник питания на 2576 преобразователе (по DataSheet) выдает до 3А поэтому и написал

Реле в DataSheet написано вроде (если я не ошибаюсь) 0.36W-0.45W

В инете схемы нашел да там действительно резюк на пине стоит, попробую поставить

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

Извиняюсь у меня там оказывается есть резистор на 1к

Вот так получается

sadman41
Offline
Зарегистрирован: 19.10.2016

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

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

Вообще эта схема должна подключаться к автомобильному аккумулятору

когда схема выключена ток идет только на преобразователь LM2576 (из него соответственно 5В)

когда схема включена ток идет через реле (12В) на повышающий стабилизатор или как их там называют (12->19в)

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

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

Мерить на базе транзистора как написал vk007 ?

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

0.2 в при не срабатывании

0.82 при срабатывании

Если в скретче написать 

#define PIN_RELAY 5
 
void setup() {
  pinMode(PIN_RELAY, OUTPUT);
 
}
 
void loop() {
  digitalWrite(PIN_RELAY, HIGH);
 
}
 
то реле сначала щелкнет (папытается включиться) и только со второго раза заведется
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Когда включится замерьте напряжение эмиттер-коллектор транзистора.....

Или напряжение на реле.....

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

база-эмиттер 0,71

база-коллектор 0,82

коллектор-эммитер 0,11

Реле 4,8 

Да хотел сразу написать но чет забыл у стабилизатора на выходе 4,9

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

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

правильная схема, только на плате резистор 1к с другой стороны от 10к стоит, что сути  не меняет.

Сама схема, если все детали правильные, глючить не должна. Напряжения соответствуют.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

trembo пишет:

Когда включится замерьте напряжение эмиттер-коллектор транзистора.....

Или напряжение на реле.....

С насыщением транзистора всё в порядке.

А когда не включилось ?  Те же напряжения?

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

на первой плате между VCC и GND, желательно прямо на выводах, нужно поставить керам. конденсатор  0,1-0.33 мкф.

Вообще, на первой плате блокировочных конденсаторов по питанию не видно, может и электролит требуется, что-то типа 100,0х16В  на входные клеммы (+5, гнд) разъема. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DESArt пишет:

т.е. должно быть как то так?!


пять миллиампер тока в базу маловато, можно смело поднять в два раза поставив резистор на 470-510 Ом
Только я еще диод в прямом включении последовательно ставлю, спасает контроллер при пробое коллектор-база

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

 у него по факту

DESArt пишет:
коллектор-эммитер 0,11

сколько будет, если увеличить ток базы вдвое?

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

При первом вкл. реле подключаются разряженные конденсаторы 4х2200мкФ, они и коротят. При следующем вкл. кондеры уже частично заряжены. Схемы то нету...

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

Pyotr пишет:

При первом вкл. реле подключаются разряженные конденсаторы 4х2200мкФ, они и коротят. При следующем вкл. кондеры уже частично заряжены. Схемы то нету...

+1

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

ВН пишет:

 у него по факту

DESArt пишет:
коллектор-эммитер 0,11

сколько будет, если увеличить ток базы вдвое?

Меньше не будет.

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

да, похоже проц рано стартует, когда еще нет 5в, для нормальной работы реле.

DESArt пишет:

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

 

--------------------------------------------------------------------

trembo пишет:
Меньше не будет.

о чем и речь, так зачем попусту напрягать ТСа

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

wdrakula пишет:

Pyotr пишет:

При первом вкл. реле подключаются разряженные конденсаторы 4х2200мкФ, они и коротят. При следующем вкл. кондеры уже частично заряжены. Схемы то нету...

+1

Очень логично что не поднялось питание.
Но тогда и процессор должен был ещё не работать, так?
И не пытаться включать какие-то реле.

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

trembo пишет:

Очень логично что не поднялось питание.
Но тогда и процессор должен был ещё не работать, так?
И не пытаться включать какие-то реле.

Как там говорите? Мозг надо включать? ))

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

просто перезагружается ИМХО

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

продолжим

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

5в реле обычно много жрут по току, т.е. может не хватать емкости 5в лита, реле просаживает питание и идет ребут проца, но почему тогда не каждый раз?

скетч, наверно таки нужен и/ или алгоритм "кнопки"

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DESArt пишет:

0.2 в при не срабатывании

0.82 при срабатывании

Если в скретче написать 

#define PIN_RELAY 5
 
void setup() {
  pinMode(PIN_RELAY, OUTPUT);
 
}
 
void loop() {
  digitalWrite(PIN_RELAY, HIGH);
 
}
 
то реле сначала щелкнет (папытается включиться) и только со второго раза заведется

а если  написать так
 

 #define PIN_RELAY 5
 
void setup() {
  pinMode(PIN_RELAY, OUTPUT);

delay(7300);
 
}
 
void loop() {
  
  digitalWrite(PIN_RELAY, HIGH);
 
}

 

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

Марка реле указана на схеме, там 70 Ом обмотка, жрет - соотв - 70 ма. Ток базы 4 ма, пусть транзистор китайский, но 70 ма он должен дать.

Так что идея Петра о просадке на заряд конденсаторов - самая здравая. Контроллер просто по BOD перегружается.

==================

Если уж "по Гамбургскому счету" ;;), то нужно идти по всей цепочке.

1. убираем контроллер и подаем на резитор базы (то, что якобы 1К) щупом просто от питания 5В, смотрим, как реле щелкает.

2.Ну и так далее. Лень расписывать. Все мы учили в своих ВУЗАх правила проведения инженерных изысканий, поочередно убираем источники влияния.

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

Я тоже грешу на кондеры, сейчас скину схему

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

Марка реле указана на схеме, там 70 Ом обмотка, жрет - соотв - 70 ма. Ток базы 4 ма, пусть транзистор китайский, но 70 ма он должен дать.

Так что идея Петра о просадке на заряд конденсаторов - самая здравая. Контроллер просто по BOD перегружается.

==================

Если уж "по Гамбургскому счету" ;;), то нужно идти по всей цепочке.

1. убираем контроллер и подаем на резитор базы (то, что якобы 1К) щупом просто от питания 5В, смотрим, как реле щелкает.

2.Ну и так далее. Лень расписывать. Все мы учили в своих ВУЗАх правила проведения инженерных изысканий, поочередно убираем источники влияния.

... опыт всё же лучше, когда у меня инженер стал перематывать советский шаговик, был сильно удивлён...
межобмоточного там не может быть по определению, при 12 вольтах то питания...
Естественно дело было в ключах )))

и да, в чем проблема написать скетч для самотестирования?

 

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

wdrakula пишет:

Марка реле указана на схеме, там 70 Ом обмотка, жрет - соотв - 70 ма. Ток базы 4 ма, пусть транзистор китайский, но 70 ма он должен дать.

Так что идея Петра о просадке на заряд конденсаторов - самая здравая. Контроллер просто по BOD перегружается.

==================

Если уж "по Гамбургскому счету" ;;), то нужно идти по всей цепочке.

1. убираем контроллер и подаем на резитор базы (то, что якобы 1К) щупом просто от питания 5В, смотрим, как реле щелкает.

2.Ну и так далее. Лень расписывать. Все мы учили в своих ВУЗАх правила проведения инженерных изысканий, поочередно убираем источники влияния.

С подключением реле всё норм. Резистор и до 3 кОм можно (от транзистора зависит).

Чтоб МК не перезагружался (он "комфортно" работает пока не замкнутся контакты реле), нужно плавно заряжать конденсаторы при первом включении (например током в 1 А) или выкинуть их совсем)) Для чего такие емкости не понятно...

Влад, не все мы учились в ВУЗах ((

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

Более полная версия

Преобразователь:

https://ru.aliexpress.com/item/E053-03-Free-shipping-150W-Power-Boost-co...

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

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

и мы пытаемся завести авто! то тогда эти емкости помогают

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

// Контакты =============================================
#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 //Датчик включения ПК

#define VOLTAGE_SENSOR_ON  210 //(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);
	pinMode(PIN_POWER_PC, OUTPUT);

	digitalWrite(PIN_RELAY, LOW);
	digitalWrite(PIN_POWER_PC, LOW);

	controller.mode = MODE_NONE;

	//Serial.begin(9600);
}

void loop() {

	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)) 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

Вот полный скретч

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

10 тыщ микрофарад подкидываемые через реле при первом его включении просаживают 12 вольт, для проверки - откинуть диод на банки

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

На LM2576 питание через диод попробуйте. 

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

Pyotr пишет:

Чтоб МК не перезагружался (он "комфортно" работает пока не замкнутся контакты реле), нужно плавно заряжать конденсаторы при первом включении (например током в 1 А) или выкинуть их совсем)) Для чего такие емкости не понятно...

Влад, не все мы учились в ВУЗах ((

1. я вообще не в курсе, что там ТС изобретает, но емкости такого размера заряжать надо через токоограничивающий резистор, это да.

1. А те, кто не учился, но занимается инженерным хобби - способные самоучки. Их правилам поиска неисправности и учить не надо - все на уровне интуиции: Отключай все по очереди, пока не станет нормально, потом подключай по одному. Ничего более сложного не дают в ВУЗе, там еще всякие вероятности отказа можно вычислять и прочую херню...

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

ТС изобретает ядерный реактор в Аутомобиль СЭР))) Шутка

Комп на 2 дин, все работает с питанием надо только разобраться ))

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pyotr пишет:

На LM2576 питание через диод попробуйте. 

ну или так

 

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

Вид сверху если интересно )

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

И в любом случае ограничение тока зарядки конденсаторов, иначе контактам реле не долго жить.
Можно через рнр транзистор или р-мосфет заряжать, а через 0.5-1 сек вкл-ть реле. 

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

1. Или вырубить нафиг эти кондеры

2. Или сделать их зарядку, я правильно понимаю?

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

wdrakula пишет:

Pyotr пишет:

Чтоб МК не перезагружался (он "комфортно" работает пока не замкнутся контакты реле), нужно плавно заряжать конденсаторы при первом включении (например током в 1 А) или выкинуть их совсем)) Для чего такие емкости не понятно...

Влад, не все мы учились в ВУЗах ((

1. я вообще не в курсе, что там ТС изобретает, но емкости такого размера заряжать надо через токоограничивающий резистор, это да.

1. А те, кто не учился, но занимается инженерным хобби - способные самоучки. Их правилам поиска неисправности и учить не надо - все на уровне интуиции: Отключай все по очереди, пока не станет нормально, потом подключай по одному. Ничего более сложного не дают в ВУЗе, там еще всякие вероятности отказа можно вычислять и прочую херню...

 

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