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)

Az0m@ 10.11.2016 12:29

Цитата:

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

http://we.easyelectronics.ru/part/sd...s-ir3802a.html

oleg707 10.11.2016 14:27

Цитата:

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

R2.2 нужно выкинуть. Вверху и внизу.
Обязательно конденсатор по выходам!
И резистор на adj 1-2.

ÍÀÑÒÐÎÉÊÀ kiw3312s

R2.2 è çåðêàëüíûé åìó ðåçàê âûïàèâàåì
çíà÷åíèÿ âûõîäíûõ íàïðÿæåíèé íàñòðàèâàþòñÿ ðåçàêàìè Rx2.2 âåðõ è Rx2.2 íèç.
ÂÅÐÕ: 85k=3.3v
110k=3.8v (ìî¸ çíà÷åíèå) âðîäå áû îíî ñòîèò íà ìåñòå R2.2
115k=4v
139k=4.5v
150k=4.7v
160k=5v

ÍÈÇ: 24k=1.3v
130k=4.0v
150k=4.5v
165k=4.56v (ìî¸ çíà÷åíèå)
170k=5.0v

íà ïëàòå ïî ïèòàíèþ óæå ñòîÿò ñòàáèëèòðîíû (zd1) íà 5.6v, íî ÿ äîáàâèë åùå

Боле подробно в BP 707 bez proca.spl7 ( 3 версия Блока Питания)

avaRi 13.11.2016 18:48

Доброго Олег! Спасибо за блок питания! Собрал и отладил все отлично работает. Вот сопротивление R10 точно 103? походу там ошибка Поставил 102 все отлично запустилось. по этой причине и не работал второй вывод KIW.
Что бы работал WatchDog шить через программатор?

oleg707 13.11.2016 21:48

Цитата:

Сообщение от avaRi (Сообщение 374202)
Доброго Олег! Спасибо за блок питания! Собрал и отладил все отлично работает. Вот сопротивление R10 точно 103? походу там ошибка Поставил 102 все отлично запустилось. по этой причине и не работал второй вывод KIW.
Что бы работал WatchDog шить через программатор?

На здоровье!
да 103. НО я R9 не ставлю
Вообще глянул схему - вы правы. Там 1К(r9) подтяжки к земле и 10К(r10) по +5В( с атмеги) то есть если стоИт R9 -управление канала притянуто на землю, соответственно на выходе нет напруги. Я его не паяю, потому как и без него прекрасно работает.

Про WatchDog я хз - шью через ICSP ( usbAsp), так нет задержки на запуск загрузчика. Но вроде должен быть и при прошивке скетча по юсб.

Зы Фото что ли выложи.

oleg707 13.11.2016 22:06

Вложений: 3
описание подключения
Вложение 45501
Вложение 45499
Вложение 45500

Az0m@ 13.11.2016 22:25

Цитата:

Сообщение от oleg707 (Сообщение 374215)
На здоровье!
да 103. НО я R9 не ставлю
Вообще глянул схему - вы правы. Там 1К(r9) подтяжки к земле и 10К(r10) по +5В( с атмеги) то есть если стоИт R9 -управление канала притянуто на землю, соответственно на выходе нет напруги. Я его не паяю, потому как и без него прекрасно работает.

оо..а вот тут и мне стало инетерсно... у меня тоже второй канал периодически барахлит... надо и у себя так попробывать.. или R9 на место запаять

oleg707 13.11.2016 22:43

Цитата:

Сообщение от Az0m@ (Сообщение 374220)
оо..а вот тут и мне стало инетерсно... у меня тоже второй канал периодически барахлит... надо и у себя так попробывать.. или R9 на место запаять

припаяй по 102 R9 и 10. Поезди - отпишись.
Если будет возможность - на своей попробую.

avaRi 14.11.2016 07:12

Фото в хорошем качестве по ссылкам ниже
https://content-5.foto.my.mail.ru/li.../BP/b-1371.jpg
https://content-21.foto.my.mail.ru/l.../BP/b-1372.jpg

