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

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > AndroidCar > Питание

Результаты опроса: Писать ли про развитие проекта, или пофиг, есть свой и работает.
Пиши дальше 210 96.33%
Не пиши, лучше займись чем нибудь (другим) полезным. 8 3.67%
Голосовавшие: 218. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2016, 10:58   #461
Az0m@
Старший Пользователь
 
Регистрация: 07.01.2016
Регион: 02
Сообщений: 152
Az0m@ is on a distinguished road
По умолчанию

одну проблему вроде как решил, изменил код:
Код:
  if (blink_mode != modes[5] || blink_mode != modes[5])  
  { 
  if (flagAKB == 0 ){blink_mode = modes[0];}                 // индикация напруги батареи на ардуинине.- низкое напряжение АКБ авто 
  if (flagAKB == 1 && flagACC == 1) {blink_mode = modes[2];} //- нормальное напряжение, включено ACC, рабочий режим. 
  if (flagAKB == 1 && flagACC == 0) {blink_mode = modes[6];} //- нормальное напряжение АКБ авто, ACC выключено.
на
Код:
  if (blink_mode != modes[5] || blink_mode != modes[5])  
  { 
  if (flagAKB == 0 ){blink_mode = modes[0];}                 // индикация напруги батареи на ардуинине.- низкое напряжение АКБ авто 
  if (flagAKB == 1 && flagACC == 1) {blink_mode = modes[1];} //- нормальное напряжение, включено ACC, рабочий режим. 
  if (flagAKB == 1 && flagACC == 0) {blink_mode = modes[2];} //- нормальное напряжение АКБ авто, ACC выключено.
теперь если не подключать БП (когда арудирина при этом включен по ЮСБ), то светодиод L не горит, при подаче питания - моргает, при подаче АСС - горит постоянно.

остался вопрос момент только под 2ому пину на пого пин. почему при подключенном планшете там не появляется +5В. при чем мультиком проверил что напруга не приходит с самого KIW. причем если пробудить планшет и после этого только подключить 2ой пин к пого то зарядка работает. но стоит переподключить АСС и снова на 2ом пину нет +5В
Az0m@ вне форума   Ответить с цитированием
Старый 02.06.2016, 13:45   #462
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
Question

Цитата:
Сообщение от Az0m@ Посмотреть сообщение
одну проблему вроде как решил, изменил код:
Код:
  if (blink_mode != modes[5] || blink_mode != modes[5])  
  { 
  if (flagAKB == 0 ){blink_mode = modes[0];}                 // индикация напруги батареи на ардуинине.- низкое напряжение АКБ авто 
  if (flagAKB == 1 && flagACC == 1) {blink_mode = modes[2];} //- нормальное напряжение, включено ACC, рабочий режим. 
  if (flagAKB == 1 && flagACC == 0) {blink_mode = modes[6];} //- нормальное напряжение АКБ авто, ACC выключено.
на
Код:
  if (blink_mode != modes[5] || blink_mode != modes[5])  
  { 
  if (flagAKB == 0 ){blink_mode = modes[0];}                 // индикация напруги батареи на ардуинине.- низкое напряжение АКБ авто 
  if (flagAKB == 1 && flagACC == 1) {blink_mode = modes[1];} //- нормальное напряжение, включено ACC, рабочий режим. 
  if (flagAKB == 1 && flagACC == 0) {blink_mode = modes[2];} //- нормальное напряжение АКБ авто, ACC выключено.
теперь если не подключать БП (когда арудирина при этом включен по ЮСБ), то светодиод L не горит, при подаче питания - моргает, при подаче АСС - горит постоянно.

остался вопрос момент только под 2ому пину на пого пин. почему при подключенном планшете там не появляется +5В. при чем мультиком проверил что напруга не приходит с самого KIW. причем если пробудить планшет и после этого только подключить 2ой пин к пого то зарядка работает. но стоит переподключить АСС и снова на 2ом пину нет +5В
во первых я предлагаю разобраться для начала с режимами индикации. Проц один и тот же, прога та же самая, а поведение РАЗНОЕ. Так не бывает.
во вторых, Планшет ВООБЩЕ никаким боком не должен влиять на поведение блока питания. Совсем!

Может тебе вибер дать или скайп, так проще и быстрее, чем тонны текста писакать.
oleg707 вне форума   Ответить с цитированием
Старый 02.06.2016, 14:23   #463
Az0m@
Старший Пользователь
 
Регистрация: 07.01.2016
Регион: 02
Сообщений: 152
Az0m@ is on a distinguished road
По умолчанию

Цитата:
Сообщение от oleg707 Посмотреть сообщение
во первых я предлагаю разобраться для начала с режимами индикации. Проц один и тот же, прога та же самая, а поведение РАЗНОЕ. Так не бывает.
во вторых, Планшет ВООБЩЕ никаким боком не должен влиять на поведение блока питания. Совсем!

Может тебе вибер дать или скайп, так проще и быстрее, чем тонны текста писакать.
И то и другое есть, чиркани пжлста контакты в личку
Az0m@ вне форума   Ответить с цитированием
Старый 03.06.2016, 17:04   #464
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

Вот что получилось с "антизависанием".
Делей в 10 секунд, такой большой, потому что после восстановления питания планшет почему-то просыпается на несколько секунд показывая зарядку.
Осталось организовать вочдог на 555.
Решил использовать SE555 подключённую через диод и с кондёром на питание автомобиля (у SE максимальное 18 вольт)
и дёргать ей ногу EN БП на kis3r33 который питает ардуину следящую за питанием.
PHP код:
unsigned long time0 0;
unsigned long time1 0;
boolean OnceLoPow false;
boolean TabErr true;
unsigned int accpower 0;
int accpowercount 0;
int accpoweravg 1023;

void setup() {
  
//Arduino Pro-Micro
  //21 = A3
  //20 = A2
  //19 = A1
  //18 = A0
pinMode(18OUTPUT); //Tablet button
pinMode(19OUTPUT); //HUB power
pinMode(20INPUT);  //Tablet Screen action. Analog! If input >232 then screen on 
pinMode(21OUTPUT); //Tablet power
pinMode(10OUTPUT); //Tablet power supply low if car bat level low

pinMode(A7INPUT);   //Car bat level (In bord PIN 6!!!) 541=11,91 **analogRead(A7) * (1.1 / 1023.0*20.50);
pinMode(8INPUT);   //Radio input
pinMode(9INPUT);   //ACC input

digitalWrite(21LOW);
digitalWrite(19LOW);
digitalWrite(18LOW);
digitalWrite(10LOW);
}

void loop() {
WorkLoop();
//Измеряем среднее значение напряжения автомобиля.
  
if ((millis() - time0) > 100){
      if (
accpowercount == 60){
      
accpoweravg accpower 60;
      
accpowercount 0;
      
accpower 0;
      }
      else{
      
accpower accpower analogRead(A7);
      
accpowercount accpowercount 1;
      }
    
time0 millis();
  }

//Планшет завис, питание выключено, напряжение в норме.
  
if ((millis() - time1) == 5000 && analogRead(20) > 400 && !TabErr){
       
digitalWrite(10HIGH);
       
delay(2000);
       
digitalWrite(10LOW);
       
delay(10000);
       
TabErr true;
  }
}

void WorkLoop(){
//_____________________________ON_______________________________
  
if (digitalRead(8) == HIGH || digitalRead(9) == HIGH){
    
OnceLoPow false;
    
digitalWrite(19LOW);
    
digitalWrite(21LOW);
    if(
analogRead(20) < 400) {
     
BtnClick(300);
      if (
analogRead(20) < 400BtnClick(3000);
    }
  }
//____________________STAND-BY or LO POWER_______________________  
   
else{
    if (
accpoweravg 541){
      
OnceLoPow false;
      if(
analogRead(20) > 400) {
        
BtnClick(300);
        
delay(4000);
        if (
analogRead(20) > 400 && TabErr){
            
time1 millis();
            
TabErr false;
        }
      }
     
digitalWrite(19HIGH);
    }
    else{
      if (!
OnceLoPow){
       
digitalWrite(10HIGH);
       
delay(2000);
       
digitalWrite(10LOW);
       
OnceLoPow true;
      }
    
digitalWrite(19HIGH);
    
digitalWrite(21HIGH);  
    }
   }
}

void BtnClick(int Interval) {
    
digitalWrite(18HIGH);
    
delay(Interval);
    
digitalWrite(18LOW);
    
delay(1000);
  } 
T_r_D вне форума   Ответить с цитированием
Старый 03.06.2016, 19:06   #465
ruzzzteg
Старший Пользователь
 
Регистрация: 04.07.2013
Возраст: 42
Город: Almaty
Регион: Казахстан
Машина: FJ Cruiser
Сообщений: 119
ruzzzteg has a spectacular aura aboutruzzzteg has a spectacular aura about
По умолчанию

Дядьки читал читал... так и не понял...
подскажите сильно не ругаясь...
какой в итоге блок питания лучше собрать...
если можно сылкой
ruzzzteg вне форума   Ответить с цитированием
Старый 04.06.2016, 01:38   #466
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от ruzzzteg Посмотреть сообщение
Дядьки читал читал... так и не понял...
подскажите сильно не ругаясь...
какой в итоге блок питания лучше собрать...
если можно сылкой
5й, в шапке же есть

можно и 3й, но я её забросил, так что все последние плюшки в 5й
http://pccar.ru/showpost.php?p=354913&postcount=278
oleg707 вне форума   Ответить с цитированием
Старый 04.06.2016, 01:41   #467
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
Вот что получилось с "антизависанием".
Делей в 10 секунд, такой большой, потому что после восстановления питания планшет почему-то просыпается на несколько секунд показывая зарядку.
Осталось организовать вочдог на 555.
Решил использовать SE555 подключённую через диод и с кондёром на питание автомобиля (у SE максимальное 18 вольт)
и дёргать ей ногу EN БП на kis3r33 который питает ардуину следящую за питанием.
PHP код:
unsigned long time0 0;
unsigned long time1 0;
boolean OnceLoPow false;
boolean TabErr true;
unsigned int accpower 0;
int accpowercount 0;
int accpoweravg 1023;

void setup() {
  
//Arduino Pro-Micro
  //21 = A3
  //20 = A2
  //19 = A1
  //18 = A0
pinMode(18OUTPUT); //Tablet button
pinMode(19OUTPUT); //HUB power
pinMode(20INPUT);  //Tablet Screen action. Analog! If input >232 then screen on 
pinMode(21OUTPUT); //Tablet power
pinMode(10OUTPUT); //Tablet power supply low if car bat level low

pinMode(A7INPUT);   //Car bat level (In bord PIN 6!!!) 541=11,91 **analogRead(A7) * (1.1 / 1023.0*20.50);
pinMode(8INPUT);   //Radio input
pinMode(9INPUT);   //ACC input

digitalWrite(21LOW);
digitalWrite(19LOW);
digitalWrite(18LOW);
digitalWrite(10LOW);
}

void loop() {
WorkLoop();
//Измеряем среднее значение напряжения автомобиля.
  
if ((millis() - time0) > 100){
      if (
accpowercount == 60){
      
accpoweravg accpower 60;
      
accpowercount 0;
      
accpower 0;
      }
      else{
      
accpower accpower analogRead(A7);
      
accpowercount accpowercount 1;
      }
    
time0 millis();
  }

//Планшет завис, питание выключено, напряжение в норме.
  
if ((millis() - time1) == 5000 && analogRead(20) > 400 && !TabErr){
       
digitalWrite(10HIGH);
       
delay(2000);
       
digitalWrite(10LOW);
       
delay(10000);
       
TabErr true;
  }
}

void WorkLoop(){
//_____________________________ON_______________________________
  
if (digitalRead(8) == HIGH || digitalRead(9) == HIGH){
    
OnceLoPow false;
    
digitalWrite(19LOW);
    
digitalWrite(21LOW);
    if(
analogRead(20) < 400) {
     
BtnClick(300);
      if (
analogRead(20) < 400BtnClick(3000);
    }
  }
//____________________STAND-BY or LO POWER_______________________  
   
else{
    if (
accpoweravg 541){
      
OnceLoPow false;
      if(
analogRead(20) > 400) {
        
BtnClick(300);
        
delay(4000);
        if (
analogRead(20) > 400 && TabErr){
            
time1 millis();
            
TabErr false;
        }
      }
     
digitalWrite(19HIGH);
    }
    else{
      if (!
OnceLoPow){
       
digitalWrite(10HIGH);
       
delay(2000);
       
digitalWrite(10LOW);
       
OnceLoPow true;
      }
    
digitalWrite(19HIGH);
    
digitalWrite(21HIGH);  
    }
   }
}

void BtnClick(int Interval) {
    
digitalWrite(18HIGH);
    
delay(Interval);
    
digitalWrite(18LOW);
    
delay(1000);
  } 
kis3r33 слишком ЖИРНО для дежурного источника питания. Или режима ожидания у тебя нет?
Сколько потребление самого блока при выключенном зажигании и при активном состоянии (без планшета) ?
oleg707 вне форума   Ответить с цитированием
Старый 04.06.2016, 04:08   #468
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

Пока ни чего не мерил.
Я потом схему выкину- рисовать её в лом.
Суть такая- промикра запитана от киса и управляет двумя блоками питания на LM2596.
Один БП на хаб, флешку и ардуину которая связывает CAN с планшетом.
Второй (на самом деле спараллеленые два БП с одним резистором подстройки, так как один от планшета сильно греется)на планшет выдающий 4,35 вольта и при необходимости "жёстко" вырубить планшет падающий до 2,8.

С отключённым зажиганием работают два БП на планшет и БП на кисе на ардуину. Если питание провалится ниже заданного предела, то останется работать только БП на кисе и ардуина.


Сегодня ради развлекухи решил сделать часы- на столе валяется промикра ещё одна, часы на DS3231 и напоролся на косяк. Я конечно попробую на второй промикре, но походу это у всех!
Заливаем в промикру тупой блинк
if (millis() - timer0 > 1000){
digitalWrite(19, !digitalRead(19))
timer0 = millis();
}
И получаем что первую минуту интервал выдерживается, а потом светодиод тупо горит! Нет- промикра не виснет и светодиод на самом деле мигает, но очень быстро.
Если в луп накидать кода, то станет видно это.

Заметил вообще случайно! В часах сделал палку крутящиюся которая на дисплее отображалась, так вот первую минуту она крутилась с заданной скоростью, а потом ускорялась в несколько раз. Ей не давал в сплошной засвет привратиться только код самих часов поскольку lcd.print работает долго.

У кого есть промикра- проверьте плиз.
T_r_D вне форума   Ответить с цитированием
Старый 04.06.2016, 13:32   #469
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
Пока ни чего не мерил.
Я потом схему выкину- рисовать её в лом.
Суть такая- промикра запитана от киса и управляет двумя блоками питания на LM2596.
Один БП на хаб, флешку и ардуину которая связывает CAN с планшетом.
Второй (на самом деле спараллеленые два БП с одним резистором подстройки, так как один от планшета сильно греется)на планшет выдающий 4,35 вольта и при необходимости "жёстко" вырубить планшет падающий до 2,8.

С отключённым зажиганием работают два БП на планшет и БП на кисе на ардуину. Если питание провалится ниже заданного предела, то останется работать только БП на кисе и ардуина.


Сегодня ради развлекухи решил сделать часы- на столе валяется промикра ещё одна, часы на DS3231 и напоролся на косяк. Я конечно попробую на второй промикре, но походу это у всех!
Заливаем в промикру тупой блинк
if (millis() - timer0 > 1000){
digitalWrite(19, !digitalRead(19))
timer0 = millis();
}
И получаем что первую минуту интервал выдерживается, а потом светодиод тупо горит! Нет- промикра не виснет и светодиод на самом деле мигает, но очень быстро.
Если в луп накидать кода, то станет видно это.

Заметил вообще случайно! В часах сделал палку крутящиюся которая на дисплее отображалась, так вот первую минуту она крутилась с заданной скоростью, а потом ускорялась в несколько раз. Ей не давал в сплошной засвет привратиться только код самих часов поскольку lcd.print работает долго.

У кого есть промикра- проверьте плиз.
кис много жрёт для дежурного источника. Крен5 используй.

А распиши ка подробнее, как работает эта строчка, в качестве ликбеза.digitalWrite(19, !digitalRead(19)
timer0 ансигнед лонг?
На другой ардуине такое же поведение ( на базе 328P или меги) ?

Последний раз редактировалось oleg707; 04.06.2016 в 14:15.
oleg707 вне форума   Ответить с цитированием
Старый 04.06.2016, 17:10   #470
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

oleg707 про ансигнед лонг угадал! Я в ночи написал ансигнед инт случайно- отсюда и глюк.

А строчка- ну чего тут не понятного?
Задаётся состояние пина обратное его нынешнему состоянию.
Я надеюсь что все знают что типы типа булена можно в условии указывать как
boolean A = true;
if (A) {} Это условие выполнится когда A == true
if (!A) {} Это условие выполнится когда A == false

Соответственно в верхней строчке берётся просто обратное состояние от нынешнего.
Тоесть если оно HIGH, тоесть true, то получаем !HIGH (!true), тоесть false и наоборот.

а если ещё точнее, то
if (A == LOW)
A = HIGH;
else
A = LOW;
тоесть сокращённо
A != A;

Хреново я объясняю короче
T_r_D вне форума   Ответить с цитированием
Ответ

Метки
arduino, nexus7, блок питания, блок питания планшета


Здесь присутствуют: 28 (пользователей: 0 , гостей: 28)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



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


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