Ну амплитуду тут вам пусть @ua6em читает ![]()
А вот что мне кажется интересно - что частота всех сигналов одна, 122 Гц, а отличаются они скважностью. Если это правда - то ваш метод определения сигналов тут не годится и код нужен совсем другой.
Ну амплитуду тут вам пусть @ua6em читает ![]()
А вот что мне кажется интересно - что частота всех сигналов одна, 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()
никто не умеет))) дак какой код тогда можно применить
я же дал код выше