Показано с 1 по 9 из 9
  1. #1
    Бдительно следящий
    Регистрация
    27.01.2010
    Возраст
    55
    Сообщений
    203
    Вес репутации
    221

    По умолчанию Простой Буст-Контроллер (Boost-Controller) на Arduino

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

    Временно можно воткнуть самодельный механический контроллер.
    Но есть острое желание сделать процесс более гибким и поручить его автоматике, т.е. контроллеру на Ардуино.

    Исходные данные:
    Есть Arduino.
    Есть соленоид. На данном этапе планируется использовать клапан продувки адсорбера от ВАЗ.
    Есть Датчик Абсолютного Давления (ДАД) - Motorola MPX4250.

    Собственно зависимость напряжения на выходе ДАД от прикладываемого давления на графике:


    Собственно что хочется получить:
    - Надо мониторить изменение напряжения на выходе ДАД;
    - Выводить значение наддува в Атмосферах на 4х-значный цифровой сегментный индикатор типа CA56-11GWA.
    При давлении ниже 101.3 kPa = 1 атмосфер (разряжение в ресивере), значение на индикаторе должно быть отрицательным, например "-0.20", при давлении в 151.95 kPa (1.5 Атмосфера), значение на индикаторе должно быть "+0.50";
    - Управлять открытием-закрытием соленода (12V клапан продувки адсорбера) методом ШИМ с частоторой 25-30Hz, изменяя скважность импульсов, опять же в зависимости от напряжения на выходе ДАД. При напряжении на выходе ДАД 1,75В (101,3 kPa = 1 Атм) соленоид должен быть постоянно закрыт.
    - Возможность смещения настроенной верхней границы давления наддува на +0,20 при нажатии на кнопку (функция Overboost), с ограничением по времени до 30 сек (если это возможно реализовать) и морганием индикатора.

    Нюансы:

    Индикатор будет использоваться как проекционный, отражение в лобовом стекле. Сейчас у меня таким образом воткнут магазинный тахометро/вольтметро/будильник с часами. Соответственно картинка должна быть перевернута относительно горизонтальной оси. Но это не проблема сделать самостоятельно, просто переброской отдельных сегментов.

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

    Это минимум, который хотелось бы получить.
    Знатоки Arduino и мастера скетчей, не откажите в любезности помочь с составлением схемы и написанием скетча. Ибо сам не осилю.
    Собрать турбомотор могу (собрал уже), залить поправить прошивку на ЭБУ могу (это тоже), а вот в программировании тёмен изрядно.

    Позже можно говорить о дальнейшем развитии проекта.
    Подключить еще и сигналы тахометра и датчик скорости, чтобы настраивать давление наддува для разных режимов движения (например в пробке наддув не нужен), и быстрого переключения калибровок контроллера из режима "город" в режим "трасса", например.

    P.S.: В дальнейшем, если проект будет работать, можно купить настоящий соленоид от контроллера APEXi, например, или AEM. Он реально скоростной и точный.
    Последний раз редактировалось Skiw; 27.03.2012 в 14:34. Причина: Картинок навтыкал и ссылок
    Skiw®, Самара
    http://www.skiw63.ru/

  2. #2
    Бдительно следящий
    Регистрация
    27.01.2010
    Возраст
    55
    Сообщений
    203
    Вес репутации
    221

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    Составил табличку соответствия давления на датчике напряжению на его выходе.

    Так как характеристика линейна, то думаю, можно описать вычисления формулой. Не представляю как это сделать в скетче.

    Формула расчета выглядит так:

    Vout = Vs*(P*0.004-0.04)

    Где
    Vout - напряжение на выходе ДАД (1й вывод датчика).
    Vs - Напряжение питания датчика = 5,1V
    P - давление в kPa

    Как делаются подобные вычисления в скетчах для Arduino?
    Подскажите, плз.

    И еще.
    В этой же таблице я расписал для себя, какие сегменты индикатора надо зажигать, чтобы получить на нем адекватное изображение.
    Получилось, что этот индикатор у меня не просто сожрет выводы Arduino, а еще и не хватит.
    Помню, что был способ сократить количество используемых выводов с помощью дополнительной обвязки. Что и как можно применить?
    Где посмотреть пример с, хотя бы, 2х двузначным семи-сегментным индикатором.
    Последний раз редактировалось Skiw; 27.03.2012 в 20:22.
    Skiw®, Самара
    http://www.skiw63.ru/

  3. #3
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    Можно индикаторы подключить через шифты

  4. #4
    Бдительно следящий
    Регистрация
    27.01.2010
    Возраст
    55
    Сообщений
    203
    Вес репутации
    221

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    Ура, я получил один ответ.
    Chip, если не сложно - ткните пальцем, где есть примеры подключения индикаторов через шифты к ардуино.

    Потыркался по форуму, нашел схему. Это оно, я правильно понимаю?
    Получается, что можно использовать 4 выхода с Ардуино.


    Еще надо разобраться, что и как на них подавать.
    Последний раз редактировалось Skiw; 28.03.2012 в 15:29. Причина: Пошарил, нашел схему.
    Skiw®, Самара
    http://www.skiw63.ru/

  5. #5
    Местный Аватар для zhserg
    Регистрация
    12.11.2010
    Сообщений
    135
    Вес репутации
    193

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    ИМХО, навряд ли кто то сделает тебе готовое решение. Вывод - самому начинать осваивать программирование Ардуины. Сходи на http://arduino.ru/ в раздел Программирование. Для начала, согласно твоего плана, сделай чтение с аналогового входа. Там и примеры есть. Подсказка - см. функцию analogRead(). Результаты выкладывай, спрашивай что непонятно. Форумчане, которые могут подсказать, здесь имеются.
    Удачи.
    Последний раз редактировалось zhserg; 28.03.2012 в 16:52.
    avaclub.ru
    Intel D525MW, 2Gb, SSD 40Gb, 7' noname, ATX DC-DC 160W MINI-ITX, GM-2 USB GPS Receiver MTK2, USB ELM327 V1.4

  6. #6
    Бдительно следящий
    Регистрация
    27.01.2010
    Возраст
    55
    Сообщений
    203
    Вес репутации
    221

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    zhserg, благодарю за поддержку.
    Я и не думаю, что кто-то загорится идеей разрабатывать устройство для меня. Мне и самому интересно. Собственно вот репу расчесываю

    Порыскал по нашему форуму.
    Нашел тему про индикатор передач.
    http://www.compcar.ru/forum/showpost...79&postcount=8
    Там используется безрегистровая индикация и индикация с регистром сдвига.
    Но не очень понял, как пишутся значения в регистры.
    Потом подумалось, что "0" - это зажигаемые сегменты, а "1" - не зажигаемые.
    Таким образом можно легко вычислить, какой вывод какому биту соответствует.
    А так как количество выводов надо уменьшить, пошел чуть дальше.
    Стал сравнивать скетчи и подумалось, что в первом значения представлены в двоичном виде, а во втором - в десятичном.
    Нашел конвертер - http://whoyougle.ru/measure/hex/ - попробовал. Точно, оно.

    Мне надо использовать четыре семи-сегментных индикатора.
    Попытаюсь предположить, что чтобы зажигать не 7 сегментов, а 28, мне надо отдавать на регистры не 8 битов, а 32.
    Т.е., чтобы получить на индикаторе значение "0000", надо записать в регистр двоичное значение "11000000110000001100000011000000", что в десятичном соответствует числу 3233857728. Сразу вопрос, можно ли использовать шестнацатеричное исчисление? Просто в скетче оно места меньше займет - "C0C0C0C0"

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


    Прокомментируйте, плз, правильно ли течет моя мысль?
    Может есть возможность что-либо оптимизировать?

    Далее надо посмотреть что такое вольтметр и как интерпретируются данные.
    Skiw®, Самара
    http://www.skiw63.ru/

  7. #7
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    393

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    Вот ссылка:
    http://arduino.cc/en/Tutorial/ShiftOut
    Там схема и скетч для двух регистров. Еще два подключаются аналогично.

  8. #8
    Бдительно следящий
    Регистрация
    27.01.2010
    Возраст
    55
    Сообщений
    203
    Вес репутации
    221

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    manu_245, спасибо, разобрался.
    Нашел сразу по-русски:
    http://arduino.ru/Tutorial/registr_74HC595

    Первый шаг был от Chip'a - "шифты", а дальше покатилось
    Skiw®, Самара
    http://www.skiw63.ru/

  9. #9
    Пользователь
    Регистрация
    21.07.2010
    Возраст
    44
    Сообщений
    82
    Вес репутации
    186

    По умолчанию Re: Простой Буст-Контроллер (Boost-Controller) на Arduino

    Привет дружище!
    Давно тоже вынашиваю идею по буст-контроллеру на ардуинке.
    В отличие от готовых железок, есть поле для творчества, да и стоимость куда более гуманна.
    Только я не понял, а почему ты хочешь сегментный индикатор воткнуть, а не ЖК дисплей от Нокии той же самой?
    С уважением, Дмитрий.
    тел. 8 9I6 855 7Ч 95

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •