PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Питание (http://pccar.ru/forumdisplay.php?f=173)
-   -   Блок питания NEXUS7-2012,2013 (или любого другого планшета) (http://pccar.ru/showthread.php?t=23236)

oleg707 17.07.2016 01:41

Цитата:

Сообщение от Az0m@ (Сообщение 364812)
залил... пока норм. единственное про плей паузу чет не догнал..

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

Az0m@ 24.07.2016 00:29

Цитата:

Сообщение от oleg707 (Сообщение 364819)
у меня само начинает играть при включении зажигания с того места, на котором выключилось. Но ты звуковую поставь для начала.

поставил -))) останавливать останавливается... но вот не начинает играть при включении.. если не трудно подскажи где в настройках копаться -))))

Az0m@ 04.08.2016 00:35

Вложений: 3
вопщем вроде как все у меня начало работать стабильно. авто - kia rio
из изменений: С1 - 220мкФ, с4 - 3200мкФ... плюс в проводке авто поставил перемычку через диод на замке с положения "стартер" на АСС... ибо штатно при включении "стартер" все доп.приборы отключаются, в том числе и ГУ.

и еще совсем чуть чуть изменил код в блоке включения зажигания:
PHP код:

  //             -----------------=========ВКЛЮЧИЛИ ЗАЖИГАНИЕ=============----------------  
  