Az0m@ 16.11.2016 11:15

Цитата:

Сообщение от oleg707 (Сообщение 374224)
припаяй по 102 R9 и 10. Поезди - отпишись.
Если будет возможность - на своей попробую.

не помогает... даже тока с R10 102. причем по индикации на хабе видно что канал включается на долю секунды и выключается... т.е. светодиода питания хаба успевает моргнуть

oleg707 16.11.2016 19:31

Цитата:

Сообщение от Az0m@ (Сообщение 374503)
не помогает... даже тока с R10 102. причем по индикации на хабе видно что канал включается на долю секунды и выключается... т.е. светодиода питания хаба успевает моргнуть

у меня как то были трудновыловимые глюки с микротрещиной по диодам
и непропаем ITS.

oleg707 17.11.2016 19:37

Цитата:

Сообщение от Az0m@ (Сообщение 374503)
не помогает... даже тока с R10 102. причем по индикации на хабе видно что канал включается на долю секунды и выключается... т.е. светодиода питания хаба успевает моргнуть

а у тебя хаб к какому контакту подключен?
ко 2 или к 14?

Az0m@ 20.11.2016 22:48

Вложений: 1
Цитата:

Сообщение от oleg707 (Сообщение 374581)
а у тебя хаб к какому контакту подключен?
ко 2 или к 14?

согласно схеме

oleg707 20.11.2016 23:31

Цитата:

Сообщение от Az0m@ (Сообщение 374821)
согласно схемы

эм, у тебя нумерация не соответствует моей

Az0m@ 21.11.2016 12:18

Цитата:

Сообщение от oleg707 (Сообщение 374823)
эм, у тебя нумерация не соответствует моей

исходя из этой распиновки:
http://pccar.ru/showpost.php?p=374217&postcount=566
то "+" на хаб от вывода "+5 pogo"
а "-" на хаб от вывода "GND Plans"

думаешь "+" лучше попробывать на вывод "HUB" пересадить?

oleg707 21.11.2016 13:48

Цитата:

Сообщение от Az0m@ (Сообщение 374854)
исходя из этой распиновки:
http://pccar.ru/showpost.php?p=374217&postcount=566
то "+" на хаб от вывода "+5 pogo"
а "-" на хаб от вывода "GND Plans"

думаешь "+" лучше попробывать на вывод "HUB" пересадить?

:yes4:
попробуй.
у тебя 2 варианта.
я так понял, что пропадает питание на хаб.
В твоём подключении питание на хаб взято напрямую с 2го канала КИВа. Поэтому либо КИВ не выдаёт, либо управление некорректное (плавает).
По поводу КИВа можешь выпаять R9 и R10, этим ты включишь питание 2го канала на постоянную.
В этом режиме поезди, только на ночь не оставляй. Либо блок снимай, либо ресет на ардуине при выключенном зажигании клацай - чтобы самозапитки снять.

Az0m@ 21.11.2016 22:30

Цитата:

Сообщение от oleg707 (Сообщение 374862)
:yes4:
попробуй.
у тебя 2 варианта.
я так понял, что пропадает питание на хаб.
В твоём подключении питание на хаб взято напрямую с 2го канала КИВа. Поэтому либо КИВ не выдаёт, либо управление некорректное (плавает).
По поводу КИВа можешь выпаять R9 и R10, этим ты включишь питание 2го канала на постоянную.
В этом режиме поезди, только на ночь не оставляй. Либо блок снимай, либо ресет на ардуине при выключенном зажигании клацай - чтобы самозапитки снять.

в том то и дело что питание взято через транзюк, а не напрямую с КИВа... я же правильно понимаю что +5В ПОГО идет от транзюка... на него у меня и пасажен ха

oleg707 22.11.2016 22:51

Цитата:

Сообщение от Az0m@ (Сообщение 374912)
в том то и дело что питание взято через транзюк, а не напрямую с КИВа... я же правильно понимаю что +5В ПОГО идет от транзюка... на него у меня и пасажен ха

запутал ты меня. Давай позже по скайпу лучше.

avaRi 26.11.2016 17:05

как два дня тестирую блок в машине.
И есть полтергейст со вторым каналом KIW, Когда тачка холодная он не включается. Стоит проехать и прогреть машину примерно через 20 мин все отлично. можно целый день ездить. Включать и отключать зажигание. стартует отлично. Но если тачка остыла все он в отвале! вернее он уходит в защиту. На управляющей ноге есть +2.5v

oleg707 26.11.2016 17:14

Вложений: 2
Цитата:

Сообщение от avaRi (Сообщение 375407)
как два дня тестирую блок в машине.
И есть полтергейст со вторым каналом KIW, Когда тачка холодная он не включается. Стоит проехать и прогреть машину примерно через 20 мин все отлично. можно целый день ездить. Включать и отключать зажигание. стартует отлично. Но если тачка остыла все он в отвале! вернее он уходит в защиту. На управляющей ноге есть +2.5v

ок, это уже тенденция, у Азома тоже глюки со 2 каналом.
Давайте разбираться.

Что значит вернее он уходит в защиту.? светодиод на ардуине что отмаргивает? код или равномерно моргает?
Дисплей I2C у вас есть?

R9 и R10 запаяны? какие номиналы?
На холодную на управляющей ноге такое же напряжение?
Если выпаять R9 и R10 , то работает на холодную? ( второй канал без резисторов работать должен постоянно, не реагируя на выключение зажигания, как и первый канал)

Еще фото блока выложите.
сейчас специально проверил напряжения на управляющих пинах КИВА. 3,0В на первом канале( который в воздухе)
и 3,2В при включенном 2м канале (0,2В при выключенном)
R9 у меня не стоит, R10 = 103(10k).



Вот как Вложение 45654 выглядит то, на чём я сейчас езжу с этими скетчами: Вложение 45655

Furai2014 28.11.2016 00:50

Здравствуйте, а кив должен щелчки выдавать когда работает?. Rx2.2низ1 и Rx2.2низ ставить 334 или лучше как у Вас на фото 224 и 684?. Спасибо.

Furai2014 28.11.2016 00:54

Еще такой нюанс случился, хотел померять между пинами "gnd_in" и "батарея планшета" напругу, сгорел конденсатор С4 (у меня 1000мкф 16В) это может быть проблема с кив?

Az0m@ 28.11.2016 08:37

Цитата:

Сообщение от Furai2014 (Сообщение 375632)
Здравствуйте, а кив должен щелчки выдавать когда работает?. Rx2.2низ1 и Rx2.2низ ставить 334 или лучше как у Вас на фото 224 и 684?. Спасибо.

без разницы... главное чтобы итоговой суммарный номинал сопротивления был аналогичен
P.S. у меня без щелчков работает

Az0m@ 28.11.2016 08:41

Цитата:

Сообщение от oleg707 (Сообщение 375409)
ок, это уже тенденция, у Азома тоже глюки со 2 каналом.
Давайте разбираться.

кстати... тоже замечал что второй канала при холоде не заводится ... или через раз... но я пока на это забил ибо решил плату БП заново все собрать...

jonikus81 28.11.2016 09:05

у меня один из кивов "звенел", как оказалось коротыш на выходе и конденсатор горел только при переплюсовке. От сопротивлений подтягивающих SS1 и SS2 отказался применив оптроны, но схема пока только на столе, в морозы пока нет возможности проверить.

oleg707 28.11.2016 13:25

Цитата:

Сообщение от Furai2014 (Сообщение 375632)
Здравствуйте, а кив должен щелчки выдавать когда работает?. Rx2.2низ1 и Rx2.2низ ставить 334 или лучше как у Вас на фото 224 и 684?. Спасибо.

кив выдаёт щелчки если нет конденсатора на выходе. или неправильно задано напряжение резисторами R2.2.
ИЛИ это уже было и кив успел сгореть. Без R2.2 и кондёров на выходе кив включать запрещено.


зы
2 канал работает нормально, на холод НЕ реагирует.
Единственное, что меня беспокоит, так это при старте есть пиковая просадка на доли секунды до 7,8-8В. Из-за этого может отвалиться звуковая и (или) потухнуть экран (редко, но бывает). Лечится ресетом ардуины или передёргиванием ключа. Попробую поменять алгоритм включения планшета после старта, а там видно будет.

oleg707 28.11.2016 13:52

Цитата:

Сообщение от jonikus81 (Сообщение 375664)
у меня один из кивов "звенел", как оказалось коротыш на выходе и конденсатор горел только при переплюсовке. От сопротивлений подтягивающих SS1 и SS2 отказался применив оптроны, но схема пока только на столе, в морозы пока нет возможности проверить.

SS1 в воздухе, a SS2 как вариант через диод и резистор подключить.
Массу диод с проца пропустит (просадив опорное напряжение кива до 0,2), а +5В не пройдут.

oleg707 28.11.2016 14:45

Ребят, есть еще вопрос.
Периодически мне что-либо приходит в голову и я это реализую (в данном случае речь идёт про код - скетч).
Такой код получает статус тестового. Обычно по прошествии 10-50 дней тест успешно завершается ( иногда неуспешно).
Так вот вопрос: Нужно ли выкладывать самые свежие версии программы, либо ждать и потом выкладывать?

Az0m@ 28.11.2016 16:19

Цитата:

Сообщение от oleg707 (Сообщение 375709)
Ребят, есть еще вопрос.
Периодически мне что-либо приходит в голову и я это реализую (в данном случае речь идёт про код - скетч).
Такой код получает статус тестового. Обычно по прошествии 10-50 дней тест успешно завершается ( иногда неуспешно).
Так вот вопрос: Нужно ли выкладывать самые свежие версии программы, либо ждать и потом выкладывать?

выкладывай... ибо чем больше тестировщиков тем больше вероятность найти болячки

oleg707 28.11.2016 16:26

толком не тестировал, только себе залил.
 
PHP код:

byte ver =80;// ( чем больше цифра, тем новее)
// дата правки 28.11.16.1336

// для 5й версии блока питания ( для 4й тоже подходит, только нужно поменять местами в программе A0 и A1 в строках 161-164)
//ТЕСТОВАЯ!
// скетч проверен и записан на версии ардуино IDE 1,6,11 win7, 1.63 xp
//Перед прошивкой скетча убедитесь в наличии нужных библиотек,например  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
если в скетче в названии 0x27, значит библиотека старая.
активный вотчдог,
программная защита its716G(statepin)-тестово,
умное мигание встроенным светодиодом, в зависимости от напряжения АКБ и состояния АСС.
усреднение замеров по напряжению ACC и AKB, по 100 замерам.
информация на дисплее обновляется не постоянно, а каждые 350мс ( 0,35 с), чтобы не мельчешить.
Управление REM: если напруга батареи больше 11.8 В, то включаем еще и усилитель звука (выход REM) /но включаем его только на 30-60мин, если не заведены. После заводки счетчик обнуляется.
________________________________________________________________
 потребление блока по 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_I2C2004V1

//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;// в 258 строке ==  if ((15.5 > U_acc_real >= UaccONorOFF) && flagACC == 1)  {UakbONorOFF = 11.5;}  else {UakbONorOFF = 11.9;} 
float UaccONorOFF 11.4;//11.1 // напряжение порога сработки асс

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

/*логические переменные, используемые в коде*/
byte flagACC 0/*признак включенного зажигания*/
byte flagAKB 0/* признак заряженной батареи*/
byte flagREM 0/* признак включенного выхода на усилитель звука (REM)*/
byte flagHALL 0/*флаг отработки морга экрана при холодном старте( flagHALL = 1 экран можно включать и выключать, датчик холла на планшете инициализировался)*/
/*счётчики времени*/
unsigned long eventTime 0;
unsigned long pauseTimeACC millis();// сброс времени для отсчета отключения самозапитки
unsigned long pauseTimeAKB millis();
unsigned long pauseDisplay 0/* таймер для обновления информации на дисплее, чтобы не мерцал*/
unsigned long pauseTimeHALL 140000/* время паузы перед морганием-тушением экрана (для датчика холла)(равен времени загрузки планшета плюс секунд 10-20)= 2мин*/
int timeAfterACC 5000/* время после выключения зажигания, после истечения которого вырубается экран, хаб, y-otg*/
unsigned long TimerREM 0/* отсчет до выключения выхода REM при заглушенном авто и включенном зажигании.3600000 = час */
unsigned long timeBeforeRemOff 1800000/*1800000=30мин. Время, оставшееся до отключения выхода REM после включения зажигания и незаводки машины. 209 строчка.*/
//===========================================================================================================================================================================================================================================================================
//===========================================================================================================================================================================================================================================================================
//===========================================================================================================================================================================================================================================================================

void setup() //настройки
{
// Serial.begin(115200); 
  
 
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); // выключаем питание  на видеорегистратор
  
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  (   wdt_enable (WDTO_8S);)
 //конец настроек состояний при подаче питания на БП~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
}
//===========================================================================================================================================================================================================================================================================
//===========================================================================================================================================================================================================================================================================
//===========================================================================================================================================================================================================================================================================












//===========================================================================================================================================================================================================================================================================
//===========================================================================================================================================================================================================================================================================
//===========================================================================================================================================================================================================================================================================

