датчик положения дроссельной заслонки
- Сообщения: 173
- Зарегистрирован: Вт июн 01, 2021 22:09:42
давление работает норм. сигнал с трима на вход приходит. проговорю алгоритм работы датчика холла. на валу стоит 2 магнита. один полюс включает датчик (дает верхний фронт) , второй магнит обратным полюсом выключает датчик (дает нижний фронт). получается за оборот датчик 2 раза меняет состояние это нужно использовать для счета.
Последний раз редактировалось ЗАВ Пн июн 15, 2026 14:54:45, всего редактировалось 1 раз.
самое сложно - сделать просто
- Реклама
- Сообщения: 187
- Зарегистрирован: Чт май 07, 2026 00:30:38
тогда убедиться, что это соответствие верно:
#define CH_ADC_TRIM 7 // Канал АЦП датчика "ТРИМ".
#define CH_ADC_PRESSURE 2 // Канал АЦП датчика "ДАВЛЕНИЕ".
#define CH_ADC_COUNT 0 // Канал АЦП датчика "СЧЁТЧИК".
#define CH_ADC_TRIM 7 // Канал АЦП датчика "ТРИМ".
#define CH_ADC_PRESSURE 2 // Канал АЦП датчика "ДАВЛЕНИЕ".
#define CH_ADC_COUNT 0 // Канал АЦП датчика "СЧЁТЧИК".
- Сообщения: 173
- Зарегистрирован: Вт июн 01, 2021 22:09:42
загрузил 21 скеч - трим работает, 22 и 23 трим стоит на нуле.
самое сложно - сделать просто
- Сообщения: 187
- Зарегистрирован: Чт май 07, 2026 00:30:38
в 21:
#define CH_ADC_TRIM 1 // Канал АЦП датчика "ТРИМ".
Но потом было:
#define CH_ADC_TRIM 7 // Канал АЦП датчика "ТРИМ".
На последней схеме тоже А7
#define CH_ADC_TRIM 1 // Канал АЦП датчика "ТРИМ".
Но потом было:
поэтому сейчас стоитЗАВ писал(а): Вт июн 09, 2026 11:12:21 схема не соответствует распайки . проверил, по факту трим подключен к А7.
#define CH_ADC_TRIM 7 // Канал АЦП датчика "ТРИМ".
На последней схеме тоже А7
- Сообщения: 173
- Зарегистрирован: Вт июн 01, 2021 22:09:42
трим стоит на А7. у меня 7 нога работает в 21 скетче. на 55 строке. помниться мне у трима в 21 скетче не было ноля. сейчас стоит ноль и не на что не реагирует.(в21 скетче с пустым пином значения бегали хаотично). я подозреваю, что в ТРИМ были внесены изменения для стабилизации ноля?
самое сложно - сделать просто
- Реклама
- Сообщения: 187
- Зарегистрирован: Чт май 07, 2026 00:30:38
Да, нашёл: при тесте настройки диапазонов поставил
#define LOW_VOLTAGE_TRIM 800 // Минимальное напряжение (в значениях АЦП), при котором отображается LOW_DISPLAY_TRIM
и забыл вернуть
сделайте
#define LOW_VOLTAGE_TRIM 0
(или какое-то иное значение, если 0 должен отображаться при некотором ненулевом напряжении)
#define LOW_VOLTAGE_TRIM 800 // Минимальное напряжение (в значениях АЦП), при котором отображается LOW_DISPLAY_TRIM
и забыл вернуть
сделайте
#define LOW_VOLTAGE_TRIM 0
(или какое-то иное значение, если 0 должен отображаться при некотором ненулевом напряжении)
- Сообщения: 173
- Зарегистрирован: Вт июн 01, 2021 22:09:42
ТРИМ заработал, однако вместо нуля показания 0,25. и хотя скетче выставлено ТРИМ - 1 знак после запятой, а давление 2 знака, по факту все наоборот. у трима -2 знака , у давления 1 знак. почему в комментариях наоборот ? поменял местами. разрядность восстановилась. ТРИМ нормально считает до 10, потом показывает галиматью. то 24, то 37. ошибка какая то.
счетчик не работает от слова совсем, только переключается при размотки с индикатор ТРИМА (а должен с давления - нужно исправить) и на индикаторе стоит ноль.
счетчик не работает от слова совсем, только переключается при размотки с индикатор ТРИМА (а должен с давления - нужно исправить) и на индикаторе стоит ноль.
самое сложно - сделать просто
- Сообщения: 187
- Зарегистрирован: Чт май 07, 2026 00:30:38
счётчик я не тестировал.
Диапазон отображения и диапазон фактического напряжения на датчике регулируются с помощью:
#define LOW_DISPLAY_TRIM 0 // Минимальное отображаемое значение "ТРИМ"
#define LOW_VOLTAGE_TRIM 0 // Минимальное напряжение (в значениях АЦП), при котором отображается LOW_DISPLAY_TRIM
#define HIGH_DISPLAY_TRIM 800 // Максимальное отображаемое значение "ТРИМ"
#define HIGH_VOLTAGE_TRIM 952 // Минимальное напряжение (в значениях АЦП), при котором отображается HIGH_DISPLAY_TRIM
АЦП выдаёт 0 при 0 В и 1024 при 5 В.
Комментарии писались методом "копи-пасте", где-то мог забыть исправить. В случае подобных ошибок следует ориентироваться на имена определений.
У меня на первом дисплее показывается 0...80 на втором 0...4 и счётчик переключает второй.
ранее было:
#define CH_ADC_TRIM 7 // Канал АЦП датчика "ТРИМ".
#define CH_ADC_PRESSURE 2 // Канал АЦП датчика "ДАВЛЕНИЕ".
#define CH_ADC_COUNT 0 // Канал АЦП датчика "СЧЁТЧИК".
volatile uint8_t adcChannels[3] = { CH_ADC_TRIM, CH_ADC_PRESSURE, CH_ADC_COUNT }; // Каналы АЦП для датчиков 1...3 индикаторов 0...2

Диапазон отображения и диапазон фактического напряжения на датчике регулируются с помощью:
#define LOW_DISPLAY_TRIM 0 // Минимальное отображаемое значение "ТРИМ"
#define LOW_VOLTAGE_TRIM 0 // Минимальное напряжение (в значениях АЦП), при котором отображается LOW_DISPLAY_TRIM
#define HIGH_DISPLAY_TRIM 800 // Максимальное отображаемое значение "ТРИМ"
#define HIGH_VOLTAGE_TRIM 952 // Минимальное напряжение (в значениях АЦП), при котором отображается HIGH_DISPLAY_TRIM
АЦП выдаёт 0 при 0 В и 1024 при 5 В.
Комментарии писались методом "копи-пасте", где-то мог забыть исправить. В случае подобных ошибок следует ориентироваться на имена определений.
У меня на первом дисплее показывается 0...80 на втором 0...4 и счётчик переключает второй.
ранее было:
притом, каналы:ЗАВ писал(а): Ср июн 03, 2026 08:56:45 на первом индикаторе "ТРИМ" значение должно быть 0-80,0. на втором индикаторе "ДАВЛЕНИЕ" 0-4,00.
#define CH_ADC_TRIM 7 // Канал АЦП датчика "ТРИМ".
#define CH_ADC_PRESSURE 2 // Канал АЦП датчика "ДАВЛЕНИЕ".
#define CH_ADC_COUNT 0 // Канал АЦП датчика "СЧЁТЧИК".
volatile uint8_t adcChannels[3] = { CH_ADC_TRIM, CH_ADC_PRESSURE, CH_ADC_COUNT }; // Каналы АЦП для датчиков 1...3 индикаторов 0...2


