датчик положения дроссельной заслонки

Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

ЗАВ писал(а): Вт июн 02, 2026 17:12:04 есть возможность его переписать на с+?
Да, ночью займусь.
Реклама
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

спасибо жду
самое сложно - сделать просто
Реклама
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

ЗАВ писал(а): Вт июн 02, 2026 20:07:12
Я правильно понял, что Вы используете Ардуино Нано? полагаю, есть и Arduino IDE?
Покажите схему подключения.
Соберу "стенд" у себя, так будет гораздо проще и надёжнее. Судя по коду выше, это просто считывание показаний с АЦП и вывод на индикатор.

предварительно так (ошибки не исключены, и даже скорее всего есть, Ардуино у меня не так давно):
Спойлер

Код: Выделить всё

const uint8_t Dta[11] PROGMEM = {
  0b11111100 /*0*/, 0b01100000 /*1*/, 0b11011010 /*2*/, 0b11110010 /*3*/, 0b01100110 /*4*/, 0b10110110 /*5*/,
  0b10111110 /*6*/, 0b11100000 /*7*/, 0b11111110 /*8*/, 0b11110110 /*9*/, 0b00000000 /* */
};

volatile uint8_t dig = 0;
volatile uint16_t display = 0;
volatile uint16_t filteredADC = 0;

ISR(TIMER2_OVF_vect) {
  PORTB &= 0xC3;  // Выключить все разряды  
  dig = (dig + 1) & 0x03;
  uint8_t segments = pgm_read_byte(&Dta[(display >> (dig << 2)) & 0x0F]);
  if (dig == 2) segments &= ~0x01;
  PORTD = (PORTD & 0x03) | (segments >> 2) & 0xFC;
  PORTB = (PORTB & 0x03) | (segments & 0x03) | (1 << (2 + dig));
}

ISR(ADC_vect) {
  static uint32_t sum = 0;
  static uint8_t count = 0;

  sum += ADC;
  if (++count >= 16) {
    filteredADC = (filteredADC * 7 + (sum >> 4)) >> 3;
    sum = 0;
    count = 0;
  }
}

inline void updateDisplay() {
  uint16_t val = filteredADC;
  uint8_t d3 = val % 10;
  val /= 10;
  uint8_t d2 = val % 10;
  val /= 10;
  uint8_t d1 = val % 10;
  val /= 10;
  uint8_t d0 = val;

  if (d0 == 0) {
    d0 = 10;
    if (d1 == 0) {
      d1 = 10;
      if (d2 == 0) d2 = 10;
    }
  }

  display = (uint16_t)d0 << 12 | (uint16_t)d1 << 8 | (uint16_t)d2 << 4 | d3;
}

void setup() {
  /** Порты */
  DDRD |= 0xFC;   // PD2..PD7 = выходы (A-F)
  DDRB |= 0x3F;   // PB0..PB5 = выходы (G,H + Dig1..Dig4)
  PORTB &= 0xC3;  // Выключить все разряды

  /** ADC */
  ADMUX = (1 << REFS0) | 7;   
  ADCSRA = (1 << ADEN) |  (1 << ADIE) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
  // Free Running Mode
  ADCSRB = 0;
  ADCSRA |= (1 << ADATE) | (1 << ADSC);

  /** TIM2 */
  TCCR2A = 0;
  TCCR2B = (1 << CS22) | (1 << CS21);
  TIMSK2 |= (1 << TOIE2);

  sei();
}

void loop() {
  updateDisplay();
  delay(50);
}
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

прилагаю схему
сигнал на двух входах одинаковый 0-4,5в. на первом индикаторе "ТРИМ" значение должно быть 0-80,0. на втором индикаторе "ДАВЛЕНИЕ" 0-4,00.
задача создать третий вход считывая импульсы (включения герконов) 2,5в и 5в. по их очередности определять направление считывания в+ или в- . при 150 импульсах значение должно быть 30,0 (эти показания уточним на месте по факту).
Вложения
Schematic_INDIKATOR-TRIM-LODKA_2026-06-03.png
(97.38 КБ) 17 скачиваний
самое сложно - сделать просто
Реклама
Эиком - электронные компоненты и радиодетали
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

ЗАВ писал(а): Ср июн 03, 2026 08:56:45 прилагаю схему
Отлично, потому что тогда ни Ваш, ни мой код не подходят даже для текущей схемы :)
Я соберу ночью это у себя и напишу новый, рабочий вариант, с входами для новых сигналов. Вопрос лишь что отображать от их поведения?
Реклама
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

в предыдущем посту я описал функционал.
уточню вывод последней индикации - (длина фала). вывод этой индикации осуществлять на второй индикатор (ДАВЛЕНИЕ). активация вывода (т.е. переключение с режима "ДАВЛЕНИЕ" в режим "длина фала") происходит при появлении сигналов на входе "длина фала". переход в обратное состояние происходит при отсутствии сигналов на входе "длина фала" в течении 10 секунд.
уточню очень важный момент . скорость вывода индикации в режиме "ТРИМ" должна быть очень высокой. иначе фактическое состояние трима и индикация его не будут соответствовать. скорость считывания должна быть примерно 10-50 раз в секунду. а в режиме "ДАВЛЕНИЯ " наоборот - целесообразнее ее затормозить - иначе скачут цифры на индикаторе . думаю примерно 1 раз в 1-2 секунды.
самое сложно - сделать просто
Реклама
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

ЗАВ писал(а): Ср июн 03, 2026 08:56:45 при 150 импульсах значение должно быть 30,0 (эти показания уточним на месте по факту).
Ввёл настройку для этого, сможете сами подстроить. Но какое максимальное значение? Если 99, то можно добавить признак, что отображается именно этот счётчик: вращение верхнего квадратика на индикаторе.
----
Пока восстановлено отображение дисплея (так как мне неизвестен тип, на всякий случай для обоих, с общим катодом и с общим анодом). Добавил несколько простеньких настроек: максимальные и минимальные значения на дисплеях, а также частоту. Это позволит самостоятельно подстроить под любой датчик, не обращаясь к программистам.
Текущее состояние работы приложено файлом и для удобства в спойлере.
Немного по-индусски, но так проще.
Всё это проверено на макетке.

То есть, на данный момент это то, что работает сейчас, плюс частично адаптированное для третьего датчика.
Спойлер

Код: Выделить всё


/*********** Настройки **********************************************************************************/

#define DISPLAY_COMMON_CATHODE  //Дисплей с общим катодом
//#define DISPLAY_COMMON_ANODE  //Дисплей с общим анодом

/* Максимальное отображаемое значение при необходимом напряжении равно L + (H - L) * 5 / V, 
        где H - отображаемое число при напряжении V, L - отображеемое число при напряжении 0.
 * Например: для значений на дисплее 80.0 и 4.00 при напряжении 4.5 В
 *    HIGH_VALUE_DISLAY_TRIM = LOW_VALUE_DISLAY_TRIM + (800 - LOW_VALUE_DISLAY_TRIM) * 5 / 4.5  = 889 
 *    HIGH_VALUE_DISLAY_PRESSURE = LOW_VALUE_DISLAY_PRESSURE + (400 - LOW_VALUE_DISLAY_PRESSURE) * 5 / 4.5 = 444 
 * Значения всегда должны быть из трёх цифр, если используется запятая, при этом она игнорируется при расчёте и устанавливается в DOT_TRIM и DOT_PRESSURE.
 *  
 * LOW_VALUE_DISLAY_TRIM и LOW_VALUE_DISLAY_PRESSURE должны учитывать точку. То есть, если требуется отображение числа "2", при этом
 * DOT_TRIM равен 1, то необходимо установить 20, иначе на дисплее будет "0.2" */

#define LOW_VALUE_DISLAY_TRIM 0     // Минимальное отображаемое значение "ТРИМ".
#define HIGH_VALUE_DISLAY_TRIM 889  // Максимальное отображаемое значение "ТРИМ" при сигнале 5 В.
#define DOT_TRIM 1                  // Количество разрядов после запятой дисплея "ДАВЛЕНИЕ" (3 - запятая выключена).

#define FREQ_TRIM 2  // Период опроса в десятках миллисекунд датчика "ТРИМ" \
                     // значение 1...100, например: 1 = опрос 100 раз в секунлду, 100 = раз в секунду.

#define LOW_VALUE_DISLAY_PRESSURE 0     // Минимальное отображаемое значение "ДАВЛЕНИЕ".
#define HIGH_VALUE_DISLAY_PRESSURE 445  // Максимальное отображаемое значение "ДАВЛЕНИЕ" при сигнале 5 В.
#define DOT_PRESSURE 2                  // Количество разрядов после запятой дисплея "ДАВЛЕНИЕ" (3 - запятая выключена).

#define FREQ_PRESSURE 100  // Период опроса в десятках миллисекунд датчика "ДАВЛЕНИЕ" \
                           // значение 1...100, например: 1 = опрос 100 раз в секунлду, 100 = раз в секунду.

#define IMPULS 1  // Количество импульсов, изменяющих счётчик на единицу

/*********** конец настроек пользователя **********************************************************************************/