void loop()
{
                                                                                                               
  
long Uacc 0//Читаем напругу с делителя ACC R4-R5 и вычисляем среднее арифметическое
  
long Uakb 0////Читаем напругу с делителя R2-R3 и вычисляем среднее арифметическое 
    
for (int i=0i<20; ++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/20;
    
Uakb Uakb/20;
   
    
  
  
  
  
  
  
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)*/

 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ кусок кода ниже нужен для того, чтобы при включении  и сразу выключении ACC при полностью выключенном планшете(холодный старт) экран мог тухнуть по сигналу датчика холла.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  
if ( (millis() > pauseTimeHALL && flagHALL == )|| ((millis() > 15000) && flagACC == 1)) 
  {
flagHALL 1;} /*проверка отсчета при холодном старте при включении  и сразу выключении ACC*/
  /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
        
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~проверка, выключили ли мы зажигание или просто стартуем ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
if ((U_akb_real U_acc_real) >)/*проверка, выключили ли мы зажигание или просто стартуем (1 - выключили заж, 0 - стартуем), нужно для того, чтобы не моргать экраном при стартере и быстро тушить экран при выключении зажигания.*/
          
{timeAfterACC 300;} /*  1000       1 - выключили зажигание.  ЕСЛИ +15 ПРОПАДАЕТ ВО ВРЕМЯ СТАРТА, ТО ВМЕСТО 500 НАДО 5000 или вообще убрать этот блок if-else.*/
          
else {timeAfterACC 300;} /* 5000  0 - заводим машину (стартуем).*/
// ввести новую переменную int starting_mode = 1;//стартуем 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 >= 300 && flagACC == 1/* пауза 1c после включения ACC и потом делать следующ(пока включено ACC):*/
        
{
          
digitalWrite(PlanshBATpin1);  /*включаем питание на батарею планшета (in2) = этим подаём 12В на KIW3312s. На 1м канале КИВ сразу появляется напряжение (3,8-4,2 - как настроено)*/ 
          
digitalWrite(OTGpin1); /*включаем минус на Y-OTG  (включается  звуковая карта) // тестово, для более устойчивого определения перифирии.*/
          
        
}
  
  if (
millis() - pauseTimeACC >= 600 && flagACC == 1/* пауза 1,6c после включения ACC и потом делать следующ(пока включено ACC): //через 01,6с после включения ACC , включаем питание  на видеорегистратор.*/
        
{
          
digitalWrite(II_KIW_pin_POGOpin1); /*включаем +5V (POGO(USB) нужно для распознавания планшетом признака зарядки. ( можно подавать на +5В USB кабеля (для тимуровской прошивки или если не используется датчик холла)*/
          
          
digitalWrite(REGISTRATORpin1); /* включаем питание  на видеорегистратор*/
        
}
    
  if (
millis() - pauseTimeACC >= 900 && flagACC == 1)/*через 2,2с после включения ACC включаем экран (вЫключаем минус на упр SLEEP), выход REM(если больше 12в), Включаем хаб (подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб)*/
        
{
          
digitalWrite(HUBpin0); /*Включаем хаб = подаем минус на управляющий транзюк хаба, тот открывается и пускает +5В с KIW (2вых)на хаб*/
          
digitalWrite(SLEEPpin0); /*включаем экран = вЫключаем минус на упр SLEEP*/
          
if( flagREM == 1  && flagAKB == ){digitalWrite(REMpin1);} /* включаем выход REM*/
        
}
   


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

    
if (U_akb_real >= 11.8 && flagACC == && flagREM == 0) {flagREM 1TimerREM 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();
          
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 >= 1500 && flagACC == 0/* 3000 пауза 3с чтобы не пукал усилитель*/
                          
{
                          
digitalWrite(OTGpin0); /*вЫключаем минус на Y-OTG (8 pin PW1)*/
                          
digitalWrite(HUBpin1); /* ВЫключаем хаб = подаем + на управляющий транзюк хаба, тот закрывается и не пускает +5В с KIW (2вых)на хаб*/
                          
}
       if (
millis() - pauseTimeACC >= 1800 && flagACC == 0/* 3000 пауза 3с чтобы не пукал усилитель*/
                          
{
                          
digitalWrite(II_KIW_pin_POGOpin0); /*вЫключаем +5V (POGO(USB))*/
                          
}
      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 (превышение по току по выходам out1-4)********************************************************************************************************************************************************************************
   
      
    /*отслеживания аварийной ситуации 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(131);
    else  
digitalWrite(130);
    
blink_loop++;
  }
  
  
  
  
   
// Событие срабатывающее каждые 250 мс
  
if ( ( ms pauseDisplay ) > 350 || ms pauseDisplay )
  { 
    
pauseDisplay ms;
          
//_____________________________________________СООБЩЕНИЕ НА LCD ДИСПЛЕЙ____________________________________________________________

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 дисплея

if (    ( (millis() / 60000 ) <)   ){lcd.setCursor(20); lcd.print("v");lcd.setCursor(30); lcd.print(ver);} /* Вывод версии блока на дисплей. */
//вывод времени работы
  
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  v75 111 0.000|          1 строка   *   вывод кол-ва минут работы блока                 *флаг АКБ*флаг АСС*флаг REM*  вывод напряжения АСС
  |616  10    14.50|    
   ================           2 строка   *   кол-во минут, оставшиеся до выключения блока    *     millis() - TimerREM, минут        *    вывод напряжения АКБ    
   

*/
//__________________________________________________________________________________________________________________________
  
}
    
 
/******************************************конец индикации светодиодом и задержка вывода на дисплей********************************************************************************************************************************************************************************/
   
 /*настраиваем режимы моргания встроенного светодиода ардуины*/  
  
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()*/
//===========================================================================================================================================================================================================================================================================
//===========================================================================================================================================================================================================================================================================
//=========================================================================================================================================================================================================================================================================== 


avaRi 28.11.2016 19:39

Цитата:

Сообщение от avaRi (Сообщение 375407)
как два дня тестирую блок в машине.
И есть полтергейст со вторым каналом KIW, Когда тачка холодная он не включается. Стоит проехать и прогреть машину примерно через 20 мин все отлично. можно целый день ездить. Включать и отключать зажигание. стартует отлично. Но если тачка остыла все он в отвале! вернее он уходит в защиту. На управляющей ноге есть +2.5v

Все ЕСТЬ РЕШЕНИЕ!
Пока пол дня проездил.
Вообщем нужно поставить больше емкость конденсатора на второй канал С4.
Сейчас стоит 2 по 2200mUF. Но и норм работало и на 3300.

R9 и R10 у меня 102
Вообщем все просто. пока машина холодная KIw не мог нормально запустить 2 канал так как емкость была низкая. И как прогревался начинал норм работать! И KIW не уходит в защиту.
А это я проверял просто на управляющей ноге есть 2.5в. а канал включался и гас почти сразу(это видно по светодиоду на хабе).
Либо у меня получалось симулировать на столе просто передернув питание на хабе получали просадку. Канал уходил в защиту.
ДЛЯ справки!
Емкость алюминиевого электролитического конденсатора зависит от температуры. С понижением температуры (особенно ниже 0°C) возрастает вязкость электролита и его удельное электрическое сопротивление, что ведет к уменьшению емкости конденсатора.

avaRi 28.11.2016 19:48

Цитата:

Сообщение от oleg707 (Сообщение 375709)
Ребят, есть еще вопрос.
Периодически мне что-либо приходит в голову и я это реализую (в данном случае речь идёт про код - скетч).
Такой код получает статус тестового. Обычно по прошествии 10-50 дней тест успешно завершается ( иногда неуспешно).
Так вот вопрос: Нужно ли выкладывать самые свежие версии программы, либо ждать и потом выкладывать?

Олег еще раз огромное спасибо за поддержку проекта!
Может возможно скинуть или создать лист изменений в прошивках.
Новая прошивка Реализовал то то или подправил это?

oleg707 28.11.2016 20:07

Цитата:

Сообщение от avaRi (Сообщение 375753)
Олег еще раз огромное спасибо за поддержку проекта!
Может возможно скинуть или создать лист изменений в прошивках.
Новая прошивка Реализовал то то или подправил это?

там в начале скетча основное описание.
А на каждое изменение кода лист изменений не напишешь.

oleg707 28.11.2016 20:11

Цитата:

Сообщение от avaRi (Сообщение 375751)
Все ЕСТЬ РЕШЕНИЕ!
Пока пол дня проездил.
Вообщем нужно поставить больше емкость конденсатора на второй канал С4.
Сейчас стоит 2 по 2200mUF. Но и норм работало и на 3300.

R9 и R10 у меня 102
Вообщем все просто. пока машина холодная KIw не мог нормально запустить 2 канал так как емкость была низкая. И как прогревался начинал норм работать! И KIW не уходит в защиту.
А это я проверял просто на управляющей ноге есть 2.5в. а канал включался и гас почти сразу(это видно по светодиоду на хабе).
Либо у меня получалось симулировать на столе просто передернув питание на хабе получали просадку. Канал уходил в защиту.
ДЛЯ справки!
Емкость алюминиевого электролитического конденсатора зависит от температуры. С понижением температуры (особенно ниже 0°C) возрастает вязкость электролита и его удельное электрическое сопротивление, что ведет к уменьшению емкости конденсатора.

Хм, можно воткнуть по 3300 и посмотреть. надо попробовать.
Тут есть ньюанс - на 3й версии БП стояли кондёры по 1500 mF, и отлично работало (ни глюков, ни зависаний - просто сказка)
В чём разница с 5м?!

avaRi 28.11.2016 23:04

Олег может немного не в тему!
Подскажи как ты отправляешь в сон планшет?
Вернее как у тебя музыка ставится на паузу? У меня Таскер этим рулит по событию Есть питание +5в на порту зарядки или нет. Я не использую датчик Холла. Вот думаю подключить его. Может есть событие по датчику Холла?

oleg707 29.11.2016 01:06

Цитата:

Сообщение от avaRi (Сообщение 375784)
Олег может немного не в тему!
Подскажи как ты отправляешь в сон планшет?
Вернее как у тебя музыка ставится на паузу? У меня Таскер этим рулит по событию Есть питание +5в на порту зарядки или нет. Я не использую датчик Холла. Вот думаю подключить его. Может есть событие по датчику Холла?

погас экран - сообытие.
Музыка на паузу - отключилась звуковуха - плеер стал на паузу. и запомнил место. Поверамп.
Таскер всё никак лень не даёт поставить, 2 года пользуюсь аутомейтит.

oleg707 29.11.2016 18:33

снял свой блок с машины.
кондёр на 1м канале 2200*10В
на 2м канале 1000*10В
Иногда (редко) глючит после старта. Но от зажигания запуск всегда 100%.

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


Нашел у себя новые 3300*6,3В (прям 2 штуки) (покупал для ремонта материнок)
Выпаял старые, запаял новые... Проверяю.
Слышу писк, секунд через 10 после включения блока. Ну как писк - не такая работа кив. И ток начал расти. 0,09А, 0,12А, 0,2А, 0,35А. Без нагрузки то!
Ну я вырубил, осматриваю. Вижу, на одном канале кондёр ГОРЯЧИЙ. Думал брак - ан нет, я тупо полярность попутал.
Перепаял правильно - всё норм, завтра в машину воткну.

А вы говорите кив щёлкает, работает громко, запуск неустойчивый, канал отваливается...

Az0m@ 29.11.2016 23:41

Цитата:

Сообщение от oleg707 (Сообщение 375409)


Вот как Вложение 45654 выглядит то, на чём я сейчас езжу с этими скетчами: Вложение 45655

что дает повышенная напруга на батареи? относительно старой версии где 3,8в

oleg707 30.11.2016 13:30

Цитата:

Сообщение от Az0m@ (Сообщение 375911)
что дает повышенная напруга на батареи? относительно старой версии где 3,8в

ничего по факту. сделал для эксперимента.



Может кому будет интересно. Прямое управление регистрами на ардуине. Увеличивает скорость раз в 16.

например BLINK

PHP код:

/*
http://myrobot.ru/stepbystep/pr_mcports.php

pin D13 = PB5 

*/


// the setup function runs once when you press reset or power the board
void setup() {

  
  
DDRB 0b00100000;// pinMode(13, OUTPUT); //DDRx - регистр направления передачи данных светодиодик на плате ардуины
}

// the loop function runs over and over again forever
void loop() {

PORTB |= 1<<5//установит "1" (сигнал высокого уровня) на выводе PB5. //digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(2000);                       // wait for a second


PORTB &= ~(1<<5); //установит "0" (сигнал низкого уровня) на выводе PB5. //digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
delay(500);                       // wait for a second



xDriver 30.11.2016 21:36

ну это и понятно
в угоду универсальности для множества плат
"родной" digitalWrite выглядит ужасно :)
Цитата:

void digitalWrite(uint8_t pin, uint8_t val)
{
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *out;

if (port == NOT_A_PIN) return;

// If the pin that support PWM output, we need to turn it off
// before doing a digital write.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);

out = portOutputRegister(port);

uint8_t oldSREG = SREG;
cli();

if (val == LOW) {
*out &= ~bit;
} else {
*out |= bit;
}

SREG = oldSREG;
}

oleg707 01.12.2016 21:31

Вложений: 1
передалал аппаратно ( эксперементально) управление 2м каналом кива.
Раньше шло через 10К резак, теперь идёт через 100ом резак и диод. То есть на кив пропускает только минус.

Перекроил скетч, поменял порядок и тайминги пинов при включении- выключении зажигания. По образу и подобию 3й версии ( которая работает... просто работает, прямо боюсь сглазить)
Заодно в 3й версии активировал REM. Теперь поиграюсь, блоки поподкидываю - фишки одинаковые и совместимые.
Печатки 5 и 3 версии и скетчи (ТЕСТОВЫЕ) в архиве.


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

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