Токоограничивающий резистор, можно поподробнее куда его и примерно какого сопротивления поставить?
Его не просто поставить, а ещё и коммутировать отдельно нужно. Попробуйте для начала без конденсаторов. LM2576 кажется от 6-7 В работает. Уж меньше напряжение на аккуме не просядет при старте.
Токоограничивающий резистор, можно поподробнее куда его и примерно какого сопротивления поставить?
Его не просто поставить, а ещё и коммутировать отдельно нужно. Попробуйте для начала без конденсаторов. LM2576 кажется от 6-7 В работает. Уж меньше напряжение на аккуме не просядет при старте.
В том то и дело, для LM не проблема, вот проблема для компа которому нужно 19v в пике 3a
Я уже собрал всю схему и ПК прежде чем подумал что лучше было бы сделать на Raspberry PI ))))
При тестах я подключаю все это дело к БП обычному от 220 (12в 2А)
Мне чудится или вы так и продолжаете тестить на этом БП? Если да, то занимаетесь х-ей. Мелкоблок на китайские амперы и автоаккумулятор это очень разные источники энергии. ИМХО.
В коде нашел 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;
}
}
Ещё один был вопрос на него так никто и не ответил
>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)
Ещё один был вопрос на него так никто и не ответил
>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)
Не прокатит. Совсем холодно.
Могу позже нарисовать на р-мосфете вместо реле.
Ресет подтянуть к +5В резистором 10 кОм. (5-15 кОм)
Подключите всю схему к аккуму, хоть от шуруповерта. Он может выдавать десятки А в отличие от БП на 2 китайских А. Просадки быть не должно. А если уж будет (??), то тогда схему менять.
Ещё один был вопрос на него так никто и не ответил
>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)
Не прокатит. Совсем холодно.
Могу позже нарисовать на р-мосфете вместо реле.
Ресет подтянуть к +5В резистором 10 кОм. (5-15 кОм)
Подключите всю схему к аккуму, хоть от шуруповерта. Он может выдавать десятки А в отличие от БП на 2 китайских А. Просадки быть не должно. А если уж будет (??), то тогда схему менять.
Тест в Авто: включается все с первого раза это радует, НО кондеров которые я впендюрил на 10тыс мкф не хватает
т.е. я глушу авто, потом завожу иногда вырубает комп, иногда не вырубает, в общем я пришел к выводу что это бесполезно, да и 3А только на ПК + 2А на всю остальную лабуду как то накладно... да и греется все очень даже не слабо (Сам проц ПК, Усилитель, LM, Преобразователь думаю тоже будет греться) такая неплохая грелка )))
что будет в +30 даже и представить боюсь там поплавится наверное все нафиг ))
буду делать ПК на Raspberry PI 3
Спасибо всем кто подсказывал и советовал, обязательно учту при следующих разработках
Pyotr Если будет время и желание скидывай схему я хоть гляну как это делается
Позже создам новую ветку где буду выкладывать схемы сборки пк в авто
Pyotr Если будет время и желание скидывай схему я хоть гляну как это делается
Да схема то простейшая. С учетом готовой платы с мин. доработками.
С1 и R3 паять на место диода. VT2 вместо реле. R1 1мОм и более вместо 1к. VT1 можно заменить на транз. с меньшим усилением (до 100 или около). С1 побольше (1 мкФ) - медленнее будет открываться р-мосфет.
При подаче высокого уровня через базу ток ~4.5 мкА. Коллекторный ~450 мкА, который будет заряжать С1, плавно открывая мосфет - сопротивление канала будет уменьшаться от бесконечности до нескольких мОм. Это длится доли сек и нагреться мосфет не успеет.
Токоограничивающий резистор, можно поподробнее куда его и примерно какого сопротивления поставить?
Его не просто поставить, а ещё и коммутировать отдельно нужно. Попробуйте для начала без конденсаторов. LM2576 кажется от 6-7 В работает. Уж меньше напряжение на аккуме не просядет при старте.
Токоограничивающий резистор, можно поподробнее куда его и примерно какого сопротивления поставить?
Его не просто поставить, а ещё и коммутировать отдельно нужно. Попробуйте для начала без конденсаторов. LM2576 кажется от 6-7 В работает. Уж меньше напряжение на аккуме не просядет при старте.
В том то и дело, для LM не проблема, вот проблема для компа которому нужно 19v в пике 3a
Я уже собрал всю схему и ПК прежде чем подумал что лучше было бы сделать на Raspberry PI ))))
Попробую отключить кондеры...
На модуле стоит С на 1000 мкФ. Думаю этого достаточно. И подключен модуль проводками, а это уже сопротивление - ограничение тока.
И диод на LM.
Как то так? выделено синим
Конечно нет) Диод, надеюсь, шоттки над резистором 100 Ом?
Чтоб схему сразу не городить, попробуй без конденсаторов.
Нет!!! диод там обычный 1n5822 не шотки )
Конечно нет) Диод, надеюсь, шоттки над резистором 100 Ом?
Чтоб схему сразу не городить, попробуй без конденсаторов.
Как отключу кондеры отпишусь, но это будет только завтра
100 ом это очень много, достаточно Ом 5
посмотрел марку диода, да пять ом самое то
Нет!!! диод там обычный 1n5822 не шотки )
Дык там ток через него под 4 А!! Нужен шоттки на ток более 10 А. Кремний будет греться как утюг. Даже на радиаторе.
Нашел схему в инете там резистор на земле висит
Затра попробую
1. Отключу диод
2. Отключить кондеры вообще
3. Поставлю диод Шоттки ))
4. Подключить их через резистор
И отпишусь, Всем спасибо за советы
Нашел схему в инете там резистор на земле висит
Затра попробую
1. Отключу диод
2. Отключить кондеры вообще
3. Поставлю диод Шоттки ))
4. Подключить их через резистор
И отпишусь, Всем спасибо за советы
1. Подключай, а не отключай.
2. Да
3. 5822 всеж слабоват для тех токов, что писал
4. Нет. Еще раз - через резистор только заряд. Работа без резистора.
068
pinMode(PIN_RELAY, OUTPUT); d
igitalWrite(PIN_RELAY, LOW);069
pinMode(PIN_POWER_PC, OUTPUT);
digitalWrite(PIN_POWER_PC, LOW);лучше так писать, назначили выход и сразу указали состояние
потом, все что тут выше написали справедливо, но попробуйте начать с самого простого
в конце сетапа, после назначения и установки выходов, напиште delay(1000); и проверьте как работает
068
pinMode(PIN_RELAY, OUTPUT); d
igitalWrite(PIN_RELAY, LOW);069
pinMode(PIN_POWER_PC, OUTPUT);
digitalWrite(PIN_POWER_PC, LOW);лучше так писать, назначили выход и сразу указали состояние
потом, все что тут выше написали справедливо, но попробуйте начать с самого простого
в конце сетапа, после назначения и установки выходов, напиште delay(1000); и проверьте как работает
Эту идею я в посте 33 предложил )))
Все таки я вернулся сегодня и вот что я успел проверить,
В схеме есть разъем X1 так называемый он подает напряжение напрямую на остальную часть схемы исключая реле (в частности на конденсаторы)
Так вот если замкнуть этот разъем то соответственно конденсаторы зарядятся и включается схема сразу с первой попытки
Правильно было написано что кондеры замыкают схему
Скретч ещё не правил, проверю позже но думаю это не поможет т.к. перед нажатием на кнопку МК уже в запущеном состоянии в режиме MODE_NONE (по скретчу)
С косяком разобрались
Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется
буду искать решение и вклиниваться как то в существующую схему...
так мы это уже все поняли, что конденсаторы засаживают цепь 12 вольт )))
Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется
буду искать решение и вклиниваться как то в существующую схему...
Если я не надоел ещё...
Прежде отключи конденсаторы, подключи преобразователь, нагрузку и проверь как работает. При работе стартера особенно.
Не хочется выпаивать, просто перереж две дорожки
может и не поможет. Это способ разобраться не слишком ли рано включается "кнопка".
буду искать решение и вклиниваться как то в существующую схему...
перережте дорожку и поставьте диод шоттки между +12в Х1 и входными конденсаторами ЛМки.
просадка по питаню тут должна исчисляться миллисекундами, если по входу +12 нет больших дросселей
Нет!!! диод там обычный 1n5822 не шотки )
1N5822 - это диод Шоттки, 3A 40V
При тестах я подключаю все это дело к БП обычному от 220 (12в 2А)
Мне чудится или вы так и продолжаете тестить на этом БП? Если да, то занимаетесь х-ей. Мелкоблок на китайские амперы и автоаккумулятор это очень разные источники энергии. ИМХО.
В коде нашел 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 БП
вот собственно скретч исправленный
Теперь можно заняться замыканием кондеров...
может и не поможет. Это способ разобраться не слишком ли рано включается "кнопка".
буду искать решение и вклиниваться как то в существующую схему...
перережте дорожку и поставьте диод шоттки между +12в Х1 и входными конденсаторами ЛМки.
просадка по питаню тут должна исчисляться миллисекундами, если по входу +12 нет больших дросселей
Можете схемку нарисовать небольшую куда что подключать? я чет не понял ((
Теперь буду разбираться с зарядкой конденсаторов т.к. перепаивать и перетравливать плату мне не хочется
буду искать решение и вклиниваться как то в существующую схему...
Если я не надоел ещё...
Прежде отключи конденсаторы, подключи преобразователь, нагрузку и проверь как работает. При работе стартера особенно.
Не хочется выпаивать, просто перереж две дорожки
Если я не надоел ещё... - конечно нет
Перерезал, пробывал, просадка получается большой и ПК вырубается к сожалению без кондеров никак
Такая схема зарядки прокатит?
Транзюк BC574
Ещё один был вопрос на него так никто и не ответил
>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)
Такая схема зарядки прокатит?
Транзюк BC574
Ещё один был вопрос на него так никто и не ответил
>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)
Не прокатит. Совсем холодно.
Могу позже нарисовать на р-мосфете вместо реле.
Ресет подтянуть к +5В резистором 10 кОм. (5-15 кОм)
Подключите всю схему к аккуму, хоть от шуруповерта. Он может выдавать десятки А в отличие от БП на 2 китайских А. Просадки быть не должно. А если уж будет (??), то тогда схему менять.
Такая схема зарядки прокатит?
Транзюк BC574
Ещё один был вопрос на него так никто и не ответил
>> Да и ещё вопрос если Reset на МК висит в воздухе как бы это вроде считается не нормально куда его и через че воткнуть? или без разницы? (при работе МК в перезагрузку не уходит)
Не прокатит. Совсем холодно.
Могу позже нарисовать на р-мосфете вместо реле.
Ресет подтянуть к +5В резистором 10 кОм. (5-15 кОм)
Подключите всю схему к аккуму, хоть от шуруповерта. Он может выдавать десятки А в отличие от БП на 2 китайских А. Просадки быть не должно. А если уж будет (??), то тогда схему менять.
Спасибо, проверю сегодня на авто отпишусь
самое простое вместо перемычки Х1 воткнуть резистор 51 ом 2 ватта, МЛТ
В общем так:
Тест в Авто: включается все с первого раза это радует, НО кондеров которые я впендюрил на 10тыс мкф не хватает
т.е. я глушу авто, потом завожу иногда вырубает комп, иногда не вырубает, в общем я пришел к выводу что это бесполезно, да и 3А только на ПК + 2А на всю остальную лабуду как то накладно... да и греется все очень даже не слабо (Сам проц ПК, Усилитель, LM, Преобразователь думаю тоже будет греться) такая неплохая грелка )))
что будет в +30 даже и представить боюсь там поплавится наверное все нафиг ))
буду делать ПК на Raspberry PI 3
Спасибо всем кто подсказывал и советовал, обязательно учту при следующих разработках
Pyotr Если будет время и желание скидывай схему я хоть гляну как это делается
Позже создам новую ветку где буду выкладывать схемы сборки пк в авто
ПК - Raspberry PI 3
Усилитель - TDA8571J
Питание - LM2576
буду делать ПК на Raspberry PI 3
только используй AllWinner то есть оранж пи, при тех же скоростях - дешевле в разы.
Я ее постоянно использую во всяких поделках, очень хорошо сделанные платы. И подделок не бывает, так как китай уже ;) ;) ;)
буду делать ПК на Raspberry PI 3
только используй AllWinner то есть оранж пи, при тех же скоростях - дешевле в разы.
Я ее постоянно использую во всяких поделках, очень хорошо сделанные платы. И подделок не бывает, так как китай уже ;) ;) ;)
Да Raspberry есть уже )) лежит без дела )))
Pyotr Если будет время и желание скидывай схему я хоть гляну как это делается
Да схема то простейшая. С учетом готовой платы с мин. доработками.
С1 и R3 паять на место диода. VT2 вместо реле. R1 1мОм и более вместо 1к. VT1 можно заменить на транз. с меньшим усилением (до 100 или около). С1 побольше (1 мкФ) - медленнее будет открываться р-мосфет.
При подаче высокого уровня через базу ток ~4.5 мкА. Коллекторный ~450 мкА, который будет заряжать С1, плавно открывая мосфет - сопротивление канала будет уменьшаться от бесконечности до нескольких мОм. Это длится доли сек и нагреться мосфет не успеет.
Да, и не забуть дорожку перерезать (от 5В до обмотки реле)- реле то почему-то взял 5 В, хотя логично было на 12 В ставить.
Позже создам новую ветку где буду выкладывать схемы сборки пк в авто
ПК - Raspberry PI 3
Усилитель - TDA8571J
Питание - LM2576
Это не смущает?
Схема усилителя на микросхеме TDA8571J
Технические характеристики усилителя: