Показать сообщение отдельно
Старый 02.07.2016, 13:46   #495
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

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

PHP код:
 if (in_progress == 0){
   if (
digitalRead(9) == HIGH &&  analogRead(20) < 400mag_car_on(); //Если магнитола или зажигание включено, а питания на подсветке нету.
   
if (digitalRead(9) == LOW && analogRead(20) > 400power_off();       //Если магнитола выключена и зажигание выключено, но подсветка работает.
   
if (digitalRead(9) == LOW && accpoweravg 541halt();               //Если магнитола и зажигание выключены и сел акумулятор, а отключение не выполнялось.
 

И из скетча надо убрать строку
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
Миниатюры
Нажмите на изображение для увеличения
Название: Новый точечный рисунок.jpg
Просмотров: 633
Размер:	76.8 Кб
ID:	44128  

Последний раз редактировалось T_r_D; 02.07.2016 в 14:35.
T_r_D вне форума   Ответить с цитированием