По моей теме- упростим чуть схему поскольку следить раздельно за тем подано ли питание при повороте ключа или при включении магнитолы нет смысла, то выкинем один из входов контроллера.
Это чуть сократит и код и потребление потому что не надо ногу дополнительную опрашивать.
Соответственно кусок кода упростится
PHP код:
if (in_progress == 0){
if (digitalRead(9) == HIGH && analogRead(20) < 400) mag_car_on(); //Если магнитола или зажигание включено, а питания на подсветке нету.
if (digitalRead(9) == LOW && analogRead(20) > 400) power_off(); //Если магнитола выключена и зажигание выключено, но подсветка работает.
if (digitalRead(9) == LOW && accpoweravg < 541) halt(); //Если магнитола и зажигание выключены и сел акумулятор, а отключение не выполнялось.
}
И из скетча надо убрать строку
pinMode(8, INPUT); //Radio input
НО- 7 ног задействовано- это много! Ещё одну надо убрать и можно свести плату до контроллера на attiny13. Вот тогда потребление ещё упадёт и размер уменьшится.
PS Чуть не забыл!
Кому нужна задержка включения хаба
в функции void mag_car_on()
нужно перенести строку
digitalWrite(19, LOW);
вот сюда:
if (stage == 2 && (millis() - stage_timer) > 2000) {
if (analogRead(20) > 400) {
digitalWrite(19, LOW);
stage = 0;
in_progress = 0;
и сюда
if (stage == 4 && (millis() - stage_timer) > 2000) {
digitalWrite(19, LOW);
stage = 0;
in_progress = 0;
}
PPS. Пришла идея! Можно ещё одну ногу убрать!
У нас фактически D10 и A0 одновременно не используются и требуют разной полярности!
Тоесть если нужно нажать кнопку планшета- подаём минус:
pinMode(A0, OUTPUT);
digitalWrite(A0, LOW);
если нужно сделать ресет планшета уменьшив питание подаём плюс:
pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);
А вот если ничего, то переведём ногу в третье состояние Z. Это когда на ней ни чего нету:
pinMode(A0, INPUT);
Сам тестить не буду поскольку всё спаял и всё работает, а тем кто хочет повторить стоит задуматься. Скетч поменяется совсем мало от этого.
А вот ссылка ни ибей и плату
http://www.ebay.com/itm/272096684238...%3AMEBIDX%3AIT
И на настройки Arduino IDE
http://digistump.com/wiki/digispark/...als/connecting