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

Ну амплитуду тут вам пусть @ua6em читает :slight_smile:

А вот что мне кажется интересно - что частота всех сигналов одна, 122 Гц, а отличаются они скважностью. Если это правда - то ваш метод определения сигналов тут не годится и код нужен совсем другой.

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

дак что делать ? есть какое то решение

интересно а как может 50в прилетать если питание машины12в или там преобразователь какой то

кувалда решение многих проблем…
Тут у тебя 5 вольт, откуда и как…ты видимо пришел потроллить?
https://forum.arduino.ru/uploads/default/original/3X/a/7/a722f365b4ff1f6cde581451388a7420fa38f24a.jpeg

я просто помощи прошу.сам не могу разобраться нифига

прокомментируй каждую картинку, что делал и откуда такие данные

я кстати на щупе делитель включил и последние фотки были с делителем

и переключаю передачи там где узко на нейтрале где шире там передача

значит у тебя импульс прилетает до 60 вольт, надо на вход сделать делитель ограничив напряжение подаваемое на ардуино4 вольтами, это ты в состоянии сделать?

мне тоже интересно. Ответа не знаю.
Может другие что подскажут.

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

хз.подскажите если не трудно

а что подходит?нужно сперва ограничть напряжеие

вход ->100к - выход на пин ардуино> 8.2к - GND

unsigned long old_millis;
unsigned long count;  // счетчик

void setup() {
  Serial.begin(115200);
  pinMode(5, OUTPUT);
  pinMode(2, INPUT);
  old_millis = millis();
}

void loop() {
  count = pulseIn(2, HIGH);
  if (millis() - old_millis >= 1000) {
    Serial.print("count = ");
    Serial.println(count);
    if (count > 1100 && count <= 1500) {

      digitalWrite(5, LOW);
    } else {
      digitalWrite(5, HIGH);
    }
    old_millis = millis();
  }
}

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

нейтраль 1200-1299. задняя 6800-6899 остальные 4700-4799 десятичные бегают постаянно меняются но первые две цифры стабильны

честно говоря, эти ваши замеры с 50в выглядят так же фантастично, как предыдущие с 12мВ. Мне кажется, вам надо попросить кого-то из взрослых измерить ваш сигнал. Нет смысла паять ограничитель, пока мы не уверены в уровне.

ну в принципе отличная разница, которая позволит легко различать режимы даже при не очень оптимальном коде.
Если программа не будет делать ничего, кроме чтения этого датчика и включения пина - наверно можно обойтись и кодом с pulsein()

никто не умеет))) дак какой код тогда можно применить

я же дал код выше