Считывание импульсов

Это не управлекние коробкой это датчик задней скорости и нейтрали на мкпп.мне нейтраль нужно поймать

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

просто провод от датчика на пин ардуино кидаю и все.меряю так же

вот ардуино его как видит

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

Что я должен разглядеть на этой картинке?

ну я же могу вам показать это буквами))простите уж

я тоже думаю, что можете. Почему не показываете?

int pin = A2;
unsigned long duration;
void setup() {
  Serial.begin (9600);
  pinMode(pin, INPUT);
}

void loop() {

  duration = pulsein(pin, HIGH);
  Serial.print(duration);
  delay (1000);
}

вот так стояло и показывало на нейтралли 1200 на задней 6800 на любой другой скорости 4600

Если у вас этот сигнал считывался функцией pulsein() - это никак не может быть 12мВ

Вывод - вам не нужен никакой усилитель.

я наверное меряю осцелографом неправильно я его первый раз в руки взял))а как мне тогда подать минус на любой пин,когда диапазон частот 1100-1600??

Хорошо бы все-таки разобраться с осцилом и померить импульс. Потому как в машине уровень напряжения 12в и логично, если и импульс датчика тоже. А подав 12в на пин Ардуины, вы сожгете плату. Если не на первый раз, то на третий или на 20-й - но гарантировано.

На датчике 5 вольт,мультик види 5 в на задней 3 в на любой другой а 1в на нейтралке,обычным плановым выходом эти вольты не меряются они пляшут и показывают не правильно,вот цифровым получилось стабильных цифр добиться через пульсен

У вас сигнал импульсный, его нет смысла измерять мультиметром, вы ничего не увидите. Нужен осциллограф.
Косвенно из того что что вы на разных режимах видите до 5в - можно сделать вывод что амплитуда там больше (наверно как раз 12в) - и, значит, подключать этот сигнал напрямую к пину категорически нельзя.
Может у вас пин уже выгорел, поэтому код и не работает теперь.

Ну у меня не одна аодуино,электроника в машине вся 5в у меня,а код должен работать? Без всяких усилений?

вот так попробуйте

volatile bool flag_imp = false;
unsigned long old_millis;
unsigned long count;  // счетчик

void setup() {
  pinMode(5, OUTPUT);
  Serial.begin(115200);
  // Устанавливаем прерывание
  // Функция myEventListener вызовется тогда, когда
  // на 2 пине (прерываниие 0 связано с пином 2)
  // изменится сигнал c LOW на HIGH
  attachInterrupt(0, myEventListener, RISING);  // ловим LOW-HIGH
  old_millis = millis();
}

void loop() {
  if (flag_imp) {
    count++;
    //delayMicroseconds(50);
    flag_imp = false;
  }
  if (millis() - old_millis >= 1000) {
    // считаем импульсы
    Serial.println(count);
    if (count > 1100 && count <= 1500) {
      // тут что-то делаем
	  digitalWrite(5, LOW);
    }
    if (count > 1500 && count < 2400) {
      // тут что-то делаем
	  digitalWrite(5, HIGH);
    }
    if (count > 2400 && count < 6500) {
      // тут что-то делаем
	  digitalWrite(5, HIGH);
    }
    count = 0;
    old_millis = millis();
  }
}

void myEventListener() {
  flag_imp = true;
}

Подключите датчик и покажите, что будет печатать в мониторе

Но мой совет - начать с осциллографа и еще раз посмотреть форму, частоту и амплитуду сигнала

на осциллографе у него 5 милливольт на клетку, насколько я вижу именно 12 милливольт импульс, если ТС включил на щупе делитель на 10, то это 120 милливольт, фото щупа в студию

Я мерил не правильно,сейчас все сделаю ,покажу осцелограф

хотя я лучше так бы сделал

unsigned long old_millis;
volatile unsigned long CC = 0;  // счетчик

void setup() {
  pinMode(5, OUTPUT);
  Serial.begin(115200);
  // Устанавливаем прерывание
  // Функция myEventListener вызовется тогда, когда
  // на 2 пине (прерываниие 0 связано с пином 2)
  // изменится сигнал c LOW на HIGH
  attachInterrupt(0, myEventListener, RISING);  // ловим LOW-HIGH
  old_millis = millis();
}

void loop() {
 
  if (millis() - old_millis >= 1000) {
    // считаем импульсы
    noInterrupts();
    unsigned long count = CC;
    CC =0;
    interrupts();
    Serial.println(count);
    if (count > 1100 && count <= 1500) {
      // тут что-то делаем
	  digitalWrite(5, LOW);
    }
    if (count > 1500 && count < 2400) {
      // тут что-то делаем
	  digitalWrite(5, HIGH);
    }
    if (count > 2400 && count < 6500) {
      // тут что-то делаем
	  digitalWrite(5, HIGH);
    }
    count = 0;
    old_millis = millis();
  }
}

void myEventListener() {
  CC++;
}