Дата-логер

dronsoft
Offline
Зарегистрирован: 02.06.2011

Назрела такая тема нужно считать сигналы

1 обороты (желательно но не оязательно)

2 положение угла дросельной заслонки

3 длительность сигнала вывода инжектора А

длительность сигнала вывода инжектора В

что бы в логе было видно например угол заслонки 1%= 1вольту сигнал инжектора 1мс

Подскажите с чего начать )

как можно это осуществить.

dronsoft
Offline
Зарегистрирован: 02.06.2011

Параметры датчика дросельной заслонки

Напряжение при полностью закрытой дроссельной заслонке: 0,2–0,8 В
Напряжение при полностью открытой дроссельной заслонке: 4,0–4,8 В

Клапауций
Offline
Зарегистрирован: 10.02.2013

dronsoft пишет:

Подскажите с чего начать )

забить в хугл [модель автомобиля дата логер... или как оно там тазывается]

dronsoft
Offline
Зарегистрирован: 02.06.2011

а по существу меня не гкгл интересует а код

Бублик
Бублик аватар
Offline
Зарегистрирован: 05.12.2012

dronsoft пишет:

1 обороты (желательно но не оязательно)

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

dronsoft пишет:

2 положение угла дросельной заслонки

положение угла - легко, подаешь сигнал с датчика на аналоговый вход ардуинки и делов.

dronsoft пишет:

3 длительность сигнала вывода инжектора А

длительность сигнала вывода инжектора В

а зачем два инжектора мерить?

я делал так:

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

#define PIN0 2
#define PIN1 3

volatile unsigned long a, b, c, d;

void setup()
{
  pinMode(PIN0, INPUT);
  //digitalWrite(PIN0, HIGH);
  pinMode(PIN1, INPUT);
  //digitalWrite(PIN1, HIGH);

  attachInterrupt(PIN0, start, RISING);
  attachInterrupt(PIN1, finish, FALLING);

  Serial.begin(38400);
}

void start()
{
  a = micros();
}

void finish()
{
  b = micros();
  c = b - a;
  d = d + c;
}

void loop()
{
  //Serial.print("D");
  Serial.print(c); // длительность впрыска
  //Serial.print("S");
  Serial.print(d); // сумма длительностей
  //delay(1000);
}

 

dronsoft
Offline
Зарегистрирован: 02.06.2011

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

 

Бублик
Бублик аватар
Offline
Зарегистрирован: 05.12.2012

dronsoft пишет:

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

 

никак это в вычислении "импульса инжектора") не поможет

dronsoft
Offline
Зарегистрирован: 02.06.2011

А еще как это все к углу положения дросельной заслонки?