if (15.5 U_acc_real && U_acc_real >= UaccONorOFF && flagACC == && flagAKB == //проверка напруги АСС и АКБ при флаге ACC = 0 
  

    
flagACC 1
    
pauseTimeACC millis(); 
    
pauseTimeAKB millis(); 
     
    
lcd.clear(); //очистка экрана 
  





  if (
millis() - pauseTimeACC >= 500 && flagACC == 1// пауза 0,5c после включения ACC и потом делать следующ(пока включено ACC): 
  

    
digitalWrite(PlanshBATpin1);  //включаем питание на батарею планшета (in2) 
     
  

   
  if (
millis() - pauseTimeACC >= 800 && flagACC == 1// пауза 0.8c после включения ACC и потом делать следующ(пока включено ACC): //через 0,8с после включения ACC включаем экран, включаем питание  на видеорегистратор. 
  

    
digitalWrite(II_KIW_pin_POGOpin1); //включаем +5V (POGO(USB) нужно для распознавания планшетом признака зарядки. ( можно подавать на +5В USB кабеля (для тимуровской прошивки или если не используется датчик холла) 
    
digitalWrite(REGISTRATORpin1); // включаем питание  на видеорегистратор 
  

     
  if (
millis() - pauseTimeACC >= 2000 && flagACC == 1)//через 1с после включения ACC включаем экран (вЫключаем минус на упр SLEEP), выход REM(если больше 12в), Включаем хаб (подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб) 
  

    
digitalWrite(OTGpin1); //включаем минус на Y-OTG  (включается  звуковая карта) 
    
digitalWrite(SLEEPpin0); //включаем экран = вЫключаем минус на упр SLEEP 
    
digitalWrite(HUBpin0); //Включаем хаб = подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб 
    
if( flagREM == 1  && flagAKB == ){digitalWrite(REMpin1);}    // включаем выход REM 

     
  


в остальном работает без нареканий. у меня планшет 2012 3г 32гига, стоит прошивка аутодроид 1.2 + пикогапсы + карлаунчер и плеер поверамп.
хаб стоит AirTone ATH-04P... по внешнему виду как тут, чип увы не узрел... проверю как смогу. а так работает без нареканий
звуковая стоит на основе PCM2704

Единственная пока небольшая проблема.. это помехи жсм модуля планшета, которая отдается на звуковую карту. пока не знаю как одолеть... то ли за планшет фольгу присобачить.. то ли саму звуковух обернуть.

jonikus81 04.08.2016 06:31

Az0m@, вариант с фольгой за планшетом не очень, у меня лично стал хуже ловить GPS, Wifi и 4g. А вот экранирование звуковухи и проводов от нее вполне может полететь.

dzyatel 18.08.2016 16:42

Oleg707, проверьте личные сообщения, есть интерес кмвашему блоку питания

mercurio 25.08.2016 01:44

А вы как автор насколько оцениваете сложность переделки схемы для использования вместо одного KIW - два Meanwell nsd15-12?

jonikus81 25.08.2016 07:12

mercurio, я не автор, но схему нужно будет менять полностью. Не зная тонкостей гальванической развязки я наступил на сотню граблей. Разделение земли имеет огромный плюс и кучу мелких минусов. Плюс, это конечно чистейшее питание и никаких наводок, щелчков, пуков и бзыков по звуку. Минус - это придется "учить" работать ардуину, хаб и планшет без земли, то есть придется внедрять либо реле, либо оптроны, а так же изолировать всю периферию от земли. Хитрая земля может проскочить от любого девайса и тогда эффекта гальванической развязки мы лишаемся. Аналогичной схемы как у Олега но с гальваникой я не встречал и поэтому сам занялся разработкой. Схему Олега считаю самой универсальной, гибкой и многофункциональной, поэтому слежу за его работой и с его позволения беру его наработки. :read:

oleg707 25.08.2016 12:22

Цитата:

Сообщение от mercurio (Сообщение 367855)
А вы как автор насколько оцениваете сложность переделки схемы для использования вместо одного KIW - два Meanwell nsd15-12?

jonikus81 правильно написал, переделать не сложно, но надо ставить оптроны и перерисовывать всю печатку.
А смысл?! У меня на пцм 2407 щелчков и прочего нет на максимальной громкости усилителя. На уровне ресивера за 1000$. Цена решения = 5$ за зуковуху + хаб прикрутить, если флешка есть.


Чем лучше Meanwell nsd15-12 против KIW3312s ? ( кроме гальваники)


ЗЫ
Я даже больше скажу, я сейчас катаюсь на БП 4й версии с последней прошивкой от 5й - и вот всё просто работает и таак лень ставить 5ю, лежащую на полочке. Ну как лень, сильная нехватка времени, а там работает- не лезь. И это уже с ноунейм хабом, который питается от БП.

jonikus81 25.08.2016 12:55

oleg707, я вот после всех мучений все таки решил второй собирать на KIWе, у NSD нужно обязательно ставить огромный кондер, так как при включении стартера (просадке ниже 9 вольт) NSDшка тупо выключается. А мой нексус 2013 LTE уж больно придирчив к падениям напруги, да и бывали случаи когда NSDшки - 1шт не хватало одному нексусу, грешу на LTE, где то читал, что даже без симки он ищет сети и усиливает сигнал для поиска, что приводит к увеличению нагрузки на БП.

mercurio 25.08.2016 14:49

Здесь преимущества meanwell очень простые и они исключительно для меня играют роль - их достать проще. Привезут за день, а KIW может за месяц-два. А если отбросить вопрос стоимости и гальванической развязки и заменить на nsd, то можно будет использовать основную часть схемотехники и прошивки, не перестраивая с использованием оптронов и т.д.?

oleg707 25.08.2016 19:39

Цитата:

Сообщение от mercurio (Сообщение 367875)
Здесь преимущества meanwell очень простые и они исключительно для меня играют роль - их достать проще. Привезут за день, а KIW может за месяц-два. А если отбросить вопрос стоимости и гальванической развязки и заменить на nsd, то можно будет использовать основную часть схемотехники и прошивки, не перестраивая с использованием оптронов и т.д.?

из китая - 2 недели. и то и то.
По вопросу - конечно нельзя будет использовать основную часть схемотехники и прошивки! Только брать за основу. Потом менять прошивку соответственно железу.
И еще момент: в блоке питания 3,4,5 версий используется 2канала +5,0В и +3,8В, а в нсд - один канал при немаленьких размерах.
Вывод - ну его нафиг:be:

jonikus81 26.08.2016 10:04

Цитата:

Сообщение от mercurio (Сообщение 367875)
Здесь преимущества meanwell очень простые и они исключительно для меня играют роль - их достать проще. Привезут за день, а KIW может за месяц-два. А если отбросить вопрос стоимости и гальванической развязки и заменить на nsd, то можно будет использовать основную часть схемотехники и прошивки, не перестраивая с использованием оптронов и т.д.?

Если решили все таки на NSD, то рекомендую искать сразу либо релюшки мало потребляющие для ардуины, либо мощные P канальные мосфеты. С мосфетами более сложнее, но эффективнее как по размерам так и по потреблению. Я себе не поленился спаял мелкие ключики на P мосфетах.
Управляет +5 и +12 вольтами, от ардуины и бортовым напряжением соответсвенно, по датащиту мосфета можно пустить около 10А, что для нас даже очень гуд.
http://s14.radikal.ru/i187/1608/41/8c2fdfdc174c.jpg

mercurio 29.08.2016 05:54

Цитата:

Сообщение от jonikus81 (Сообщение 367918)
Если решили все таки на NSD

Не осилю переделку. Буду пытаться повторить как есть.

jonikus81 05.09.2016 12:52

Всем привет, вот еще один минус всех NSDшек, это температура. Оставил я свой бп на панели и под прямыми солнечными лучами нсдшка нагрелась до состояния (рука не держит вообще), Соответвенно пошли глюки по напруге, скачки от 3 до 5 вольт, хотя выставленно 4,7. Планшет загрузиться не смог изза нехватки. Занес домой планшет, думал горячий и тоже глючит, нифига! пашет гад!

oleg707 05.09.2016 16:01

отсюда http://elchupanibrei.livejournal.com/27443.html
Универсальная библиотека LiquidCrystal_I2C на базе расширителя портов PCF8574

Данная библиотека плод месячного курения манула на Hitachi HD4478U и ему подобным контролерам (S6A0069, KS0066U, NT3881D, LC7985, ST7066, SPLC780, WH160xB, AIP31066). Без проблем работает с модулем продаваемом на китайских площадках.


Внешний вид китайского модуля


Принципиальна схема китайского модуля


Полностью универсальна - можно переназначать пины если у вас не стандартный модуль (данной фичи нет ни у одной копипасты из сети). Я постарался привести как можно больше примеров. Написал сумбурно, но пока так. Будет время добавлю про все плюшки подробнее.

На Github и в сети сплошная копипаста с небольшими вариациями. Даже обычная LiquidCrystal, идущая вместе с Arduino IDE не блещет лаконичностью, и до версии среды 1.6.11 имела баг в функции установки позиции курсора для экранов 20x4. Просто задумайтесь - баг жил в дистрибьютиве 5 лет!!! Чем больше я понимаю в програмировании тем сильнее мое разочарование в Arduino.

Забирать тут.
https://github.com/enjoyneering/LiquidCrystal_I2C
прямая ссылка https://github.com/enjoyneering/Liqu...c9e24292d5f421
прошил, правда с бубном. работает. потестю - выложу новый скетч.

oleg707 09.09.2016 18:25

Вложений: 1
люди, а 32u4 в TQFP бывает вообще?
а всё, нашел ATMEGA32U4-AU 44-TQFP
денег чтот много хотят, проще ардуину купить, так TQFP на ардуинах только 328p видел
Вложение 44736

oleg707 11.09.2016 21:54

Вложений: 2
доработка Бп5 версии
Добавлена подтяжка по I2C
тестово поднял питание до 4,0В на батарее планшета, покатаюсь - посмотрю, потом в схему докину.
Перешел на новую I2C библиотеку (ВЗЯТА https://github.com/enjoyneering/LiquidCrystal_I2C или в аттаче
Ложить библитоеку как всегда в libraries.
У меня лежит тут d:\777\Soft\arduino\arduino-1.6.11\libraries\LiquidCrystal_I2C\

Вложение 44759 печатка

Вложение 44758 библиотека, устаревшая, на сайте автора есть новее и стабильнее UDP: Слегка обновил библиотеку (добавил больше коментариев) и слегка оптимизировал главую функцию. Должно быть на пару тактов процессора быстрее. Так же повысил стабильность работы с ESP8266


скетч для новой библиотеки
PHP код:

//ver i72 ( чем больше цифра, тем новее)
// дата правки 16.09.16.109 

// для 5й версии блока питания ( для 4й тоже подходит, только нужно поменять местами в программе A0 и A1 в строках 136-144)
//ТЕСТОВАЯ!!! 
// скетч проверен и записан на версии ардуино IDE 1,6,11 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Перед прошивкой скетча убедитесь в наличии нужных библиотек,например  d:\777\Soft\arduino\arduino-1.6.11\libraries\LiquidCrystal_I2C\

/* _______Сделано__________________________________________________
вывод информации на внешний дисплей по I2C, c версии 63 включительно поменяна библиотека вывода на экран! ВЗЯТА https://github.com/enjoyneering/LiquidCrystal_I2C  и http://elchupanibrei.livejournal.com/27443.html
активный вотчдог,
программная защита its716G(statepin)-тестово,
умное мигание встроенным светодиодом,
усреднение замеров по напряжению ACC и AKB.
информация на дисплее обновляется не постоянно, а каждые 350мс ( 0,35 с).
Оптимизирован для планшета без батареи. Подходит для оставленной батареи также.
Управление REM: если напруга батареи больше 11.8 В, то включаем еще и усилитель звука (выход REM) /но включаем его только на 30мин, если не заведены. После заводки счетчик обнуляется.
________________________________________________________________
 потребление блока по 12 вольтам, без планшета - при 10В +30 и +15 включены - 0,02 А  
                                        - при 12В +30 и +15 включены  - 0,092-0,1 А
________________________________________________________________
поведение встроенного светодиода
    низкое напряжение АКБ авто                                         - коротко моргает
    нормальное напряжение АКБ авто, ACC выключено.                     - быстро моргает
    нормальное напряжение, включено ACC, рабочий режим.                - медленно моргает */

 
//***************************************************************************************************************************************************
// Массив режимов работы светодиода
byte modes[] = {
  
0B00000000//Светодиод выключен
  
0B11111111//Горит постоянно
  
0B00111111//Мигание по 0.8 сек
  
0B00000001//Короткая вспышка раз в секунду 
  
0B00000101//Две короткие вспышки раз в секунду  
  
0B00010101//Три короткие вспышки раз в секунду
  
0B01010101  //Частые короткие вспышки (4 раза в секунду) 
};

uint32_t msms1 0
uint8_t  blink_loop 0;
uint8_t  blink_mode 0;

//***************************************************************************************************************************************************
 
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <avr/wdt.h> //Чтобы использовать функции Watchdog нужно подключить к проекту стандартную библиотеку ( https://geektimes.ru/post/255800/ )

LiquidCrystal_I2C lcd(0x27162); // set the LCD address to 0x27 for a 16 chars and 2 line display для 0x27

//LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, 4, 5, 6, 16, 11, 12, 13, 14, POSITIVE);  // для newE  описание библиотеки http://elchupanibrei.livejournal.com/27443.html#t23347

float UakbONorOFF 12.01;// в 155 строке ==  if ((15.5 > U_acc_real >= UaccONorOFF) && flagACC == 1)  {UakbONorOFF = 11.5;}  else {UakbONorOFF = 11.9;} 
float UaccONorOFF 11.7;//11.1 // напряжение порога сработки асс

/*ноги ардуины*/
int SAMOZAPITKApin 9//управление самозапиткой блока питания IN4
//1 = есть самозапитка; 0 = нет самозапитки
int PlanshBATpin 6//      включить 1 канал KIW            ..... управление питания БАТАРЕИ планшета через управляющую ногу IN2-5pin
//0 = нет питания; 1 = есть питание ( БАТАРЕИ планшета)
int II_KIW_pin_POGOpin 2//           включить 2 канал KIW    управление SS2 выходом питания  +5V (2 канал kiw3312s) на пого пин(или USB), чтоб планшет думал, что идет зарядка
//0 = нет 5V на POGO; 1 = есть 5V на POGO
int OTGpin 12//управление транзюком OTG Q1
//1 = есть масса на OTG; 0 = нет массы на OTG
int SLEEPpin 10//управление транзюком сна VT4 (на датчик холла))
//1 = потух экран(есть масса на пине сна); 0 = штатная работа планшета (нет массы на пине сна)
int HUBpin 11//управление транзюком питания хаба
// 0-есть питание, 1 - нет питания
int REMpin 7//  выход сигнала REM (+12v) (IN3), на плате распаяно.
//0 = нет 12В на выходе REM; 1 = есть 12В на выходе REM
int REGISTRATORpin 4//выход 12В для работы видеорегистратора (D4 -IN1)
//пины состояния ITS
int STATEpinI 5//логический вход для отслеживания аварийной ситуации ITS716G(724G)(питание KIW3312s-out2 и регистратор-out1) 0 = норма
int STATEpinII 8//логический вход для отслеживания аварийной ситуации ITS716G(724G)(выход REM-out3 и самозапитка БП-out4 )1 = авар. сит.

/*логические переменные, используемые в коде*/
int flagACC 0//признак включенного зажигания
int flagAKB 0// признак заряженной батареи
int flagREM 0// признак включенного выхода на усилитель звука (REM)
int flagHALL 0//флаг отработки морга экрана при холодном старте( flagHALL = 1 экран можно включать и выключать, датчик холла на планшете инициализировался)
/*счётчики времени*/
unsigned long eventTime 0;
unsigned long pauseTimeACC 0;
unsigned long pauseTimeAKB 0;
unsigned long pauseDisplay 0// таймер для обновления информации на дисплее, чтобы не мерцал
unsigned long pauseTimeHALL 120000// время паузы перед морганием экрана (для датчика холла)(равен времени загрузки планшета плюс секунд 10-20)= 2мин
int timeAfterACC 5000// время после выключения зажигания, после истечения которого вырубается экран, хаб, y-otg
unsigned long TimerREM 0// отсчет до выключения выхода REM при заглушенном авто и включенном зажигании.3600000 = час 
unsigned long timeBeforeRemOff 1800000//1800000=30мин. Время, оставшееся до отключения выхода REM после включения зажигания и незаводки машины. 207 строчка.
void setup() //настройки
{
  
// Serial.begin(115200); 
  //*************************test*************
 
wdt_disable(); //Отключение таймера watchdog
 
 //lcd.begin(16, 2); для newE
 
lcd.init();                      // initialize the lcd занимает почти секунду  для 0x27
    
  
  
pinMode(STATEpinIINPUT);
  
pinMode(STATEpinIIINPUT);
  
pinMode(PlanshBATpinOUTPUT);
  
pinMode(SAMOZAPITKApinOUTPUT);
  
pinMode(OTGpinOUTPUT);
  
pinMode(SLEEPpinOUTPUT);
  
pinMode(II_KIW_pin_POGOpinOUTPUT);
  
pinMode(HUBpinOUTPUT);
  
pinMode(13OUTPUT); //светодиодик на плате ардуины
  
pinMode(REMpinOUTPUT);
  
pinMode(REGISTRATORpinOUTPUT);

  
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета
  
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
  
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
  
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
  
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
  
digitalWrite(REMpin0); // // выключаем выход REM
  
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
  
pauseTimeACC millis(); // сброс времени для отсчета отключения самозапитки
  
pauseTimeAKB millis();
  
   
wdt_enable (WDTO_8S); // Запуск таймера watchdog:   Для тестов не рекомендуется устанавливать значение менее 8 сек. Таймер будет считать ровно столько, сколько указано в константе. По истечении этого времени произойдет перезагрузка.
                                                                                         /* Возможные значения для константы
                                                                                            WDTO_15MS
                                                                                            WDTO_30MS
                                                                                            WDTO_60MS
                                                                                            WDTO_120MS
                                                                                            WDTO_250MS
                                                                                            WDTO_500MS
                                                                                            WDTO_1S
                                                                                            WDTO_2S
                                                                                            WDTO_4S
                                                                                            WDTO_8S
                                                                                         */
//delay(100); //для инициализации ЛСД-дисплея, с 13 сент 16 библиотеку пофиксили и это строка не нужна
}













void loop()
{



                                                                                                                          
//int Uacc = analogRead (A0); //Читаем напругу с делителя ACC R4-R5
                                                                                                                          //int Uakb = analogRead (A1); //Читаем напругу с делителя R2-R3
  
long Uacc 0//Читаем напругу с делителя ACC R4-R5 и вычисляем среднее арифметическое
  
long Uakb 0////Читаем напругу с делителя R2-R3 и вычисляем среднее арифметическое 
    
for (int i=0i<100; ++i) { // делаем 100 замеров. 1000 замеров = примерно секунда.
        
Uacc Uacc analogRead(A0); // замер для 5й версии
        
Uakb Uakb analogRead(A1); // замер для 5й версии
        //Uacc = Uacc + analogRead(A1); // замер для 4й версии
       // Uakb = Uakb + analogRead(A0); // замер для 4й версии
        
    
}
    
Uacc Uacc/100;
    
Uakb Uakb/100;
   
    
  
  
  
  
  
  
float U_acc_real 0.0 Uacc 0.01537;//(5 / 1023.0 * 3.136); //Вычисляем реальное напряжение +ACC на входе делителя (A0) 3.1189=поправка  делителя.(коэф деления) 0.2-падение на диоде
  
float U_akb_real Uakb 0.015330;//(5 / 1023.0 * 3.145); //Вычисляем реальное напряжение +30 на входе делителя (A1)
//Serial.println(U_akb_real); //  вывод напруги АКБ в ком порт для калибровки.

  // кусок кода ниже нужен для того, чтобы при включении  и сразу выключении ACC при полностью выключенном планшете(холодный старт) экран мог тухнуть по сигналу датчика холла.
  
if (millis() > pauseTimeHALL && flagHALL == || millis() > 10000 && flagACC == 1) {
    
flagHALL 1//проверка отсчета при холодном старте при включении  и сразу выключении ACC
  
}
          
/* проверка, выключили ли мы зажигание или просто стартуем */
 
if ((U_akb_real U_acc_real) >)//проверка, выключили ли мы зажигание или просто стартуем (1 - выключили заж, 0 - стартуем), нужно для того, чтобы не моргать экраном при стартере и быстро тушить экран при выключении зажигания.
          
{timeAfterACC 500;} //         1 - выключили зажигание.  ЕСЛИ +15 ПРОПАДАЕТ ВО ВРЕМЯ СТАРТА, ТО ВМЕСТО 500 НАДО 5000 или вообще убрать этот блок if-else.
          
else {timeAfterACC 5000;} //   0 - заводим машину (стартуем).



  //  ------------========================== блок ACC ========================-----------------------------------------------------------------------------


  //             -----------------=========ВКЛЮЧИЛИ ЗАЖИГАНИЕ=============---------------- 
  
if ((15.5 U_acc_real) && (U_acc_real >= UaccONorOFF) && flagACC == && flagAKB == //проверка напруги АСС и АКБ при флаге ACC = 0
  
{
    
flagACC 1;
    
pauseTimeACC millis();
    
pauseTimeAKB millis();
    
    
lcd.clear(); //очистка экрана
  
}




  if (
millis() - pauseTimeACC >= 1000 && flagACC == 1// пауза 1c после включения ACC и потом делать следующ(пока включено ACC):
  
{
    
digitalWrite(PlanshBATpin1);  //включаем питание на батарею планшета (in2)
    
  
}
  
  if (
millis() - pauseTimeACC >= 1600 && flagACC == 1// пауза 1,6c после включения ACC и потом делать следующ(пока включено ACC): //через 0,8с после включения ACC включаем экран, включаем питание  на видеорегистратор.
  
{
    
digitalWrite(II_KIW_pin_POGOpin1); //включаем +5V (POGO(USB) нужно для распознавания планшетом признака зарядки. ( можно подавать на +5В USB кабеля (для тимуровской прошивки или если не используется датчик холла)
    
digitalWrite(REGISTRATORpin1); // включаем питание  на видеорегистратор
  
}
    
  if (
millis() - pauseTimeACC >= 2200 && flagACC == 1)//через 2,2с после включения ACC включаем экран (вЫключаем минус на упр SLEEP), выход REM(если больше 12в), Включаем хаб (подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб)
  
{
    
digitalWrite(SLEEPpin0); //включаем экран = вЫключаем минус на упр SLEEP
    
digitalWrite(OTGpin1); //включаем минус на Y-OTG  (включается  звуковая карта) // тестово, для более устойчивого определения перифирии.
    
digitalWrite(HUBpin0); //Включаем хаб = подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб
    
if( flagREM == 1  && flagAKB == ){digitalWrite(REMpin1);} // включаем выход REM

    
  
}
   



//----------------------------------------------обработка статуса выхода REM----------------------------------------------------------  
//если напруга батареи больше 12В, то включаем еще и усилитель звука (выход REM) /но включаем его только на 1 час, если не заведены.

    
if (U_akb_real >= 11.8 && flagACC == && flagREM == 0){ flagREM 1;TimerREM     millis();} //если подзаряжен акб и включили зажигание  - ВКЛЮЧАЕМ REM
    
if (U_akb_real >= 11.8 && flagACC == && ( millis() - TimerREM >= timeBeforeRemOff )) {flagREM ;}  //  если кончилось время обратного отсчета - статус рем - 2.
    
if (U_akb_real 13.7){ (flagREM 1);TimerREM millis();} // если завели машину, - ВКЛЮЧАЕМ REM, и постоянно обнуляем обратный отсчет вырубания РЕМ.
    
if (U_akb_real >= 11.8 && flagREM == && flagACC == 0){ flagREM 0;} // если восстановилось напряжение при выключенном зажигании - обнуляем статус РЕМ.
    
if (U_akb_real 11.8 && flagACC == 1){ flagREM 2;} //если подсел акб при включенном зажигании - статус рем - 2.
if( flagREM == ||  flagREM == 2){digitalWrite(REMpin0);}  // выключаем выход REM
    
//----------------------------------------------конец отработки выхода REM-----------------------------------------------------------


  //-----------------=========ВЫКЛЮЧИЛИ ЗАЖИГАНИЕ=============----------------

  
if (U_acc_real UaccONorOFF && flagACC == 1)
  {
    
flagACC 0;  //Выключили зажигание
    
digitalWrite(REMpin0);
  
flagREM 0// выключаем флаг выхода REM
    
pauseTimeACC millis();
    
pauseTimeAKB millis();
    
flagREM 0;// выключаем флаг выхода REM
    
   
lcd.noBacklight();// тушим подсветку экрана для newE и для 0x27
   // в 409 строке включение подсветки LCD дисплея
   
    
lcd.clear(); //очистка экрана
  
}
 
  if (
millis() - pauseTimeACC >= timeAfterACC && flagACC == 0//пауза 5c или 0.5c после вЫключения ACC и потом делать следующ://через 5с после выключения зажигания вЫключаем минус на Y-OTG, ВЫключаем хаб, вЫключаем +5V (POGO(USB)), тушим экран (если прошло 2мин со старта БП)
  
{
    if (
millis() - pauseTimeACC >= 3000 && flagACC == 0// пауза 3с чтобы не пукал усилитель
                        
{
                        
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
                        
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
                        
digitalWrite(HUBpin1); // ВЫключаем хаб = подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб
                        
}
   
    if (
flagHALL == 1)
    {
      
digitalWrite(SLEEPpin1); //включаем минус на SLEEP (7 pin PW1)при этом тухнет экран (если прошло 2 минуты с момента включения ардуины)
    
}
    else
    {
      
digitalWrite(SLEEPpin0);
    }
  }

  
//  -------------------------========================= блок АКБ ==========================-------------------------------------------------------------------------------

  
if (U_acc_real >= UaccONorOFF)   {UakbONorOFF 11.5;}  else {UakbONorOFF 11.9;} //при включении зажигания напряжение самовырубания станет 11,5 вместо 11,9
 

  
if (((U_akb_real UakbONorOFF) && flagAKB == 1)||(U_akb_real >15.5))// ситуация, когда сел при работе ардуины аккумулятор, либо сел в процессе работы или простоя автомобиля, либо перезарядка > 15.5В
  
{
    
flagAKB 0;//спустили флаг батареи
    
flagACC 0;
    
pauseTimeACC millis();
    
pauseTimeAKB millis();
    
UakbONorOFF 11.9;
    
lcd.clear(); //очистка экрана
  
}

  if ((
15.5 U_akb_real) && ((U_akb_real >= UakbONorOFF) && flagAKB == 0)) //проверка +30 на перезаряд >15.5В, и больше заданного в 266 строке, и флага акб 
  
{
    if (
millis() - pauseTimeACC >= 2000 && flagAKB == 0){
    
digitalWrite(SAMOZAPITKApin1);  // включаем самозапитку через 2с
    
flagAKB 1;} //подняли флаг батареи
  
}

  if (
millis() - pauseTimeAKB >= 20000 && flagAKB == 0// если севший аккумулятор //через 20с вЫключаем питание на батарею планшета и вырубаем сам БП.
  
{
    
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)
    
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
    
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
    
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
    
digitalWrite(REMpin0); // // выключаем выход REM
    
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
    
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
    
delay (5000);              // задержка для аппаратного выключения
  
}

  if (
flagAKB == && flagACC == 0)  //ситуация, когда норм акб и выключено зажигание (ACC)
  
{
    if ((
millis() - pauseTimeAKB )>= 86400000 && flagAKB == 1// если прошло 24 часа, как выключили ACC // пауза  (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
    

      
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)//(батарея планшета))
    
}

    if ((
millis() - pauseTimeAKB) >= 172800000 && flagAKB == 1// если давно выключили ACC     ) (2суток = 172800000))     //(самозапитка для регистратора)
    
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
      
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом система ПОЛНОСТЬЮ обесточивается
      
delay (5000);              // задержка для аппаратного выключения
    
}
  }

 
  
  

  



 
//*
//******************************************отслеживания аварийной ситуации ITS716G********************************************************************************************************************************************************************************
   
      
    //отслеживания аварийной ситуации ITS716G канал 1 (питание KIW3312s-out2 и регистратор-out1) 0 = норма  1 = авар. сит.  //тогда моргаем 13 ногой код "1"
    //отслеживания аварийной ситуации ITS716G канал 2 (выход REM-out3 и самозапитка БП-out4 )0 = норма  1 = авар. сит.  //тогда моргаем 13 ногой  код "2"
    
if(SAMOZAPITKApin==|| PlanshBATpin==||REMpin==|| REGISTRATORpin ==1// если проц включал любой канал ITS
              
{
                if(
STATEpinI == 0)             {   // и если пин защиты показал аварию
                                                                                                             
for (int i=0<= 300i++)   { //тогда моргаем 13 ногой код "1"  10 минут, если они прошли и асс ВКЛ, тогда еще раз и еще по кругу, пока неисправность не уйдёт
                                                                                                                                           
digitalWrite(131); delay(500); digitalWrite(130); delay(1493);
                                     
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)
                                     
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
                                     
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
                                     
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
                                     
digitalWrite(REMpin0); // // выключаем выход REM
                                     
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
                                     
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
                                     
wdt_reset(); //Сброс таймера watchdog
                                                                                                                                           
}
                                   } ;
    if(
STATEpinII == 0)             {   // и если пин защиты показал аварию
                                                                                                             
for (int i=0<= 150i++)   { //тогда моргаем 13 ногой ногой код "2" 10 минут, если они прошли и асс ВКЛ, тогда еще раз и еще по кругу, пока неисправность не уйдёт
                                                                                                                                           
digitalWrite(131); delay(500); digitalWrite(130); delay(493); digitalWrite(131); delay(500); digitalWrite(130); delay(1493);
                                     
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)
                                     
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
                                     
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
                                     
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
                                     
digitalWrite(REMpin0); // // выключаем выход REM
                                     
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
                                     
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
                                     
wdt_reset(); //Сброс таймера watchdog
                                                                                                                                           
}
                                   } ;
                               }




  
//*/
//**************************************************************************************************************************************************************************************************************************  


//******************************************индикация светодиодом и задержка вывода на дисплей********************************************************************************************************************************************************************************
   
ms millis();
  
// Событие срабатывающее каждые 125 мс
  
if ( ( ms ms1 ) > 125 || ms ms1 ) {
    
ms1 ms;
    
// Режим светодиода ищем по битовой маске
    
if (  blink_mode << (blink_loop 0x07) ) digitalWrite(13HIGH);
    else  
digitalWrite(13LOW);
    
blink_loop++;
  }
  
  
  
  
   
// Событие срабатывающее каждые 250 мс
  
if ( ( ms pauseDisplay ) > 350 || ms pauseDisplay )
  { 
    
pauseDisplay ms;
          
//_____________________________________________СООБЩЕНИЕ НА ДИСПЛЕЙ____________________________________________________________



int H = (millis()/3600000);
int M = ((millis()-(H*3600000))/60000); 
//int S = (((millis()/1000)-(H*3600))- (M*60));
if ((((millis())-(H*3600000))- (M*60000)) < 200 ){lcd.clear(); }//очистка экрана


 
if (flagACC == 1){lcd.backlight();}// для newE и для 0x27  
 // в 256 строке выключение подсветки LCD дисплея


//вывод времени работы
  
lcd.setCursor(00);
  
lcd.print((millis() )/60000); // вывод кол-ва минут работы блока ( 1 строка 1 символ)
  
  
lcd.setCursor(70);
  
lcd.print(flagAKB); // вывод флага AKB
  
  
lcd.setCursor(80);
  
lcd.print(flagACC); // вывод флага АСС
  
  
lcd.setCursor(90);
  
lcd.print(flagREM); // вывод флага rem
  
lcd.setCursor(110);
  
lcd.print(U_acc_real); // вывод напряжения АСС
  
  //lcd.setCursor(5,1);
  //-------------------2 строка---------------------------------
  
lcd.setCursor(01);
  
unsigned long TIMER = (  pauseTimeAKB  172800000 millis()  )/60000// вывод кол-ва минут, оставшиеся до выключения блока (когда выключено АСС)
  
lcd.print(TIMER);
  
lcd.setCursor(51);
  
lcd.print(( millis() - TimerREM )/60000); //
  
lcd.setCursor(111);
  
lcd.print(U_akb_real); // вывод напряжения АКБ
  
  /* так выглядит индикация на дисплее
  
   
   ================
  |1      111 0.000|          1 строка   *   вывод кол-ва минут работы блока                 *флаг АКБ*флаг АСС*флаг REM*  вывод напряжения АСС
  |616  10    14.50|    
   ================           2 строка   *   кол-во минут, оставшиеся до выключения блока    *     millis() - TimerREM, минут        *    вывод напряжения АКБ    
   
   
*///__________________________________________________________________________________________________________________________
  
}
    
    
    
    
  
  
// blink_mode = modes[3];
  
  
if (blink_mode != modes[5] || blink_mode != modes[5]) 
  {
  if (
flagAKB == ){blink_mode modes[3];}                 // индикация напруги батареи на ардуинине.- низкое напряжение АКБ авто - коротко моргает
  
if (flagAKB == && flagACC == 0) {blink_mode modes[6];} //- нормальное напряжение АКБ авто, ACC выключено.                     - быстро моргает
  
if (flagAKB == && flagACC == 1) {blink_mode modes[2];} //- нормальное напряжение, включено ACC, рабочий режим.                - медленно моргает
      
  

 
/* **********************************************************************************************************
    0B00000000, //Светодиод выключен blink_mode = modes[0]; 
    0B11111111, //Горит постоянно blink_mode = modes[1];      
    0B00111111, //Мигание по 0.8 сек  blink_mode = modes[2]; - нормальное напряжение, включено ACC, рабочий режим.
    0B00000001, //Короткая вспышка раз в секунду  = modes[3]; - низкое напряжение АКБ авто
    0B00000101, //Две короткие вспышки раз в секунду 
    0B00010101, //Три короткие вспышки раз в секунду
    0B01010101  //Частые короткие вспышки (4 раза в секунду)= blink_mode = modes[6]; - нормальное напряжение АКБ авто, ACC выключено.
   */
//**********************************************************************************************************


wdt_reset(); //Сброс таймера watchdog


//конец цикла void loop()

// 


пока не ставим, на этой библиотеке не тухнет подсветка экрана, переписываюсь с автором для выяснения причин

oleg707 13.09.2016 22:51

Microprocessor Reset Circuits
http://www.analog.com/media/en/techn..._1817_1818.pdf

oleg707 03.10.2016 18:36

последняя на сегодняшний день прошивка для версии 4.

PHP код:

//ver i72 ( чем больше цифра, тем новее)
// дата правки 16.09.16.109 

// для 4й версии блока питания 
//ТЕСТОВАЯ!!! 
// скетч проверен и записан на версии ардуино IDE 1,6,11-win7 и 1,6,3 winXP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Перед прошивкой скетча убедитесь в наличии нужных библиотек,например  d:\777\Soft\arduino\arduino-1.6.11\libraries\LiquidCrystal_I2C\

/* _______Сделано__________________________________________________
вывод информации на внешний дисплей по I2C
активный вотчдог,
программная защита its716G(statepin)-тестово,
умное мигание встроенным светодиодом,
усреднение замеров по напряжению ACC и AKB.
информация на дисплее обновляется не постоянно, а каждые 350мс ( 0,35 с).
Управление REM: если напруга батареи больше 11.8 В, то включаем еще и усилитель звука (выход REM) /но включаем его только на 30мин, если не заведены. После заводки счетчик обнуляется.
________________________________________________________________
 потребление блока по 12 вольтам, без планшета - при 10В +30 и +15 включены - 0,02 А  
                                        - при 12В +30 и +15 включены  - 0,092-0,1 А
________________________________________________________________
поведение встроенного светодиода
    низкое напряжение АКБ авто                                         - коротко моргает
    нормальное напряжение АКБ авто, ACC выключено.                     - быстро моргает
    нормальное напряжение, включено ACC, рабочий режим.                - медленно моргает */

 
//***************************************************************************************************************************************************
// Массив режимов работы светодиода
byte modes[] = {
  
0B00000000//Светодиод выключен
  
0B11111111//Горит постоянно
  
0B00111111//Мигание по 0.8 сек
  
0B00000001//Короткая вспышка раз в секунду 
  
0B00000101//Две короткие вспышки раз в секунду  
  
0B00010101//Три короткие вспышки раз в секунду
  
0B01010101  //Частые короткие вспышки (4 раза в секунду) 
};

uint32_t msms1 0
uint8_t  blink_loop 0;
uint8_t  blink_mode 0;

//***************************************************************************************************************************************************
 
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <avr/wdt.h> //Чтобы использовать функции Watchdog нужно подключить к проекту стандартную библиотеку ( https://geektimes.ru/post/255800/ )

LiquidCrystal_I2C lcd(0x27162); // set the LCD address to 0x27 for a 16 chars and 2 line display для 0x27

//LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, 4, 5, 6, 16, 11, 12, 13, 14, POSITIVE);  // для newE  описание библиотеки http://elchupanibrei.livejournal.com/27443.html#t23347

float UakbONorOFF 12.01;// в 155 строке ==  if ((15.5 > U_acc_real >= UaccONorOFF) && flagACC == 1)  {UakbONorOFF = 11.5;}  else {UakbONorOFF = 11.9;} 
float UaccONorOFF 11.7;//11.1 // напряжение порога сработки асс

/*ноги ардуины*/
int SAMOZAPITKApin 9//управление самозапиткой блока питания IN4
//1 = есть самозапитка; 0 = нет самозапитки
int PlanshBATpin 6//      включить 1 канал KIW            ..... управление питания БАТАРЕИ планшета через управляющую ногу IN2-5pin
//0 = нет питания; 1 = есть питание ( БАТАРЕИ планшета)
int II_KIW_pin_POGOpin 2//           включить 2 канал KIW    управление SS2 выходом питания  +5V (2 канал kiw3312s) на пого пин(или USB), чтоб планшет думал, что идет зарядка
//0 = нет 5V на POGO; 1 = есть 5V на POGO
int OTGpin 12//управление транзюком OTG Q1
//1 = есть масса на OTG; 0 = нет массы на OTG
int SLEEPpin 10//управление транзюком сна VT4 (на датчик холла))
//1 = потух экран(есть масса на пине сна); 0 = штатная работа планшета (нет массы на пине сна)
int HUBpin 11//управление транзюком питания хаба
// 0-есть питание, 1 - нет питания
int REMpin 7//  выход сигнала REM (+12v) (IN3), на плате распаяно.
//0 = нет 12В на выходе REM; 1 = есть 12В на выходе REM
int REGISTRATORpin 4//выход 12В для работы видеорегистратора (D4 -IN1)
//пины состояния ITS
int STATEpinI 5//логический вход для отслеживания аварийной ситуации ITS716G(724G)(питание KIW3312s-out2 и регистратор-out1) 0 = норма
int STATEpinII 8//логический вход для отслеживания аварийной ситуации ITS716G(724G)(выход REM-out3 и самозапитка БП-out4 )1 = авар. сит.

/*логические переменные, используемые в коде*/
int flagACC 0//признак включенного зажигания
int flagAKB 0// признак заряженной батареи
int flagREM 0// признак включенного выхода на усилитель звука (REM)
int flagHALL 0//флаг отработки морга экрана при холодном старте( flagHALL = 1 экран можно включать и выключать, датчик холла на планшете инициализировался)
/*счётчики времени*/
unsigned long eventTime 0;
unsigned long pauseTimeACC 0;
unsigned long pauseTimeAKB 0;
unsigned long pauseDisplay 0// таймер для обновления информации на дисплее, чтобы не мерцал
unsigned long pauseTimeHALL 120000// время паузы перед морганием экрана (для датчика холла)(равен времени загрузки планшета плюс секунд 10-20)= 2мин
int timeAfterACC 5000// время после выключения зажигания, после истечения которого вырубается экран, хаб, y-otg
unsigned long TimerREM 0// отсчет до выключения выхода REM при заглушенном авто и включенном зажигании.3600000 = час 
unsigned long timeBeforeRemOff 1800000//1800000=30мин. Время, оставшееся до отключения выхода REM после включения зажигания и незаводки машины. 207 строчка.
void setup() //настройки
{
  
// Serial.begin(115200); 
  //*************************test*************
 
wdt_disable(); //Отключение таймера watchdog
 
 //lcd.begin(16, 2); для newE
 
lcd.init();                      // initialize the lcd занимает почти секунду  для 0x27
    
  
  
pinMode(STATEpinIINPUT);
  
pinMode(STATEpinIIINPUT);
  
pinMode(PlanshBATpinOUTPUT);
  
pinMode(SAMOZAPITKApinOUTPUT);
  
pinMode(OTGpinOUTPUT);
  
pinMode(SLEEPpinOUTPUT);
  
pinMode(II_KIW_pin_POGOpinOUTPUT);
  
pinMode(HUBpinOUTPUT);
  
pinMode(13OUTPUT); //светодиодик на плате ардуины
  
pinMode(REMpinOUTPUT);
  
pinMode(REGISTRATORpinOUTPUT);

  
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета
  
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
  
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
  
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
  
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
  
digitalWrite(REMpin0); // // выключаем выход REM
  
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
  
pauseTimeACC millis(); // сброс времени для отсчета отключения самозапитки
  
pauseTimeAKB millis();
  
   
wdt_enable (WDTO_8S); // Запуск таймера watchdog:   Для тестов не рекомендуется устанавливать значение менее 8 сек. Таймер будет считать ровно столько, сколько указано в константе. По истечении этого времени произойдет перезагрузка.
                                                                                         /* Возможные значения для константы
                                                                                            WDTO_15MS
                                                                                            WDTO_30MS
                                                                                            WDTO_60MS
                                                                                            WDTO_120MS
                                                                                            WDTO_250MS
                                                                                            WDTO_500MS
                                                                                            WDTO_1S
                                                                                            WDTO_2S
                                                                                            WDTO_4S
                                                                                            WDTO_8S
                                                                                         */

}













void loop()
{



    
  
long Uacc 0//Читаем напругу с делителя ACC R4-R5 и вычисляем среднее арифметическое
  
long Uakb 0////Читаем напругу с делителя R2-R3 и вычисляем среднее арифметическое 
    
for (int i=0i<100; ++i) { // делаем 100 замеров. 1000 замеров = примерно секунда.
        //Uacc = Uacc + analogRead(A0); // замер для 5й версии
      //  Uakb = Uakb + analogRead(A1); // замер для 5й версии
        
Uacc Uacc analogRead(A1); // замер для 4й версии
        
Uakb Uakb analogRead(A0); // замер для 4й версии
        
    
}
    
Uacc Uacc/100;
    
Uakb Uakb/100;
   
    
  
  
  
  
  
  
float U_acc_real 0.0 Uacc 0.01537;//(5 / 1023.0 * 3.136); //Вычисляем реальное напряжение +ACC на входе делителя (A0) 3.1189=поправка  делителя.(коэф деления) 0.2-падение на диоде
  
float U_akb_real Uakb 0.015330;//(5 / 1023.0 * 3.145); //Вычисляем реальное напряжение +30 на входе делителя (A1)
//Serial.println(U_akb_real); //  вывод напруги АКБ в ком порт для калибровки.

  // кусок кода ниже нужен для того, чтобы при включении  и сразу выключении ACC при полностью выключенном планшете(холодный старт) экран мог тухнуть по сигналу датчика холла.
  
if (millis() > pauseTimeHALL && flagHALL == || millis() > 10000 && flagACC == 1) {
    
flagHALL 1//проверка отсчета при холодном старте при включении  и сразу выключении ACC
  
}
          
/* проверка, выключили ли мы зажигание или просто стартуем */
 
if ((U_akb_real U_acc_real) >)//проверка, выключили ли мы зажигание или просто стартуем (1 - выключили заж, 0 - стартуем), нужно для того, чтобы не моргать экраном при стартере и быстро тушить экран при выключении зажигания.
          
{timeAfterACC 500;} //         1 - выключили зажигание.  ЕСЛИ +15 ПРОПАДАЕТ ВО ВРЕМЯ СТАРТА, ТО ВМЕСТО 500 НАДО 5000 или вообще убрать этот блок if-else.
          
else {timeAfterACC 5000;} //   0 - заводим машину (стартуем).



  //  ------------========================== блок ACC ========================-----------------------------------------------------------------------------


  //             -----------------=========ВКЛЮЧИЛИ ЗАЖИГАНИЕ=============---------------- 
  
if ((15.5 U_acc_real) && (U_acc_real >= UaccONorOFF) && flagACC == && flagAKB == //проверка напруги АСС и АКБ при флаге ACC = 0
  
{
    
flagACC 1;
    
pauseTimeACC millis();
    
pauseTimeAKB millis();
    
    
lcd.clear(); //очистка экрана
  
}




  if (
millis() - pauseTimeACC >= 1000 && flagACC == 1// пауза 1c после включения ACC и потом делать следующ(пока включено ACC):
  
{
    
digitalWrite(PlanshBATpin1);  //включаем питание на батарею планшета (in2)
    
  
}
  
  if (
millis() - pauseTimeACC >= 1600 && flagACC == 1// пауза 1,6c после включения ACC и потом делать следующ(пока включено ACC): //через 0,8с после включения ACC включаем экран, включаем питание  на видеорегистратор.
  
{
    
digitalWrite(II_KIW_pin_POGOpin1); //включаем +5V (POGO(USB) нужно для распознавания планшетом признака зарядки. ( можно подавать на +5В USB кабеля (для тимуровской прошивки или если не используется датчик холла)
    
digitalWrite(REGISTRATORpin1); // включаем питание  на видеорегистратор
  
}
    
  if (
millis() - pauseTimeACC >= 2200 && flagACC == 1)//через 2,2с после включения ACC включаем экран (вЫключаем минус на упр SLEEP), выход REM(если больше 12в), Включаем хаб (подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб)
  
{
    
digitalWrite(SLEEPpin0); //включаем экран = вЫключаем минус на упр SLEEP
    
digitalWrite(OTGpin1); //включаем минус на Y-OTG  (включается  звуковая карта) // тестово, для более устойчивого определения перифирии.
    
digitalWrite(HUBpin0); //Включаем хаб = подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб
    
if( flagREM == 1  && flagAKB == ){digitalWrite(REMpin1);} // включаем выход REM

    
  
}
   



//----------------------------------------------обработка статуса выхода REM----------------------------------------------------------  
//если напруга батареи больше 12В, то включаем еще и усилитель звука (выход REM) /но включаем его только на 1 час, если не заведены.

    
if (U_akb_real >= 11.8 && flagACC == && flagREM == 0){ flagREM 1;TimerREM     millis();} //если подзаряжен акб и включили зажигание  - ВКЛЮЧАЕМ REM
    
if (U_akb_real >= 11.8 && flagACC == && ( millis() - TimerREM >= timeBeforeRemOff )) {flagREM ;}  //  если кончилось время обратного отсчета - статус рем - 2.
    
if (U_akb_real 13.7){ (flagREM 1);TimerREM millis();} // если завели машину, - ВКЛЮЧАЕМ REM, и постоянно обнуляем обратный отсчет вырубания РЕМ.
    
if (U_akb_real >= 11.8 && flagREM == && flagACC == 0){ flagREM 0;} // если восстановилось напряжение при выключенном зажигании - обнуляем статус РЕМ.
    
if (U_akb_real 11.8 && flagACC == 1){ flagREM 2;} //если подсел акб при включенном зажигании - статус рем - 2.
if( flagREM == ||  flagREM == 2){digitalWrite(REMpin0);}  // выключаем выход REM
    
//----------------------------------------------конец отработки выхода REM-----------------------------------------------------------


  //-----------------=========ВЫКЛЮЧИЛИ ЗАЖИГАНИЕ=============----------------

  
if (U_acc_real UaccONorOFF && flagACC == 1)
  {
    
flagACC 0;  //Выключили зажигание
    
digitalWrite(REMpin0);
  
flagREM 0// выключаем флаг выхода REM
    
pauseTimeACC millis();
    
pauseTimeAKB millis();
    
flagREM 0;// выключаем флаг выхода REM
    
   
lcd.noBacklight();// тушим подсветку экрана для newE и для 0x27
   // в 409 строке включение подсветки LCD дисплея
   
    
lcd.clear(); //очистка экрана
  
}
 
  if (
millis() - pauseTimeACC >= timeAfterACC && flagACC == 0//пауза 5c или 0.5c после вЫключения ACC и потом делать следующ://через 5с после выключения зажигания вЫключаем минус на Y-OTG, ВЫключаем хаб, вЫключаем +5V (POGO(USB)), тушим экран (если прошло 2мин со старта БП)
  
{
    if (
millis() - pauseTimeACC >= 3000 && flagACC == 0// пауза 3с чтобы не пукал усилитель
                        
{
                        
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
                        
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
                        
digitalWrite(HUBpin1); // ВЫключаем хаб = подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб
                        
}
   
    if (
flagHALL == 1)
    {
      
digitalWrite(SLEEPpin1); //включаем минус на SLEEP (7 pin PW1)при этом тухнет экран (если прошло 2 минуты с момента включения ардуины)
    
}
    else
    {
      
digitalWrite(SLEEPpin0);
    }
  }

  
//  -------------------------========================= блок АКБ ==========================-------------------------------------------------------------------------------

  
if (U_acc_real >= UaccONorOFF)   {UakbONorOFF 11.5;}  else {UakbONorOFF 11.9;} //при включении зажигания напряжение самовырубания станет 11,5 вместо 11,9
 

  
if (((U_akb_real UakbONorOFF) && flagAKB == 1)||(U_akb_real >15.5))// ситуация, когда сел при работе ардуины аккумулятор, либо сел в процессе работы или простоя автомобиля, либо перезарядка > 15.5В
  
{
    
flagAKB 0;//спустили флаг батареи
    
flagACC 0;
    
pauseTimeACC millis();
    
pauseTimeAKB millis();
    
UakbONorOFF 11.9;
    
lcd.clear(); //очистка экрана
  
}

  if ((
15.5 U_akb_real) && ((U_akb_real >= UakbONorOFF) && flagAKB == 0)) //проверка +30 на перезаряд >15.5В, и больше заданного в 266 строке, и флага акб 
  
{
    if (
millis() - pauseTimeACC >= 2000 && flagAKB == 0){
    
digitalWrite(SAMOZAPITKApin1);  // включаем самозапитку через 2с
    
flagAKB 1;} //подняли флаг батареи
  
}

  if (
millis() - pauseTimeAKB >= 20000 && flagAKB == 0// если севший аккумулятор //через 20с вЫключаем питание на батарею планшета и вырубаем сам БП.
  
{
    
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)
    
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
    
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
    
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
    
digitalWrite(REMpin0); // // выключаем выход REM
    
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
    
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
    
delay (5000);              // задержка для аппаратного выключения
  
}

  if (
flagAKB == && flagACC == 0)  //ситуация, когда норм акб и выключено зажигание (ACC)
  
{
    if ((
millis() - pauseTimeAKB )>= 86400000 && flagAKB == 1// если прошло 24 часа, как выключили ACC // пауза  (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
    

      
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)//(батарея планшета))
    
}

    if ((
millis() - pauseTimeAKB) >= 172800000 && flagAKB == 1// если давно выключили ACC     ) (2суток = 172800000))     //(самозапитка для регистратора)
    
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
      
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом система ПОЛНОСТЬЮ обесточивается
      
delay (5000);              // задержка для аппаратного выключения
    
}
  }

 
  
  

  



 
//*
//******************************************отслеживания аварийной ситуации ITS716G********************************************************************************************************************************************************************************
   
      
    //отслеживания аварийной ситуации ITS716G канал 1 (питание KIW3312s-out2 и регистратор-out1) 0 = норма  1 = авар. сит.  //тогда моргаем 13 ногой код "1"
    //отслеживания аварийной ситуации ITS716G канал 2 (выход REM-out3 и самозапитка БП-out4 )0 = норма  1 = авар. сит.  //тогда моргаем 13 ногой  код "2"
    
if(SAMOZAPITKApin==|| PlanshBATpin==||REMpin==|| REGISTRATORpin ==1// если проц включал любой канал ITS
              
{
                if(
STATEpinI == 0)             {   // и если пин защиты показал аварию
                                                                                                             
for (int i=0<= 300i++)   { //тогда моргаем 13 ногой код "1"  10 минут, если они прошли и асс ВКЛ, тогда еще раз и еще по кругу, пока неисправность не уйдёт
                                                                                                                                           
digitalWrite(131); delay(500); digitalWrite(130); delay(1493);
                                     
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)
                                     
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
                                     
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
                                     
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
                                     
digitalWrite(REMpin0); // // выключаем выход REM
                                     
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
                                     
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
                                     
wdt_reset(); //Сброс таймера watchdog
                                                                                                                                           
}
                                   } ;
    if(
STATEpinII == 0)             {   // и если пин защиты показал аварию
                                                                                                             
for (int i=0<= 150i++)   { //тогда моргаем 13 ногой ногой код "2" 10 минут, если они прошли и асс ВКЛ, тогда еще раз и еще по кругу, пока неисправность не уйдёт
                                                                                                                                           
digitalWrite(131); delay(500); digitalWrite(130); delay(493); digitalWrite(131); delay(500); digitalWrite(130); delay(1493);
                                     
digitalWrite(PlanshBATpin0);  //вЫключаем питание на батарею планшета (in2)
                                     
digitalWrite(OTGpin0); //вЫключаем минус на Y-OTG (8 pin PW1)
                                     
digitalWrite(II_KIW_pin_POGOpin0); //вЫключаем +5V (POGO(USB))
                                     
digitalWrite(HUBpin1); // подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб = ВЫключаем хаб
                                     
digitalWrite(REMpin0); // // выключаем выход REM
                                     
digitalWrite(REGISTRATORpin0); // выключаем питание  на видеорегистратор
                                     
digitalWrite(SAMOZAPITKApin0);  //выключаем SAMOZAPITKApin, при этом пропадает управление на IN4, система ПОЛНОСТЬЮ обесточивается
                                     
wdt_reset(); //Сброс таймера watchdog
                                                                                                                                           
}
                                   } ;
                               }




  
//*/
//**************************************************************************************************************************************************************************************************************************  


//******************************************индикация светодиодом и задержка вывода на дисплей********************************************************************************************************************************************************************************
   
ms millis();
  
// Событие срабатывающее каждые 125 мс
  
if ( ( ms ms1 ) > 125 || ms ms1 ) {
    
ms1 ms;
    
// Режим светодиода ищем по битовой маске
    
if (  blink_mode << (blink_loop 0x07) ) digitalWrite(13HIGH);
    else  
digitalWrite(13LOW);
    
blink_loop++;
  }
  
  
  
  
   
// Событие срабатывающее каждые 250 мс
  
if ( ( ms pauseDisplay ) > 350 || ms pauseDisplay )
  { 
    
pauseDisplay ms;
          
//_____________________________________________СООБЩЕНИЕ НА ДИСПЛЕЙ____________________________________________________________



int H = (millis()/3600000);
int M = ((millis()-(H*3600000))/60000); 
//int S = (((millis()/1000)-(H*3600))- (M*60));
if ((((millis())-(H*3600000))- (M*60000)) < 200 ){lcd.clear(); }//очистка экрана


 
if (flagACC == 1){lcd.backlight();}// для newE и для 0x27  
 // в 256 строке выключение подсветки LCD дисплея


//вывод времени работы
  
lcd.setCursor(00);
  
lcd.print((millis() )/60000); // вывод кол-ва минут работы блока ( 1 строка 1 символ)
  
  
lcd.setCursor(70);
  
lcd.print(flagAKB); // вывод флага AKB
  
  
lcd.setCursor(80);
  
lcd.print(flagACC); // вывод флага АСС
  
  
lcd.setCursor(90);
  
lcd.print(flagREM); // вывод флага rem
  
lcd.setCursor(110);
  
lcd.print(U_acc_real); // вывод напряжения АСС
  
  //lcd.setCursor(5,1);
  //-------------------2 строка---------------------------------
  
lcd.setCursor(01);
  
unsigned long TIMER = (  pauseTimeAKB  172800000 millis()  )/60000// вывод кол-ва минут, оставшиеся до выключения блока (когда выключено АСС)
  
lcd.print(TIMER);
  
lcd.setCursor(51);
  
lcd.print(( millis() - TimerREM )/60000); //
  
lcd.setCursor(111);
  
lcd.print(U_akb_real); // вывод напряжения АКБ
  
  /* так выглядит индикация на дисплее
  
   
   ================
  |1      111 0.000|          1 строка   *   вывод кол-ва минут работы блока                 *флаг АКБ*флаг АСС*флаг REM*  вывод напряжения АСС
  |616  10    14.50|    
   ================           2 строка   *   кол-во минут, оставшиеся до выключения блока    *     millis() - TimerREM, минут        *    вывод напряжения АКБ    
   
   
*///__________________________________________________________________________________________________________________________
  
}
    
    
    
    
  
  
// blink_mode = modes[3];
  
  
if (blink_mode != modes[5] || blink_mode != modes[5]) 
  {
  if (
flagAKB == ){blink_mode modes[3];}                 // индикация напруги батареи на ардуинине.- низкое напряжение АКБ авто - коротко моргает
  
if (flagAKB == && flagACC == 0) {blink_mode modes[6];} //- нормальное напряжение АКБ авто, ACC выключено.                     - быстро моргает
  
if (flagAKB == && flagACC == 1) {blink_mode modes[2];} //- нормальное напряжение, включено ACC, рабочий режим.                - медленно моргает
      
  

 
/* **********************************************************************************************************
    0B00000000, //Светодиод выключен blink_mode = modes[0]; 
    0B11111111, //Горит постоянно blink_mode = modes[1];      
    0B00111111, //Мигание по 0.8 сек  blink_mode = modes[2]; - нормальное напряжение, включено ACC, рабочий режим.
    0B00000001, //Короткая вспышка раз в секунду  = modes[3]; - низкое напряжение АКБ авто
    0B00000101, //Две короткие вспышки раз в секунду 
    0B00010101, //Три короткие вспышки раз в секунду
    0B01010101  //Частые короткие вспышки (4 раза в секунду)= blink_mode = modes[6]; - нормальное напряжение АКБ авто, ACC выключено.
   */
//**********************************************************************************************************


wdt_reset(); //Сброс таймера watchdog


//конец цикла void loop()

// 


Az0m@ 04.10.2016 07:49

Олег.... прошу помощи выявить глюк.
иногда после долгого простоя вторая часть кивки, которая идет для питания хаба, зарядки планшета (вопщем выдающая 5В) не запускается. при этом команда от ардуинки на его включение приходит. при это после подачи АСС вторая часть кивки на доли секунды включается и потом выключается.... такое чувство что срабатывает какая то защита у него. если после этого пару раз передернуть АСС то все нормально начинает работать.

P.S. при этом первая часть ардуинки которая идет на питание батареи все исправно пашед

oleg707 04.10.2016 14:02

Цитата:

Сообщение от Az0m@ (Сообщение 370742)
Олег.... прошу помощи выявить глюк.
иногда после долгого простоя вторая часть кивки, которая идет для питания хаба, зарядки планшета (вопщем выдающая 5В) не запускается. при этом команда от ардуинки на его включение приходит. при это после подачи АСС вторая часть кивки на доли секунды включается и потом выключается.... такое чувство что срабатывает какая то защита у него. если после этого пару раз передернуть АСС то все нормально начинает работать.

P.S. при этом первая часть ардуинки которая идет на питание батареи все исправно пашед

хм, нагрузки на второй части нету практически.
Ты заливал последнюю версию i72 ? Там критический и трудноуловимый баг по нижнему напряжению питания устранён.

Az0m@ 04.10.2016 18:49

Цитата:

Сообщение от oleg707 (Сообщение 370777)
хм, нагрузки на второй части нету практически.
Ты заливал последнюю версию i72 ? Там критический и трудноуловимый баг по нижнему напряжению питания устранён.

Чет пропустил его...залил его. Пока обкатываю... Глюка этого не наблюдаю

Artemix 09.10.2016 17:43

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

oleg707 09.10.2016 20:32

Цитата:

Сообщение от Artemix (Сообщение 371110)
недано поймал глюк планшет постоянно нажималась кнопка минус звука , я потушить планшет не мог и выключить тоже , удалось перезагрузить но вышел в меню прошивок.
как с этим бороться?

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

Artemix 10.10.2016 16:56

Цитата:

Сообщение от oleg707 (Сообщение 371133)
а причём здесь блок питания?

из за частот или еще какая помеха в машине?
с lm2596 такая же фигня с залипанием , даже проверял пайку и то нечего не дало
а могут быть сами кнопки с планшета ? были с кем нибудь случаи

oleg707 10.10.2016 18:46

Цитата:

Сообщение от Artemix (Сообщение 371191)
из за частот или еще какая помеха в машине?
с lm2596 такая же фигня с залипанием , даже проверял пайку и то нечего не дало
а могут быть сами кнопки с планшета ? были с кем нибудь случаи

у меня не было:secret:

Jigafur 19.10.2016 23:24

Бредовый наверное вопрос задам - а что если хаб запитать от входа usb любого гу? Будет ли заряжаться nexus? И можно ли будет подключить pcm2704 muse в хаб? Или вообще подключить хаб к yatour

jonikus81 20.10.2016 07:38

Цитата:

Сообщение от Jigafur (Сообщение 371915)
Бредовый наверное вопрос задам - а что если хаб запитать от входа usb любого гу? Будет ли заряжаться nexus? И можно ли будет подключить pcm2704 muse в хаб? Или вообще подключить хаб к yatour

если гу выдает более 2А (я таких не встречал) то возможно

Цитата:

Сообщение от Artemix (Сообщение 371191)
из за частот или еще какая помеха в машине?
с lm2596 такая же фигня с залипанием , даже проверял пайку и то нечего не дало
а могут быть сами кнопки с планшета ? были с кем нибудь случаи

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


PS. ребят, из уважения к автору, просьба писать в соответствующих темах, спасибо

Furai2014 30.10.2016 13:35

Здравствуйте, а какие диоды лучше использовать (марка)? Спасибо

vtyns 30.10.2016 19:38

ребят. случилась проблема. случайно при тесте нексуса 2013 при включении планшета подал питание на кнопку включения 12вольт вместо массы. ну после этого естественно он не включается. что посоветуете? или мать менять?

oleg707 31.10.2016 02:32

Цитата:

Сообщение от Furai2014 (Сообщение 373039)
Здравствуйте, а какие диоды лучше использовать (марка)? Спасибо

lubie. glavnoe, chtoby napragenie nemnogo ponizit.

jonikus81 31.10.2016 06:52

Цитата:

Сообщение от Furai2014 (Сообщение 373039)
Здравствуйте, а какие диоды лучше использовать (марка)? Спасибо

немног поделюсь опытом по диодам. У меня 2013й LTE и понижал я напругу от НСДшки выставленной на 5,2В. Начал я с 4амперных диодов, итог был плачевен, так как диоды раскалялись до такой степени, что чернел текстолит и плавилось олово на контактах(хотя запитан через них только планшет). Затем я поставил 6 амперные, греются меньше но все равно греются. Сейчас стоят 20ти амперные, на транзистор с ушком под радиатор похожие. Греются слегка. 3 месяца полет нормальный.

oleg707 31.10.2016 20:39

Цитата:

Сообщение от jonikus81 (Сообщение 373118)
немног поделюсь опытом по диодам. У меня 2013й LTE и понижал я напругу от НСДшки выставленной на 5,2В. Начал я с 4амперных диодов, итог был плачевен, так как диоды раскалялись до такой степени, что чернел текстолит и плавилось олово на контактах(хотя запитан через них только планшет). Затем я поставил 6 амперные, греются меньше но все равно греются. Сейчас стоят 20ти амперные, на транзистор с ушком под радиатор похожие. Греются слегка. 3 месяца полет нормальный.

net, tam diodi nuzny tolko dlja pitaniya arduino. tok ochen malenkiy. potomu diody lubie. mogno posmotretbna foto.
A esly nado pitat planshet 5,0->4,2, to dlya etogo est dc-dc converter!

jonikus81 01.11.2016 11:59

Цитата:

Сообщение от oleg707 (Сообщение 373214)
net, tam diodi nuzny tolko dlja pitaniya arduino. tok ochen malenkiy. potomu diody lubie. mogno posmotretbna foto.
A esly nado pitat planshet 5,0->4,2, to dlya etogo est dc-dc converter!

Упс, это я не по теме оказывается написал, извиняюсь. Я 5.2 вольта понижал для планшета на одном единствнном ДС-ДС адапторе с гальваникой, второй покупать просто жаба задавила, ценник не просто высок, а неадекватно высок. А по питанию ардуины, pro micro с 3мя последовательно соединенными стабами 5v1 две штуки(ардуины) сгорели, только что поставил L7805CV и забыл о проблеме :spiteful: (стоит копейки с 2мя смд кондерами)

oleg707 01.11.2016 14:26

Цитата:

Сообщение от jonikus81 (Сообщение 373251)
Упс, это я не по теме оказывается написал, извиняюсь. Я 5.2 вольта понижал для планшета на одном единствнном ДС-ДС адапторе с гальваникой, второй покупать просто жаба задавила, ценник не просто высок, а неадекватно высок. А по питанию ардуины, pro micro с 3мя последовательно соединенными стабами 5v1 две штуки(ардуины) сгорели, только что поставил L7805CV и забыл о проблеме :spiteful: (стоит копейки с 2мя смд кондерами)

так в нано ams1117-5 и стоит. только по даташиту там можно понижать не более, чем на 7 вольт.
Тогда я высчитывал, получалось около 14и вольт максимума. диоды дают разбежку вольт до 17, по крайней мере я домашний блок питания выставлял на 17, нормально работало и давало +5 на атмегу.
можно ставить для питания КРЕН 9-12, м потом их уже скидывать до 5, но у меня на тот момент были только диоды, слизанные с какой то материнки.

Az0m@ 06.11.2016 18:25

сегодня словил очередную глюк.... с перебоями начал работать выходе REM. причем ситуация такая:
включаю зажигание - всё включается, музон играет
далее завожу двиг - выход REM отключается...
если же после включения зажигания сразу завожу двигатель то усилитель ваще даже не включается. согласно схеме выход REM идет от ITS716G... не ужто он накрывается?

oleg707 06.11.2016 18:51

Цитата:

Сообщение от Az0m@ (Сообщение 373591)
сегодня словил очередную глюк.... с перебоями начал работать выходе REM. причем ситуация такая:
включаю зажигание - всё включается, музон играет
далее завожу двиг - выход REM отключается...
если же после включения зажигания сразу завожу двигатель то усилитель ваще даже не включается. согласно схеме выход REM идет от ITS716G... не ужто он накрывается?

не должно.

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

прицепи дисплей, там в середине статус акб, ацц, и рем. после заводки машины должно быть 111.

Az0m@ 07.11.2016 12:42

Цитата:

Сообщение от oleg707 (Сообщение 373593)
не должно.

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

прицепи дисплей, там в середине статус акб, ацц, и рем. после заводки машины должно быть 111.

вечером вернут дисплей и посмотрю
а пока заменил арудинку... начало все работать, но появился предыдущий глюк:
если после зажигания сразу завожу, то зарядка вместа с хабом на доли секунды включается и выключается. выход рем и экран планшета работают в штатном режиме
если же после зажигания подождать пока зарядка и хаб включаться и потом только завести двигатель то все норм продолжает работать -)...
блин, не одно..то другое..

oleg707 07.11.2016 15:59

Цитата:

Сообщение от Az0m@ (Сообщение 373659)
вечером вернут дисплей и посмотрю
а пока заменил арудинку... начало все работать, но появился предыдущий глюк:
если после зажигания сразу завожу, то зарядка вместа с хабом на доли секунды включается и выключается. выход рем и экран планшета работают в штатном режиме
если же после зажигания подождать пока зарядка и хаб включаться и потом только завести двигатель то все норм продолжает работать -)...
блин, не одно..то другое..

скетч попробуй под себя подогнать

avaRi 10.11.2016 02:37

Приветствую. Подскажите как правильно переделать KIW-3312S?
Верх у меня 3.7 вольт. А вот низ 1.2 вольта.
Побывал разные номиналы резисторов ставить эффекта нет!
Желательно картинку


Часовой пояс GMT +4, время: 13:11.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot