Компенсация задержки счетчиков при передаче 433 Мгц

Здравствуйте!
Есть две ардуины с модулями HC-12, происходит передача данных на частоте 433 МГц.
Данные простые, фактически это счетчик отсчитывающий примерно тысячу импульсов в секунду.
Проблема вот в чем, допустим между модулями расстояние около 10 метров и происходит видимая задержка. Например, если на передатчике мы видим цифру 3, то на приемнике еще единица. А когда на передатчике 5, то на приемнике тройка.
Расстояние между модулями динамическое, т.е. постоянно меняется.

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

Существуют ли алгоритмы, которые способные компенсировать эту задержку, или способы какие есть? Я думал над мощностью сигнала, но это не вариант. Контроль пакетов тоже. Что можно сделать в таком случае? Буду рад любым идеям

Задача стоит такая, чтобы счетчики были идеально синхронизированы.

Вычти задержку из времени, вот и всё. В чем проблема-то? И при чем тут расстояние? Ты в курсе, какова скорость света?

Забудь.

1 лайк

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

Задержки миллисекундные а винавата скорость света? Не, ну а чё? Зато весело)
1.Передаём сигнал
2. Приёмник, приняв, отправляет обратно
3. Передатчик, приняв, вычисляет время путешествия туда-обратно. Фсё!

1 лайк

Для чего? Скорость света на это расстояние делить?

Проблема у ТС не расстоянии (и скорости света), а в скорости передачи по UART. Если там установлено, скажем 2400, то четырёхбайтовое число будет передаваться 32 000 / 2 400 = 13,3мс и от расстояния это никак не зависит, а он хочет до миллисекунды синхронизировать.

Только вот причём тут расстояние? Зачем его определять?

@misterd, поставьте скорость передачи 115200 или даже больше. Если HC-12 потянет передачу на такой скорости без ошибок в каждом байте, то будет Вам счастье!

2 лайка

компенсировать микросекунды, он жеж хочет получить точность лучше 1 миллисекунды как я понял

С чего ты это взял?

Когда человек пишет вот так

…вместо того чтоб указать допустимую задержку в цифрах - это означает что он вообще не в курсе, что такое точность измерения и как она достигается.

Вообще, выражения типа “идеальная синхронизациия” или “минимально возможная задержка” - это прям триггер чтоб распознать чайника, которому на самом деле никакая реальная точность не нужна, а нужно чтоб только “выглядело красиво”

1 лайк

Не потянет

Давай для тебя повторю:

Что-то я сомневаюсь, что проблема в скорости Сериал. Я даже сомневаюсь, что проблема вообще есть. Одни части описания ТС противоречат другим.
Читаем:

хммм допустим…
Но вот как быть с этим?

То есть речь о том, что наш ТС непосредственно взглядом заметил разницу между приемником и передатчиком в две единицы, и это про частоте импульсов порядка килогерца? Кто-нибудь в это верит?

Только для того чтобы перевести взгляд с одного дисплея на другой и сфокусироватся на цифре, человеческому глазу, по данным википедии, требуется около 200 мс :slight_smile:

Половину сообщения напридумывали вы конечно)
Я снимал в слоумо на телефоне и там все видно, ибо тысячу тиков глазом не получится заметить.

Вот с обратной пересылкой и корректировкой, крутая идея, спасибо

P.S.: Идеально синхронизированы, это когда на обоих дисплеях одинаковое число. Я написал это, чтобы было понятно и просто, и с чайником это никак не связано, но дело ваше.

Спасибо за помощь, попробую сделать. Счетчик построен на прерываниях, количество тиков я смогу регулировать динамически.

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

А разве я не тоже самое написал? :slight_smile:

1 лайк

и без кода приемникa и передтачика, мы все точно знает что у ТСа где то в коде 100% нет какого нибудь delay(1000)

в догонку :

433Mhz это “несущая” частота а никак не скорость передачи сигнала :slight_smile:

А где указано, что это скорость передачи? Написано частота.

а зачем указывать частоту если она на синхронность не влияет ?
полагаю что в контексте , подразумевая что данные отправляються “вум … вум” - оочень быстро
некоторые пользователи, путают частоту несущей и скорость передачи

:joy:

Ну жди люлей.