Всё верно, питанием управляет attiny13, в прнципе туда закинул прошивку и всё, не надо там ничего менять, прошивка там простецкая. Если уж очень нужно то можно подредактировать, написал для неё прошивку в среде ардуино ide, закачивается по SPI. Питание у тиньки полностью свое (автономное), построенное на lm7805, потребляет всего 17мА, частота работы 1.2Мгц от внутреннего генератора.
Пока для тестов закинул такой скетч в attiny13.
Скетч использует 792 байт (77%) памяти устройства. Всего доступно 1*024 байт.
PHP код:
int acc = 0; //детектор включения зажигания или ACC
int remote = 1; //+12в для включения усилителей
int tablet = 2; // питание планшета
int processor = 3; //питание аудиопроцессора tda7719
int usbhub = 4; //питание усб хаба и usb звуковой карты
boolean accoffsensor;
boolean tabletoffsensor;
uint32_t accoffmillis = 0; //переменная таймера
void setup() {
pinMode (acc, INPUT);
pinMode (remote,OUTPUT);
pinMode (tablet,OUTPUT);
pinMode (processor,OUTPUT);
pinMode (usbhub,OUTPUT);
}
void loop() {
//Если зажигание включено
if (acc == HIGH)
{
accon(); //выполняем команду void accon
accoffsensor = 1;
tabletoffsensor = 1;
accoffmillis=millis();
}
//Если зажигание отключено, ждем 5 сек, если отключение длиться больше 5 сек отключаем перефирию.
if (acc == LOW && accoffsensor == 1 && accoffmillis && millis()-accoffmillis > 5000)
//проверяем что зажигание отключено acc == LOW
//проверяем что питание у нас не отключено accoffsensor == 1
//считаем сколько времени прошло accoffmillis && millis()-accoffmillis > 5000
{
accoff(); //выполняем команду void accoff
}
//Если зажигание не включалось 50 часов, отключаем питание планшета.
if (acc == LOW && tabletoffsensor == 1 && accoffmillis && millis()-accoffmillis > 180000000)
//проверяем что зажигание отключено acc == LOW
//проверяем что питание планшета не отключено tabletoffsensor == 1
//считаем сколько времени прошло accoffmillis && millis()-accoffmillis > 180000000
{
void tabletoff(); //отключаем питание планшета.
}
}
void accon(){
digitalWrite(tablet, HIGH); //включаем питание планшета
delay(1000); //ждем 1 сек
digitalWrite(processor, HIGH); //включаем питание аудиопроцессора
delay(2000); //ждем 2 сек
digitalWrite(usbhub, HIGH); //включаем питание USB хаба
delay(5000); //ждем 5 сек
digitalWrite(remote, HIGH); //включаем усилители
}
void accoff(){
delay (1000); //ждем 1 сек
digitalWrite(remote, LOW); //отключаем усилители
delay (2000); //ждем 2 сек
digitalWrite(processor, LOW);// отключаем аудиопроцессор
delay (2000); //ждем 2 сек
digitalWrite(usbhub, LOW); //отключаем usb хаб
accoffsensor = 0; //говорим программе что всё отключено
}
void tabletoff() {
digitalWrite(tablet, LOW); //отключаем питание планшета
tabletoffsensor = 0; //говорим программе что планшет отключен
}