Бортовой компьютер для мотоцикла с LCD от Nokia 6280


В данном проекте мото-бортового компьютера вы увидите как можно использовать LCD-дисплей от мобильного телефона Nokia 6280, управляемый микроконтроллером PIC18F4455. Данный БК установлен на мотоцикле Yamaha TDM850 (99 г. выпуска).

Характеристики устройства:

  • отображение текущей передачи (с 1 по 5), плюс нейтральная передача
  • напряжение аккумулятора. Отображение аналоговое и цифровое
  • время с запуска
  • отображение аналогового и цифрового спидометра
  • суточный счетчик
  • отображение положения ручки газа (в процентах)
  • отображение аналогового и цифрового тахометра
  • если мотор не заведен, то отображается надпись «Engine Stop»
  • отображение температуры воздуха, охлаждающей жидкости, масла
  • при определенных оборотах отображается надпись «GearUp» (переключить передачу вверх). В режиме настроек (Debug Mode) возможна корректировка об/мин при которых появляется предупреждающая надпись
  • на 5-ой передаче при раскручивании движка более 3500 об/мин и при параметре TRP меньшем чем задан в настройках (к примеру 17%), отображается надпись «Economic Drive» (экономичная езда)

Режим настроек (Debug Mode):

В данном режиме БК показывает данные датчика скорости, TPS датчика (ручка газа), уникальные коды устройств датчика температуры DS18B20. Также, врежиме настроек вы можете поменять параметры для режимов «GearUp», «Economic Drive» и настроить подсветку LCD.

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

Вход в режим настроек и изменение параметров:

  • ручку переключения передач передвиньте на нижнюю передачу и включите питание. На экране устройства появится надпись Debug Mode.
  • для пролистывания параметров передвигайте вниз ручку переключателя передач.
  • для изменения параметра используйте ручку газа
  • для сохранения изменений параметра, передвиньте ручку переключателя передач вверх. Параметр изменит свой цвет на синий.

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

Вся электронная начинка расположена слева от защиты и с LCD экранчиком соединена плоским шлейфом. С второй стороны электронного блок БК отходят соединения к модулю зажигания, температурным датчикам и датчику положения ручки передач.

От модуля зажигания БК получает +12В, сигналы об/мин (RPM) и ручки газа.

Температурные сенсоры DS18B20 подключены по протоколу 1Wire, в режиме «parasite power» (т.е. не требуют внешнего питания).

Датчики переключателя передач расположены под левой защитой картера двигателя. В качестве датчиков используются 2 оптических сенсора. На фотографиях вы можете увидеть все 3 положения: обычное положение, положение при переключении передачи вниз и положение при переключении передачи вверх.

На данном мотоцикле нет заводского датчика скорости, поэтому я сделал его своими руками. В качестве датчика скорости я использовал датчик-Холла TLE4945. Датчик установлен под крышкой картера двигателя.

Для работы датчика Холла требуются магниты, в моем случае я использовал три магнита. Причина этого более высокая точность: скорость измеряется от 0 до 350 км/ч с разрешением 1 км/ч, обновление данных происходит каждую секунду. При монтировании магнитов вы должны соблюдать ориентирование их магнитного поля. Последовательность полюсов магнитов у меня такая: S-N-S-N-S-N.

В принципиальной схеме используется простое решение для связи PIC18F4550 и Nokia 6280 Lcd (320×240 пикселей) через параллельный порт.
Для термодатчиков DS18B20 используется 1 канал ввода\вывода 1Wire. Для датчика положения передач и нейтральной передачи используется 3 линии МК, один вход МК используется для датчика скорости, 2 аналоговых входа для измерения напряжения питания и датчика ручки газа, и один выход используется для подсветки LCD. USB разъем используется для программирования и тестирования.

Как было сказано выше, все 3 датчика DS18B20 сидят на одной линии 1Wire и для правильной работы устройства надо знать их уникальные 64-разрядные коды.
У моих датчиков были следующие коды:
«Воздух» = 9300000078625728
«Вода» = D5000002061B2128
«Масло» = 4600000206125A28

Для правильной работы БК, в коде программы вы должны изменить эти коды на коды своих датчиков (см. скриншот выше).

Скачать прошивку

Оригинал статьи на английском языке (Перевод: Колтыков А.В. для сайта cxem.net)

Небольшое видео работы устройства:

1 ответ