#define CH_ADC_TRIM 1  // Канал АЦП датчика "ТРИМ".
#define CH_ADC_PRESSURE 2  // Канал АЦП датчика "ДАВЛЕНИЕ".
#define CH_ADC_COUNT 0  // Канал АЦП датчика "СЧЁТЧИК".

#define INDICATOR_1 0  // Смещение разрядов первого индикатора.
#define INDICATOR_2 3  // Смещение разрядов второго индикатора.

// Массивы сегментов, номер элемента массива соответсвует отображаемой цифре. Десятый элемент - пробел.
#ifdef DISPLAY_COMMON_CATHODE
const uint8_t Segments[11] = { 0xFC, /*0*/ 0x18, 0x6D, 0x3D, 0x99, 0xB5, 0xF5, 0x1C, 0xFD, 0xBD /*9*/, 0x00 };
#else
const uint8_t Segments[11] = { 0x03, /*0*/ 0xE7, 0x92, 0xC2, 0x66, 0x4A, 0x0A, 0xE3, 0x02, 0x42 /*9*/, 0xFF };
#endif

volatile uint8_t display[9] = { 0 };            // Дисплейный буфер. ЭЛЕМЕНТЫ 0...2 - первый индикатор, 3...5 - второй индикатор, 6...8 - третий индикатор.
volatile uint8_t currentDig = 0;                // Текущий отображаемый разряд.
volatile uint8_t adcChannels[3] = { CH_ADC_TRIM, CH_ADC_PRESSURE, CH_ADC_COUNT};  // Каналы АЦП для датчиков 1...3 индикаторов 1...3

/******** Дисплей ************************************************************************************************************************/

// Функция преобразования числа и точки в сегменты дисплейного буфера для определённого индикатора.
void updatedisplay(uint16_t val, uint8_t dot, uint8_t indicator) {
  // Выделение цифр из числа:
  uint8_t d3 = (uint8_t)(val / 100);        // сотни,
  uint8_t d2 = (uint8_t)((val / 10) % 10);  // десятки,
  uint8_t d1 = (uint8_t)(val % 10);         // единицы.

  // Проверка на лишние нули слева:
  if ((!d3) && (!d2) && (!d1)) {  // если все три цифры - 0...
    d3 = d2 = 11;                 // ... то они становятся пробелами,
    dot = 3;                      // а точка не нужна при 0;
  }
  if ((!d3) && (dot != 2)) {  // если крайний левый разряд не отделен точкой и равен 0...
    d3 = 11;                  //...  то он становится пробелом.
  }
  // Получение сегментов соответственно цифрам:
  uint8_t seg3 = Segments[d3];
  uint8_t seg2 = Segments[d2];
  uint8_t seg1 = Segments[d1];

  // Добавление точки к нужному разряду:
#ifdef DISPLAY_COMMON_CATHODE
  if (dot == 2) seg3 |= 0x02;
  if (dot == 1) seg2 |= 0x02;
  if (dot == 0) seg1 |= 0x02;
#else
  if (dot == 2) seg3 &= ~0x02;
  if (dot == 1) seg2 &= ~0x02;
  if (dot == 0) seg1 &= ~0x02;
#endif

  // Обновление массива дисплея новыми данными:
  cli();
  display[indicator + 2] = seg1;
  display[indicator + 1] = seg2;
  display[indicator + 0] = seg3;
  sei();
}

// Отображение разрядов индикаторов
ISR(TIMER2_OVF_vect) {
  uint8_t seg = 0;
#ifdef DISPLAY_COMMON_CATHODE
  PORTB |= 0x38;  // Выключить все разряды первого индикатора
  PORTC |= 0x38;  // Выключить все разряды второго индикатора
#else
  PORTB &= ~0x38;  // Выключить все разряды первого индикатора
  PORTC &= ~0x38;  // Выключить все разряды второго индикатора
#endif

  // бесконечный перебор шести разрядов
  if (++currentDig > 5) {
    currentDig = 0;
  }

  seg = display[currentDig];

  PORTD = (PORTD & 0x03) | seg;           // управление сегментами A...F (PD2-PD7)
  PORTB = (PORTB & 0xFC) | (seg & 0x03);  // управление сегментом G и точкой (PB0,PB1)

// включение текущего разряда
#ifdef DISPLAY_COMMON_CATHODE
  if (currentDig < 3) {
    PORTB &= ~(1 << (currentDig + 3));
  } else {
    PORTC &= ~(1 << (8 - currentDig));
  }
#else
  if (currentDig < 3) {
    PORTB |= (1 << (currentDig + 3));
  } else {
    PORTC |= (1 << (8 - currentDig));
  }
#endif
}

/******** АЦП ************************************************************************************************************************/

ISR(ADC_vect) {
  static uint32_t sum[3] = { 0 };
  static uint8_t count[3] = { 0 };
  static uint8_t hz[3] = { 0 };  // Частота обновления
  static uint8_t ch = 0;         // Текущий канал

  int8_t ready = -1;  // флаг готовности данных
  uint32_t val = 0;

  sum[ch] += ADC;  // Сохранение результата текущего канала

  if (++count[ch] > 32) {  // Усреднение после 32 измерений
    count[ch] = 0;
    val = sum[ch] >> 5;
    sum[ch] = 0;
    ready = ch;
    if (hz[ch] < 255) hz[ch]++;
  }

  if (++ch > 2) {  // Переключение на следующий канал
    ch = 0;
  }

  ADMUX = (ADMUX & 0xF0) | adcChannels[ch];  // изменение канала в ADMUX (сохраняя REFS0)

  // val = 921; // тест показаний дисплея при 4.5 В

  switch (ready) {
    case 0:
      if (hz[0] >= FREQ_TRIM) {
        hz[0] = 0;
        val *= (HIGH_VALUE_DISLAY_TRIM - LOW_VALUE_DISLAY_TRIM);
        updatedisplay((uint16_t)(LOW_VALUE_DISLAY_TRIM + val / 1023), DOT_TRIM, INDICATOR_1);
      }
      break;
    case 1:
      if (hz[1] >= FREQ_PRESSURE) {
        hz[1] = 0;
        val *= (HIGH_VALUE_DISLAY_PRESSURE - LOW_VALUE_DISLAY_PRESSURE);
        updatedisplay((uint16_t)(LOW_VALUE_DISLAY_PRESSURE + val / 1023), DOT_PRESSURE, INDICATOR_2);
      }
      break;
    case 2:
       hz[2] = 0;
       break;
    default:
      break;
  }
  ready = -1;
}

void setup() {
  /** Порты */
  DDRD = 0xFC;  // выходы PD2...PD7 - A...F
  DDRB = 0x3B;  // выходы PB0, PB1 - G,H; PB3...PB5 - Dig1...Dig3 (displayTRIM)
  DDRC = 0x38;  // выходы PC3...PC5 - Dig4...Dig6 (displayPRESSURE)

#ifdef DISPLAY_COMMON_CATHODE
  PORTB |= 0x38;  // Выключить все разряды displayTRIM
  PORTC |= 0x38;  // Выключить все разряды displayPRESSURE
#else
  PORTB &= ~0x38;  // Выключить все разряды displayTRIM
  PORTC &= ~0x38;  // Выключить все разряды displayPRESSURE
#endif

  /** ADC */
  ADMUX = (1 << REFS0) | adcChannels[0];                // AVCC, канал первого датчика
  ADCSRA = (1 << ADEN) |                                // Включить АЦП
           (1 << ADIE) |                                // Разрешить прерывание по завершению
           (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);  // предделитель 128
  // Free Running Mode
  ADCSRB = 0;
  ADCSRA |= (1 << ADATE) | (1 << ADSC);

  /** TIM2 */
  TCCR2A = 0;
  TCCR2B = (1 << CS22) | (1 << CS20);
  TIMSK2 |= (1 << TOIE2);

  sei();
}

void loop() {
}
Замечу, что 6 разрядов это уже близко числу сегментов 8, то есть, если перейти на посегментную индикацию, то можно добавлять сколько угодно индикаторов, вместо изменения их режимов отображения. По крайней мере, один точно (с учётом выделения выводов для счётчика)
Вложения
sketch_20260604024833.zip
(10.22 КБ) 3 скачивания
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

Исправил ошибку с АЦП, оказывается, оно бывает у клонов ардуин 12 бит
Вложения
sketch_20260604024833.zip
(10.9 КБ) 4 скачивания
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

спасибо . расписано много и подробно . но для меня НЕпрограммиста мало что понятно (исключение- настройка индикации) . попробовать все собрать получится не раньше вечера понедельника. буду пробовать на макетке . результат отпишусь, если получится раньше. какой пин для счетчика ?
самое сложно - сделать просто
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

ЗАВ писал(а): Чт июн 04, 2026 20:51:56 какой пин для счетчика ?
а какой удобно? он в любом случае будет настраиваемый.
и хватит ли значения 99?
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

уточните значения 99 - по входу или выходу счетчика? выход известен - 30. вход будет более 99 . думаю около 300 *2 уровня.
ввиду намотки фала внавал, при намотке, не факт , что значения вернуться в ноль. далее погрешность будет накапливаться. поэтому нужно сделать сброс счетчика в ноль , если значение по входу 5 и меньше и не меняются в течении 10 секунд.
уточню важный вопрос - на счетчик идут импульсы амплитудой 5в и 2-2,5в. (один геркон подключу через резистивный делитель) их в счетчике нужно разделить . и по началу счета 5в или 2в определять направление счета. мы правильно поняли друг друга? поэтому думаю целесообразно считать по 5в импульсу , а по 2в определять направление.
как поведет себя скетч , если будет остановка на герконе? не зависнет скетч?
вход счетчика напрашивается а0
самое сложно - сделать просто
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

99 - отображаемое число на индикаторе. Вход может быть любым, в настройке будет указываться число импульсов на 1 единицу счётчика. Раз максимальное 30, то добавлю вращающийся квадратик, как признак того, что отображается счётчик, а не другое.

Время сброса счётчика будет настраиваться.

Направление счёта и пороги обоих уровней также будут настраиваться.

Если будет остановка на герконе, то это всего лишь вместо вечного 0 вечные 2.5 или 5. Никакой разницы. Счёт ведётся по смене состояний. Насколько мне известно, у геркона есть достаточно большой гистерезис, чтобы исключать ситуацию попадания в "дрожащее" состояние.

К вечеру понедельника будет готово.
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

думаю , что по двум уровням сигнала, счетчик не сможет достоверно понять направление вращения, ведь не известно с какого места начнется отсчет. считаю, что нужно ставить 3 геркона , разделить их по напряжению 5, 3, 1,5в. для их включения использовать один магнит. это уменьшит точность до 0,3м. но этого будет достаточно. один магнит даст точное понимание последовательности включения , и значит и направления вращения. есть понимание как это программно организовать ?
самое сложно - сделать просто
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

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

Если это два геркона 2.5 и 5, поочередно срабатывающих, то получить направление вращения всё равно возможно, при условии, что они стоят рядом, а скорость вращения всегда равномерна (более-менее):
предположим, что расстояние между ними 1/4 длины окружности, магнит один.
Тогда в одну сторону период T(2.5 -> 0 -> 5) равен 1/4, а в другую - 3/4 от времени оборота. И импульс - это когда три уровня сменились именно за 1/4 времени, а направление вращения - порядок смены.

Добавление третьего напряжения позволяет считать не по времени, а по порядку срабатывания, а также проще прикрепить несколько магнитов, что ускорит получение данных. И здесь преимущество, если вращение неравномерное. Минус - менее чёткое разделение сигнала, то есть, риск получения ошибки и потери части информации.

Программная реализация и того, и другого решения проста. Ресурсов у Arduino Nano ещё более 90%, можно и ещё что-то придумать.

Замечу, что если за одну операцию вращение всегда в одну сторону, притом счётчик между операциями сбрасывается, то достаточно лишь одного геркона.
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

скорость вращения разная при сбросе высокая, при подборе раз в 5 ниже. меня терзают сомнения по быстродействию , дребезгу и помехи от вибрации (работа мотора при считывании будет только на холостой, на полном ходу вибрация ПРИЛИЧНАЯ - может как то ускорить деградацию геркона ?) . Я опасаюсь, что с тремя герконами нагородим систему, а ввиду вышеозвученных ограничений герконов, от них придется отказаться и ставить датчик холла, а направление брать с кнопок подъем / сброс +12в . технических вариантов много каким идти? с герконами огромный плюс , что нужен один провод и все! какое Ваше мнение?
самое сложно - сделать просто
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

Надо идти тем вариантом, где самая простая механическая реализация.
Если в месте расположения датчика помимо одного провода и общего, есть ещё + какого-то питания, то можно вообще что угодно придумать, и по одному проводу передать не только обороты, но и дополнительную информацию от дополнительных датчиков.
Насколько плохо живут герконы в условиях вибрации я не знаю, вообще практически нет опыта их эксплуатации, только в "тепличных" условиях сигнализаций.
ЗАВ
Встал на лапы
Сообщения: 142
Зарегистрирован: Вт июн 01, 2021 22:09:42

Re: датчик положения дроссельной заслонки

Сообщение ЗАВ »

на лебедке есть и+ - и один свободный провод.пробуем с 3-мя герконами?
самое сложно - сделать просто
Zapolyarny
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт май 07, 2026 00:30:38

Re: датчик положения дроссельной заслонки

Сообщение Zapolyarny »

Давайте попробуем с ними. Не получится - никто ж не запрещает и что-то другое.
Ответить

Вернуться в «АвтоМотоВело»