Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Написал скрипт для ардуино нано для захвата двух шим сигналов и формирования их произведения на вывод. Возникла проблема с детекцией и определением duty в замкнутом на gnd и висящем в воздухе входе. Определяется не стабильно и значения могут путаться, сам уже не знаю куда смотреть. Захватываю сигнал с частотой 20-100гц, отладка сыпется в уарт. Помогите свежим взглядом.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось t405 14 фев 2024, 10:15, всего редактировалось 2 раза.
- kulibinsvv
- Лейтенант
- Сообщения: 487
- Зарегистрирован: 18 сен 2015, 10:04
- Откуда: Омск
- Благодарил (а): 3 раза
- Поблагодарили: 5 раз
Захват ШИМ сигнала, проблема с 0 и 100
ШИМ равный 0% - это логический 0,
100% - логическая 1,
открытый вход - недопустимая ситуация.
Эти состояния вы должны контролировать и обрабатывать в программе. Ещё лучше обслуживать аппаратно.
100% - логическая 1,
открытый вход - недопустимая ситуация.
Эти состояния вы должны контролировать и обрабатывать в программе. Ещё лучше обслуживать аппаратно.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
Захват ШИМ сигнала, проблема с 0 и 100
Если я делаю подтяжку на плюс, то на входе висит +5в, мне нужно, чтобы это определялось ШИМ0(инвертировано), когда я замыкаю на массу, мне нужно ШИМ100. Так вот, даже в положении замкнуто на массу он не всегда корректно определяет шим 100. Пытаюсь понять, как корректно обработать эти значения. При старте МК ШИМ100 вне зависимости в воздухе висит пин или на массе. Подскажите, как обработать эти состояния?kulibinsvv писал(а): 03 янв 2024, 17:57 ШИМ равный 0% - это логический 0,
100% - логическая 1,
открытый вход - недопустимая ситуация.
Эти состояния вы должны контролировать и обрабатывать в программе. Ещё лучше обслуживать аппаратно.
-
- Лейтенант
- Сообщения: 613
- Зарегистрирован: 06 янв 2018, 19:50
- Благодарил (а): 8 раз
- Поблагодарили: 2 раза
Захват ШИМ сигнала, проблема с 0 и 100
А два аналогового переключателя Инверсия K1 и Инверсия K2. Разве могут работать без подключенного входа S?
[spoiler] [/spoiler]
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Захват ШИМ сигнала, проблема с 0 и 100
если ставлю инвертированный вход и не подключаю его, то работает, я так понимаю, но умолчанию там висит falseSerOv писал(а): 03 янв 2024, 23:42 А два аналогового переключателя Инверсия K1 и Инверсия K2. Разве могут работать без подключенного входа S?
[spoiler]capture_001_03012024_233628.jpg[/spoiler]
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Захват ШИМ сигнала, проблема с 0 и 100
Здесь выход повторителя скоростного счетчика не корректно определяет состояние входа.t405 писал(а): 03 янв 2024, 15:08 Возникла проблема с детекцией и определением duty в замкнутом на gnd и висящем в воздухе входе.
Определяется не стабильно и значения могут путаться
Как вариант в место его использовать дополнительный цифровой вход (например запараллелить D2-D6)
C D6 (включить в нем анти дребезг или поставить за ним TOF) взять сигнал на свитч (0-100)
Win10-64, FLProg (portable)
Захват ШИМ сигнала, проблема с 0 и 100
А некорректное определение входа это баг программы? может можно исправить блок, чтобы он корректно определял?rw6cm писал(а): 05 янв 2024, 12:44Здесь выход повторителя скоростного счетчика не корректно определяет состояние входа.t405 писал(а): 03 янв 2024, 15:08 Возникла проблема с детекцией и определением duty в замкнутом на gnd и висящем в воздухе входе.
Определяется не стабильно и значения могут путаться
Как вариант в место его использовать дополнительный цифровой вход (например запараллелить D2-D6)
C D6 (включить в нем анти дребезг или поставить за ним TOF) взять сигнал на свитч (0-100)
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Захват ШИМ сигнала, проблема с 0 и 100
Нет, это не баг. Скоростной счетчик работает на прерываниях, а этот метод не определяет состояние пина, он следит лишь за нужными изменениями на нем. Если вдумчиво почитаете описание этого выхода ("выход "IV" на котором будут дублироваться импульс поступающие на выбранный вход") то поймете, что он для логики вашей программы не надежный вариант.t405 писал(а): 05 янв 2024, 21:10 А некорректное определение входа это баг программы? может можно исправить блок, чтобы он корректно определял?
Win10-64, FLProg (portable)
Захват ШИМ сигнала, проблема с 0 и 100
Проблема с детекцией 0 и 100 решена через параллельные входы. выяснилась еще одна проблема, что детекция шим сигнала плавает, из-за чего я не могу корректно и стабильно его считывать, пробовал использовать фильтры, но они не помогли, подскажите, может я что-то делаю не так? Считываю ШИМ 95%(duty1), получаю следующее:
Периодически провалы по duty...
Прикреплю текущий файл flprog, подскажите, у кого какие идеи?
Офтопик
F1 78 duty1 94 P1 0.63 N1 12.11 1 F2 89 duty2 73 P2 2.96 N2 8.23 1 mPWM 71.40
F1 78 duty1 55 P1 0.63 N1 12.11 1 F2 80 duty2 88 P2 1.46 N2 10.93 1 mPWM 74.31
F1 78 duty1 19 P1 0.62 N1 12.11 1 F2 82 duty2 85 P2 1.73 N2 10.36 1 mPWM 73.96
F1 78 duty1 95 P1 4.81 N1 7.93 1 F2 79 duty2 93 P2 0.81 N2 11.83 1 mPWM 78.35
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.11 N2 11.49 1 mPWM 77.86
F1 78 duty1 95 P1 0.62 N1 12.11 1 F2 92 duty2 79 P2 2.23 N2 8.58 1 mPWM 82.57
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 80 duty2 92 P2 0.98 N2 11.39 1 mPWM 82.34
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.49 1 mPWM 79.89
F1 78 duty1 94 P1 0.63 N1 12.11 1 F2 78 duty2 94 P2 0.72 N2 11.99 1 mPWM 79.83
F1 78 duty1 87 P1 0.63 N1 12.11 1 F2 78 duty2 93 P2 0.81 N2 11.87 1 mPWM 79.82
F1 111 duty1 95 P1 0.63 N1 8.33 1 F2 87 duty2 77 P2 2.55 N2 8.95 1 mPWM 70.06
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 81 duty2 87 P2 1.58 N2 10.74 1 mPWM 69.57
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.57 1 mPWM 77.22
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 78 duty2 94 P2 0.73 N2 11.99 1 mPWM 77.15
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 81 duty2 88 P2 1.36 N2 10.92 1 mPWM 71.32
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 93 P2 0.76 N2 11.89 1 mPWM 76.81
F1 142 duty1 95 P1 0.63 N1 6.38 1 F2 82 duty2 90 P2 1.17 N2 11.01 1 mPWM 79.21
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 81 duty2 87 P2 1.55 N2 10.70 1 mPWM 77.84
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.49 1 mPWM 77.80
F1 78 duty1 90 P1 0.63 N1 12.11 1 F2 79 duty2 89 P2 1.32 N2 11.21 1 mPWM 81.74
F1 170 duty1 95 P1 0.63 N1 5.22 1 F2 79 duty2 94 P2 0.74 N2 11.87 1 mPWM 82.53
F1 78 duty1 5 P1 3.85 N1 8.89 1 F2 83 duty2 82 P2 2.09 N2 9.92 1 mPWM 71.06
F1 75 duty1 95 P1 0.63 N1 12.59 1 F2 81 duty2 87 P2 1.49 N2 10.84 1 mPWM 69.85
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 82 duty2 84 P2 1.90 N2 10.23 1 mPWM 74.25
F1 78 duty1 59 P1 0.63 N1 12.11 1 F2 79 duty2 90 P2 1.24 N2 11.34 1 mPWM 74.77
F1 78 duty1 95 P1 3.72 N1 9.02 1 F2 79 duty2 90 P2 1.19 N2 11.35 1 mPWM 73.17
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 89 P2 1.26 N2 11.31 1 mPWM 73.93
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 89 P2 1.27 N2 11.38 1 mPWM 80.46
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 85 duty2 80 P2 2.33 N2 9.36 1 mPWM 80.37
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 92 P2 0.93 N2 11.62 1 mPWM 76.81
F1 78 duty1 62 P1 0.61 N1 12.13 1 F2 83 duty2 83 P2 1.92 N2 10.05 1 mPWM 78.44
F1 172 duty1 62 P1 0.63 N1 5.17 1 F2 82 duty2 90 P2 1.20 N2 10.92 1 mPWM 75.04
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 82 duty2 86 P2 1.60 N2 10.55 1 mPWM 71.40
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 80 duty2 87 P2 1.51 N2 10.98 1 mPWM 76.42
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 84 duty2 79 P2 2.37 N2 9.42 1 mPWM 73.20
F1 78 duty1 92 P1 0.63 N1 12.11 1 F2 80 duty2 89 P2 1.34 N2 11.14 1 mPWM 72.62
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.49 1 mPWM 72.19
F1 78 duty1 50 P1 0.63 N1 12.11 1 F2 79 duty2 90 P2 1.13 N2 11.45 1 mPWM 74.14
F1 78 duty1 95 P1 4.66 N1 8.08 1 F2 84 duty2 81 P2 2.18 N2 9.71 1 mPWM 77.01
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 86 duty2 76 P2 2.74 N2 8.81 1 mPWM 77.81
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.06 N2 11.45 1 mPWM 78.23
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 90 P2 1.15 N2 11.35 1 mPWM 72.98
F1 78 duty1 21 P1 1.30 N1 11.44 1 F2 95 duty2 85 P2 1.56 N2 8.94 1 mPWM 73.08
F1 78 duty1 95 P1 9.49 N1 3.25 1 F2 81 duty2 87 P2 1.55 N2 10.72 1 mPWM 71.33
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 83 duty2 85 P2 1.73 N2 10.32 1 mPWM 73.12
F1 78 duty1 88 P1 0.63 N1 12.10 1 F2 89 duty2 72 P2 3.07 N2 8.05 1 mPWM 68.76
F1 78 duty1 20 P1 0.63 N1 12.11 1 F2 83 duty2 83 P2 2.02 N2 9.89 1 mPWM 69.93
F1 78 duty1 95 P1 9.58 N1 3.16 1 F2 85 duty2 87 P2 1.47 N2 10.27 1 mPWM 75.51
F1 78 duty1 55 P1 0.63 N1 12.11 1 F2 80 duty2 88 P2 1.46 N2 10.93 1 mPWM 74.31
F1 78 duty1 19 P1 0.62 N1 12.11 1 F2 82 duty2 85 P2 1.73 N2 10.36 1 mPWM 73.96
F1 78 duty1 95 P1 4.81 N1 7.93 1 F2 79 duty2 93 P2 0.81 N2 11.83 1 mPWM 78.35
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.11 N2 11.49 1 mPWM 77.86
F1 78 duty1 95 P1 0.62 N1 12.11 1 F2 92 duty2 79 P2 2.23 N2 8.58 1 mPWM 82.57
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 80 duty2 92 P2 0.98 N2 11.39 1 mPWM 82.34
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.49 1 mPWM 79.89
F1 78 duty1 94 P1 0.63 N1 12.11 1 F2 78 duty2 94 P2 0.72 N2 11.99 1 mPWM 79.83
F1 78 duty1 87 P1 0.63 N1 12.11 1 F2 78 duty2 93 P2 0.81 N2 11.87 1 mPWM 79.82
F1 111 duty1 95 P1 0.63 N1 8.33 1 F2 87 duty2 77 P2 2.55 N2 8.95 1 mPWM 70.06
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 81 duty2 87 P2 1.58 N2 10.74 1 mPWM 69.57
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.57 1 mPWM 77.22
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 78 duty2 94 P2 0.73 N2 11.99 1 mPWM 77.15
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 81 duty2 88 P2 1.36 N2 10.92 1 mPWM 71.32
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 93 P2 0.76 N2 11.89 1 mPWM 76.81
F1 142 duty1 95 P1 0.63 N1 6.38 1 F2 82 duty2 90 P2 1.17 N2 11.01 1 mPWM 79.21
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 81 duty2 87 P2 1.55 N2 10.70 1 mPWM 77.84
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.49 1 mPWM 77.80
F1 78 duty1 90 P1 0.63 N1 12.11 1 F2 79 duty2 89 P2 1.32 N2 11.21 1 mPWM 81.74
F1 170 duty1 95 P1 0.63 N1 5.22 1 F2 79 duty2 94 P2 0.74 N2 11.87 1 mPWM 82.53
F1 78 duty1 5 P1 3.85 N1 8.89 1 F2 83 duty2 82 P2 2.09 N2 9.92 1 mPWM 71.06
F1 75 duty1 95 P1 0.63 N1 12.59 1 F2 81 duty2 87 P2 1.49 N2 10.84 1 mPWM 69.85
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 82 duty2 84 P2 1.90 N2 10.23 1 mPWM 74.25
F1 78 duty1 59 P1 0.63 N1 12.11 1 F2 79 duty2 90 P2 1.24 N2 11.34 1 mPWM 74.77
F1 78 duty1 95 P1 3.72 N1 9.02 1 F2 79 duty2 90 P2 1.19 N2 11.35 1 mPWM 73.17
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 89 P2 1.26 N2 11.31 1 mPWM 73.93
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 89 P2 1.27 N2 11.38 1 mPWM 80.46
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 85 duty2 80 P2 2.33 N2 9.36 1 mPWM 80.37
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 92 P2 0.93 N2 11.62 1 mPWM 76.81
F1 78 duty1 62 P1 0.61 N1 12.13 1 F2 83 duty2 83 P2 1.92 N2 10.05 1 mPWM 78.44
F1 172 duty1 62 P1 0.63 N1 5.17 1 F2 82 duty2 90 P2 1.20 N2 10.92 1 mPWM 75.04
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 82 duty2 86 P2 1.60 N2 10.55 1 mPWM 71.40
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 80 duty2 87 P2 1.51 N2 10.98 1 mPWM 76.42
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 84 duty2 79 P2 2.37 N2 9.42 1 mPWM 73.20
F1 78 duty1 92 P1 0.63 N1 12.11 1 F2 80 duty2 89 P2 1.34 N2 11.14 1 mPWM 72.62
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.08 N2 11.49 1 mPWM 72.19
F1 78 duty1 50 P1 0.63 N1 12.11 1 F2 79 duty2 90 P2 1.13 N2 11.45 1 mPWM 74.14
F1 78 duty1 95 P1 4.66 N1 8.08 1 F2 84 duty2 81 P2 2.18 N2 9.71 1 mPWM 77.01
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 86 duty2 76 P2 2.74 N2 8.81 1 mPWM 77.81
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 91 P2 1.06 N2 11.45 1 mPWM 78.23
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 79 duty2 90 P2 1.15 N2 11.35 1 mPWM 72.98
F1 78 duty1 21 P1 1.30 N1 11.44 1 F2 95 duty2 85 P2 1.56 N2 8.94 1 mPWM 73.08
F1 78 duty1 95 P1 9.49 N1 3.25 1 F2 81 duty2 87 P2 1.55 N2 10.72 1 mPWM 71.33
F1 78 duty1 95 P1 0.63 N1 12.11 1 F2 83 duty2 85 P2 1.73 N2 10.32 1 mPWM 73.12
F1 78 duty1 88 P1 0.63 N1 12.10 1 F2 89 duty2 72 P2 3.07 N2 8.05 1 mPWM 68.76
F1 78 duty1 20 P1 0.63 N1 12.11 1 F2 83 duty2 83 P2 2.02 N2 9.89 1 mPWM 69.93
F1 78 duty1 95 P1 9.58 N1 3.16 1 F2 85 duty2 87 P2 1.47 N2 10.27 1 mPWM 75.51
Прикреплю текущий файл flprog, подскажите, у кого какие идеи?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Нашел похожую проблему в другом форуме, подскажите, как реже считывать сигнал шим, чтобы у МК было время для других операций?
https://community.alexgyver.ru/threads/ ... inoj.8019/
https://community.alexgyver.ru/threads/ ... inoj.8019/
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Удалил запись и чтение переменных лишних, при запуске контроллера некоторое время считывает корректно потом начинает периодически лагать. Не знаю, в какую сторону еще смотреть.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Тяжело советовать когда нет ТЗ.
Что это будет? и шимы межу собой будут гулять от 20 до 100Гц?
Win10-64, FLProg (portable)
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
2 шим сигнала с ЭБУ двигателя заданы с частотой 78гц, заполнение от 0 до 100, мне нужно их корректно считать(D2, D3)(D4 и D5 использую для определения 0 и 100 шим), перемножить значение заполнения (%pwm1 * %pwm2)/100 и выдать результат на пин(D6) с частотой ~78гц.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Частота 78гц = 12.8мсt405 писал(а): 18 фев 2024, 12:59 2 шим сигнала с ЭБУ двигателя заданы с частотой 78гц, заполнение от 0 до 100,
перемножить значение заполнения (%pwm1 * %pwm2)/100 и выдать результат на пин(D6) с частотой ~78гц.
Заполнение от 0 до 100% 12.8/100= 1% = 128мкс.
Чтобы на пин(D6) "нанки" генератор выдал импульсы 128мкс с частотой ~78гц, надо что бы цикл программы был меньше 128мкс.
Для этого: про дисплей, сом порт, текст, и тд (а также куче ваших фильтров) можно забыть.
В проекте нужна только хорошо продуманная логика, и ни чего лишнего.
Настройка по анализатору, "ослику". Тогда возможно что то и получится.
Win10-64, FLProg (portable)
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Т.е. провалы при считывании шим на d2 и d3 из-за выхода на d6?rw6cm писал(а): 19 фев 2024, 10:57Частота 78гц = 12.8мсt405 писал(а): 18 фев 2024, 12:59 2 шим сигнала с ЭБУ двигателя заданы с частотой 78гц, заполнение от 0 до 100,
перемножить значение заполнения (%pwm1 * %pwm2)/100 и выдать результат на пин(D6) с частотой ~78гц.
Заполнение от 0 до 100% 12.8/100= 1% = 128мкс.
Чтобы на пин(D6) "нанки" генератор выдал импульсы 128мкс с частотой ~78гц, надо что бы цикл программы был меньше 128мкс.
Для этого: про дисплей, сом порт, текст, и тд (а также куче ваших фильтров) можно забыть.
В проекте нужна только хорошо продуманная логика, и ни чего лишнего.
Настройка по анализатору, "ослику". Тогда возможно что то и получится.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
из за большого цикла программы
Win10-64, FLProg (portable)
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Спасибо, буду стараться оптимизировать
Еще вопрос, если взять stm в размере платы нано, это решит проблему?
Отправлено спустя 1 час 13 минут 5 секунд:
Убрал все лишнее, как еще оптимальнее сделать не знаю, пойду тестировать ))
если еще будут идеи как ускорить, буду очень благодарен
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось t405 19 фев 2024, 14:21, всего редактировалось 2 раза.
- kipiaxxx
- Рядовой
- Сообщения: 79
- Зарегистрирован: 06 сен 2015, 14:15
- Откуда: Омск
- Имя: Сергей
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
Я измеряю ШИМ-сигнал (30...300 Гц) скоростным счетчиком иначе и проблем нет.
Далее простая математика: PDP* умножается на 10000 (для получения макс. высокой разрешающей способности)
и делится на сумму PDN + PDP.
Все вычисления в интегер или лонгинтегер (как более быстрые).
Во флоат переходим только в самом конце всех вычислений, причем умножением (но не делением)!
Фильтры добавлять по вкусу.
Скоростной счетчик настроен на измерение длительности импульса PDP и паузы PDN.Далее простая математика: PDP* умножается на 10000 (для получения макс. высокой разрешающей способности)
и делится на сумму PDN + PDP.
Все вычисления в интегер или лонгинтегер (как более быстрые).
Во флоат переходим только в самом конце всех вычислений, причем умножением (но не делением)!
Фильтры добавлять по вкусу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
на счет шим 0 и 100% быть не должно. Может быть 0.000...1% или 99.9999...
А вообще для какой цели нужны эти проценты?
Без них можно проще.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Захват ШИМ сигнала, проблема с 0 и 100, стабильность определения duty ШИМ
В Вашей схеме не хватает детектора 0 и 100%. Исключил из схемы деления по максимуму, больше не знаю где урезать код. Все равно периодически подсыпает неверными значениями.kipiaxxx писал(а): 19 фев 2024, 14:13 Я измеряю ШИМ-сигнал (30...300 Гц) скоростным счетчиком иначе и проблем нет.
тест ШИМ.jpg
Скоростной счетчик настроен на измерение длительности импульса PDP и паузы PDN.
Далее простая математика: PDP* умножается на 10000 (для получения макс. высокой разрешающей способности)
и делится на сумму PDN + PDP.
Все вычисления в интегер или лонгинтегер (как более быстрые).
Во флоат переходим только в самом конце всех вычислений, причем умножением (но не делением)!
Фильтры добавлять по вкусу.
Красивая схема, если отказаться от 0 и 100%. У меня ШИМ задается с шагом 1% в принципе могу поставить везде от 1 до 99, критично на работоспособность сказаться не должно, если только провод не отвалится и в воздухе не повиснет.
Завтра опробую самую простую схему, если она будет работать, то ее и оставлю, без 0, 100 и диагностики в уарт.
Отправлено спустя 22 минуты 22 секунды:
Подскажите, замена нано на stm32 упростила бы задачу или подобные операции сложные для данных устройств?t405 писал(а): 19 фев 2024, 22:07В Вашей схеме не хватает детектора 0 и 100%. Исключил из схемы деления по максимуму, больше не знаю где урезать код. Все равно периодически подсыпает неверными значениями.kipiaxxx писал(а): 19 фев 2024, 14:13 Я измеряю ШИМ-сигнал (30...300 Гц) скоростным счетчиком иначе и проблем нет.
тест ШИМ.jpg
Скоростной счетчик настроен на измерение длительности импульса PDP и паузы PDN.
Далее простая математика: PDP* умножается на 10000 (для получения макс. высокой разрешающей способности)
и делится на сумму PDN + PDP.
Все вычисления в интегер или лонгинтегер (как более быстрые).
Во флоат переходим только в самом конце всех вычислений, причем умножением (но не делением)!
Фильтры добавлять по вкусу.
Красивая схема, если отказаться от 0 и 100%. У меня ШИМ задается с шагом 1% в принципе могу поставить везде от 1 до 99, критично на работоспособность сказаться не должно, если только провод не отвалится и в воздухе не повиснет.
Завтра опробую самую простую схему, если она будет работать, то ее и оставлю, без 0, 100 и диагностики в уарт.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость