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

Вернуться   PCCar.ru - Ваш автомобильный компьютер > Всё Остальное > Проекты > Рабочий журнал

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2016, 20:10   #21
RyuuKiiroi
Старший Пользователь
 
Регистрация: 15.08.2015
Возраст: 34
Город: Жуковский
Регион: 50, 90, 150
Машина: Emgrand X7
Сообщений: 105
RyuuKiiroi is on a distinguished road
По умолчанию

Подскажет кто как правильно заставить работать millis ?
Не получается сделать отсчет для каждого действия, время идет общее.
Или просто отсчет идет, а ничего не срабатывает.

Код:
int ACC = A4; //сигнал АСС
int Nex = 2; //несус
int Hub = 3; //хаб
int Per = 5; //периферия
float Vout = 0.00;
float Vbat = 0.00;
float R1 = 24000.0; // сопротивление R8 (24кОм)
float R2 = 680.0; // сопротивление R7 (680Ом)
int ACCState = 0;
int State = 0;
unsigned long time=0;
unsigned long looptime;

void setup() {               
  
  pinMode(ACC,INPUT);
  pinMode(Per,OUTPUT);  
  pinMode(Nex,OUTPUT); 
  pinMode(Hub,OUTPUT);
  
}
 
void loop() {
  
  
  
  //Serial.print("analogRead(ACC): ");
  //Serial.println(analogRead(ACC));
  Serial.print("Time: ");
  Serial.println(time);
  Serial.print("Vbat: ");
  Serial.println(Vbat);
  
  // считывание аналогового значения
   ACCState = analogRead(ACC);
   Vout = (ACCState * 5.0) / 1024.0;
   Vbat = Vout / (R2/(R1+R2));
   if (Vbat<0.09)
     {
       Vbat=0.00;// обнуляем нежелательное значение
     }
  
  if (Vbat >= 12.00)
  {
  time = millis();
  }
  
if (millis() - time >= 200 && Vbat >= 12.00)//если напряжение больше "Х"
   {
   digitalWrite(Per,HIGH);//подаем питание на управляющий пин
   time = 0;
   State = 1;
   }
  
  if (State == 1)
  {
  time = millis();
    State = 2;
  }
  
if (millis() - time >= 200 && State == 2)
   {
   digitalWrite(Nex, HIGH);
   time = 0;
   State = 3;
   } 
  
  if (State == 3)
  {
  time = millis();
    State = 4;
  }
  
  if (Vbat <= 12.00)//если напряжение меньше "Х"
  {
  		if (millis() - time >= 200)
          digitalWrite(Per,LOW);//обестачиваем схему
          digitalWrite(Nex,LOW);
  }
}
__________________
Nexus 7 2013 Geely Emgrand X7
RyuuKiiroi вне форума   Ответить с цитированием
Старый 23.03.2016, 21:35   #22
skanch
Модератор
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 58
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,600
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Здесь почитай-возможно это оно...
skanch вне форума   Ответить с цитированием
Старый 28.03.2016, 13:28   #23
RyuuKiiroi
Старший Пользователь
 
Регистрация: 15.08.2015
Возраст: 34
Город: Жуковский
Регион: 50, 90, 150
Машина: Emgrand X7
Сообщений: 105
RyuuKiiroi is on a distinguished road
По умолчанию

Не заработал у меня в общем код, который везде на этом форуме используется, по крайней мере в том варианте, в котором мне нужен. Получилось что то такое. Не знаю, нужен ли еще какой то функционал.

upd
Хотя добавлю наверное еще контроль напряжения, по питающей линии, чтобы если аккумулятор садится, то сразу вырубало, прикрутить бы еще отправку сообщения на телефон при этом, вдруг фары там не выключил))

Код:
int ACC = A0; //сигнал АСС
int Per1 = 2; //периферия1
int Per2 = 10; //периферия2
int Hub = 3; //хаб
int Nex = 5; //несус
float Vout = 0.00;
float Vbat = 0.00;
float R1 = 24000.0; // сопротивление R8 (24кОм)
float R2 = 680.0; // сопротивление R7 (680Ом)
int ACCState = 0;
int State = 0;
unsigned long previousMillis1=0;
unsigned long previousMillis2=0;
unsigned long previousMillis3=0;
unsigned long previousMillis4=0;
unsigned long previousMillis5=0;


void setup() {               
  
  pinMode(ACC,INPUT);
  pinMode(Per1,OUTPUT);
  pinMode(Per2,OUTPUT);  
  pinMode(Nex,OUTPUT); 
  pinMode(Hub,OUTPUT);
  
}
 
void loop() {
  

  unsigned long currentMillis = millis();
  unsigned long currentMillis2 = millis();
  
  //Serial.print("analogRead(ACC): ");
  //Serial.println(analogRead(ACC));
  Serial.print("Time: ");
  Serial.println(currentMillis);
  Serial.print("Vbat: ");
  Serial.println(Vbat);
  
  // считывание аналогового значения
   ACCState = analogRead(ACC);
   Vout = (ACCState * 5.0) / 1024.0;
   Vbat = Vout / (R2/(R1+R2));
   if (Vbat<0.09)
     {
       Vbat=0.00;// обнуляем нежелательное значение
     }


  //включение реле, вклюление планшета
if ((Vbat >= 12.00) && ((unsigned long)(currentMillis - previousMillis1) >= 3000))//если напряжение больше "Х"
   {
   previousMillis1 = currentMillis;
   digitalWrite(Nex,HIGH);//подаем питание на управляющий пин
   State = 1;
   }

   //периферия1
if ((State == 1) && ((unsigned long)(currentMillis - previousMillis2) >= 5000))
   {
   previousMillis2 = currentMillis;
   digitalWrite(Per1, HIGH);
   State = 2;
   }

   //вклюление хаба
if ((State == 2) && ((unsigned long)(currentMillis - previousMillis3) >= 10000))
   {
   previousMillis3 = currentMillis;
   digitalWrite(Hub, HIGH);
   State = 3;
   }

   //периферия2
if ((State == 3) && ((unsigned long)(currentMillis - previousMillis4) >= 5000))
   {
   previousMillis4 = currentMillis;
   digitalWrite(Per2, HIGH);
   State = 4;
   }

//отсчет при потере напряжения
if ((State == 4) && Vbat <= 12.00)//если напряжение меньше "Х"
   {
    previousMillis5 = currentMillis2;
    State = 5;
   }

  //отключаем периферию 2
if ((State == 5) && (unsigned long)(currentMillis2 - previousMillis5) >= 2000)
   {
    digitalWrite(Per2,LOW);
   }

   //отключаем периферию
if ((State == 5) && (unsigned long)(currentMillis2 - previousMillis5) >= 4000)
   {
    digitalWrite(Per1,LOW);
   }

  //отключаем хаб
if ((State == 5) && (unsigned long)(currentMillis2 - previousMillis5) >= 6000)
   {
    digitalWrite(Hub,LOW);
   }

  //обестачиваем схему
if ((State == 5) && (unsigned long)(currentMillis2 - previousMillis5) >= 8000)
   {
    digitalWrite(Nex,LOW);
   }
}
__________________
Nexus 7 2013 Geely Emgrand X7
RyuuKiiroi вне форума   Ответить с цитированием
Старый 04.04.2016, 17:49   #24
RyuuKiiroi
Старший Пользователь
 
Регистрация: 15.08.2015
Возраст: 34
Город: Жуковский
Регион: 50, 90, 150
Машина: Emgrand X7
Сообщений: 105
RyuuKiiroi is on a distinguished road
По умолчанию

В чем может быть проблема. Паяюсь к точкам на плате, те что залужены и идут вроде как сразу от разъема. И не могу получить с них сигнал.
Если подключаю через OTG, то все сразу подключается (ардуинка).
В чем вообще там может быть косяк?
Провода данных пробовал менять местами. Вставлял OTG, когда было подключено через точки. Единственное что, не паял плюсовой провод (через OTG он идет конечно), может это как то влиять на ардуину?
Сама ардуина (pro micro) запитана через ACC.

UPD
Проблему решил, на ардуину правда нужно подавать питание, на usb порт.
Миниатюры
Нажмите на изображение для увеличения
Название: IMG_20150127_120626.jpg
Просмотров: 764
Размер:	64.4 Кб
ID:	43349  
__________________
Nexus 7 2013 Geely Emgrand X7

Последний раз редактировалось RyuuKiiroi; 04.04.2016 в 20:26.
RyuuKiiroi вне форума   Ответить с цитированием
Старый 08.02.2018, 01:59   #25
RyuuKiiroi
Старший Пользователь
 
Регистрация: 15.08.2015
Возраст: 34
Город: Жуковский
Регион: 50, 90, 150
Машина: Emgrand X7
Сообщений: 105
RyuuKiiroi is on a distinguished road
По умолчанию

Что то давно пропал, но спустя столько времени решил продолжить проект.
Было сделано:
Подиумы под динамики НЧ, URAL AS-W165MB, давно их уже поставил, играют очень низко, многим даже саб не нужен будет, но дверь внутри нужно хорошо подготовить, иначе играть не будут.


ВЧ Ural AS‑W25TW SQ и СЧ Ural AS-W87M SQ в стойки.
От AS-W50M отказался почти сразу, потому что начинают играть от 750Гц, а я хотел максимально поднять сцену вверх. Как только увидел новые диффузорные СЧ у них на сайте, сразу же купил их вместе с ВЧ и за неделю запилил в стойки.



Усилитель валяется на том же месте, им тоже займусь, но теперь уже URAL PT 8.120, поканально СЧ,ВЧ и мостом НЧ.

Сейчас леплю морду под магнитолу


Осталось определиться как вывести кнопки и чем ее покрыть.
__________________
Nexus 7 2013 Geely Emgrand X7
RyuuKiiroi вне форума   Ответить с цитированием
Старый 08.02.2018, 04:55   #26
skanch
Модератор
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 58
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,600
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Цитата:
Сообщение от RyuuKiiroi Посмотреть сообщение
...Осталось определиться как вывести кнопки ...
Как вариант...
skanch вне форума   Ответить с цитированием
Старый 08.02.2018, 12:32   #27
RyuuKiiroi
Старший Пользователь
 
Регистрация: 15.08.2015
Возраст: 34
Город: Жуковский
Регион: 50, 90, 150
Машина: Emgrand X7
Сообщений: 105
RyuuKiiroi is on a distinguished road
По умолчанию

Ну да, так думал уже, как самый простой вариант.
Хотя хочется чего то монолитного, как на самсунговских пультах, которые идут на qled моделях. И на некоторых электронных книгах бывают.
__________________
Nexus 7 2013 Geely Emgrand X7
RyuuKiiroi вне форума   Ответить с цитированием
Старый 08.02.2018, 13:20   #28
skanch
Модератор
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 58
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,600
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Можно сделать сенсорные кнопки... Такие модули тоже использую в своих проектах - маленькие и работают через изолятор очень хорошо (поместить под пластиковой панелью).
skanch вне форума   Ответить с цитированием
Старый 09.02.2018, 00:45   #29
RyuuKiiroi
Старший Пользователь
 
Регистрация: 15.08.2015
Возраст: 34
Город: Жуковский
Регион: 50, 90, 150
Машина: Emgrand X7
Сообщений: 105
RyuuKiiroi is on a distinguished road
По умолчанию

Сенсорные кнопки не очень удобны в машине, по обычным не особо попадешь на неровной дороге ))
Я имел ввиду такое, здесь ни одной сенсорной кнопки, но сделать сложновато будет.


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


Что то даже получилось, кнопки 2 нарастил и сточил все вровень с мордой.


А сенсорные кнопки где нить в другом месте попробую использовать ))
__________________
Nexus 7 2013 Geely Emgrand X7
RyuuKiiroi вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

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



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


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