необходимо исказить сигнал с геркона (нужен совет профи)

Convalllaria

✩✩✩✩✩✩✩
3 Июл 2021
7
1
Привет знатокам!
Я только начинаю осваиваться в программировании микроконтроллеров и вдруг осознал что мои мозги не тянут без знаний - как решить мою задачу. а именно:
есть входящий цифровой сигнал с N-ным количеством импульсов в минуту, нужно выдавать этот же сигнал без изменений(т.е. в разрыв цепи с датчиком станет esp32 которая возьмет на себя эту функцию), но по достижении определенного количества срабатываний в минуту(повышения скорости), сигнал должен исказиться и как бы заморозить частоту выходящих импульсов.
Кто знает как это решить? Я понимаю что это по идее пара строчек кода но не хватает знаний, две ночи гугл мурыжил.

под рукой есть esp32, среда разработки:arduino IDE


UPD:
речь идет о велосипеде напичканном датчиками (крутящий момент, обороты колеса и каденса) велик помогает двигателем до скорости 25км/ч после чего отключается, если просто генерить импульс на датчик оборотов колеса то умный компьютер сопоставляет данные со всех датчиков и блокирует велосипед.
вот и решил подрубить в разрез датчиков есп, чтобы до скорости скажем в 20км/ч esp выдавала такой же сигнал какой и получает, но по превышении этой скорости, замораживала бы импульс на одном значении. это дало бы более менее адекватные цифры одометра и если в конце дописать "докрутку дистанции" когда велик стоит, то мозг велосипеда не заметит подвоха.

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

Convalllaria

✩✩✩✩✩✩✩
3 Июл 2021
7
1
@Un_ka, я вмешиваюсь в работу контроллера к коду которого доступа нет путем подмены значений посредством подключения esp в разрез

@Un_ka,
речь идет о велосипеде напичканном датчиками (крутящий момент, обороты колеса и каденса) велик помогает двигателем до скорости 25км/ч после чего отключается, если просто генерить импульс на датчик оборотов колеса то умный компьютер сопоставляет данные со всех датчиков и блокирует велосипед.
вот и решил подрубить в разрез датчиков есп,чтобы до скорости скажем в 20км/ч esp выдавала такой же сигнал какой и получает, но по привышении этой скорости, замораживала бы импульс на одном значении. это дало бы более менее адекватные параметры одометра и если в конце дописать "докрутку дистанции" когда велик стоит, то мозг велосипеда не заметит подвоха.

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

bort707

★★★★★★✩
21 Сен 2020
3,056
910
@Convalllaria, вы плохо формулируете задачу.
Во-первых, сигнал у вас не аналоговый, а цифровой. Во-вторых, такой тип сигнала называется не "с прерываниями", а импульсный. Ну и в третьих, то что он с геркона - абсолютно не имеет значения, заголовок только сбивает с толку.

Решается задачка довольно просто, но нужно знать диапазон частоты импульсов, выдаваемых датчиком.
Для этого, скорее всего, подойдет обычная ардуина, ЕСП32 тут сильно избыточен
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
речь идет о велосипеде напичканном датчиками (крутящий момент, обороты колеса и каденса) велик помогает двигателем до скорости 25км/ч после чего отключается
Обычно синхронные двигатели на велосипедах/самокатах рассчитывают скорость вращения по датчикам Холла, которые расположены в двигателе.
Но есть одно большое "НО" - эти датчики нужны для работы двигателя для определения текущего положения фазы ротора и вмешиваться в их работу категорически нельзя.
А есть более продвинутые контроллеры, которым не нужны датчики Холла.
 

Convalllaria

✩✩✩✩✩✩✩
3 Июл 2021
7
1
@Геннадий П,нет, это только показания скорости, в контроллер я не лезу

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

@Геннадий П, в моем случае скорость рассчитывается не по датчикам холла а по отдельному геркону на колесе потому что двигатель в кареточном узле

@bort707, нужная скорость достигается уже при частоте около 2Hz
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
437
@Convalllaria,

Так и надо писать. Хочу снять ограничение скорости на электро велосипеде путем деления частоты на 2 с датчика скорости на герконе после достижения скорости 20 км/час. Сигнал подается на ардуинку. До частоты соответствующей 20км/час просто транслировать сигнал на контроллер велосипеда, а при частоте сигнала соответствующей выше 20 км/час производить деление на 2 и уже сигнал с заниженной частотой передавать на контроллер. И надо частоту сигнала при 20 км/час указать. А еще не помешает и контроллер велика указать. Тогда кто нибудь, возможно и поможет.

У электро велосипедов, электронное ограничение в 25 км/час прошито в контроллере. Про Bosch Gen 4 и 504 error. Инженеры Bosch, в своих двигателях усовершенствовали свою anti-tuning программу блокировки мотора. При переходе в аварийный режим мощность помошника снижается до минимума на 90 минут. И в добавок при возникновении 504 ошибки три раза подряд контроллер блокирует мотор без возможности разблокировки пользователем, ну за исключением продвинутых пользователей и сервис инженеров. Судя по постановке задачи, Вы легко окирпичите двигатель велика при "удачной" модели контроллера. Для такого случая сигнал надо менять по другому. И по ходу все время возникают новые хотелки, то только сигнал, а в последнем сообщении уже и блютуч нужен. Поэтому я пас. Я за Вас сформулировал, что Вам было надо в первом сообщении и предупредил о граблях. А дальше сами.
 

Convalllaria

✩✩✩✩✩✩✩
3 Июл 2021
7
1
@ТехнарьКто, блютуз и прочее я сам, нужно лишь пример расчета скорости оборотов, как это хранить в переменных и как выдавать сигнал который я хочу. я не знаю как это сделать. велосипед Bosh Gen 3. прошивка старая и специально не обновляется, на ней все точно будет работать.
 
Изменено:

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
@Convalllaria, Выше уже предложили поделить частоту с датчика на два, это и без контроллера можно сделать на одном триггере.
 

Convalllaria

✩✩✩✩✩✩✩
3 Июл 2021
7
1
@Геннадий П, я понимаю ЧТО нужно сделать, я не понимаю КАК. не хватает знаний в программировании

ладно, сам разберусь, спасибо за ответы
 

Lumenjer

★★★✩✩✩✩
10 Дек 2020
220
112
@Convalllaria, сделайте на прерывания на нужную ногу и дублируйте каждый второй сигнал, который будет идти на датчик. Не самая сложная математическая задача. Вот пример из гугла по прерываниям.
* Начните скетч писать, а там уже и на ошибки укажут вам (если они будут)
 
Изменено:

Lumenjer

★★★✩✩✩✩
10 Дек 2020
220
112
@Convalllaria, Только есть нюанс, если бы делили импульсы на 2, то всегда бы знали вашу точную скорость (перемножив в уме на 2), а так ее никогда не узнаете (после 25км)
 
Изменено:

Convalllaria

✩✩✩✩✩✩✩
3 Июл 2021
7
1
@Lumenjer, мне приходится ездить по 40км в день по работе, поэтому первостепенная задача за ночь решена, а дальше я в неспешном порядке докручу приложение на телефон и буду с него реальную скорость смотреть, еще есть идея докрутки одометра после поездки. все постепенно..... кстати XOD крутая штука! я впервые в жизни ее открыл и как то за ночь вкурилось все. я не знаю как на С++ это писал бы, я нуб в этом....

кстати XOD крутая штука! я впервые в жизни ее открыл и как то за ночь вкурилось все.
только нету ни одного мануала на русском, переводчик спасал
 

te238s

★★✩✩✩✩✩
14 Ноя 2021
374
97
1. Считываем сигнал
2. Измеряем каким-нить Millis период(примеров полно)
3. Если не превысили скорость,то на выход выдаем
4.Если превысили,то тем же Millis с нужной периодичностью выдаем свой сигнал.
 

Samolet1405

✩✩✩✩✩✩✩
28 Июл 2022
4
0
в данном случае надо растянуть импулься от например 0 до 100, к примеру начало скорости на моент 1го оборота состявляет по импульсам 10 на 1 кмч значит импулсь нужно ардуинкой поделить на 2 т.е. чтобы контроллер увидел 05.кмч всего 5 импульсов
 

bort707

★★★★★★✩
21 Сен 2020
3,056
910
в данном случае надо растянуть импулься
если под "данным случаем" вы имеете в виду вопрос автора темы, то ничего там "растягивать" не надо. Схема решения другая - до определенного момента просто передавать импульсы дальше, а при достижении максимума скорости генерить фейковый сигнал
 

Samolet1405

✩✩✩✩✩✩✩
28 Июл 2022
4
0
но думаю контроллер заблокирует подачу сигнала на двигатель так как частота импульсов сигнала на двигатель зависит от частоты сигнала от дачика оборотов, надо менять соотношение либо цепь механически либо электронно а может и то и другое(что скорее всего)