Бортовой компьютер для мотоцикла с 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 (320x240 пикселей) через параллельный порт. Для термодатчиков DS18B20 используется 1 канал ввода\вывода 1Wire. Для датчика положения передач и нейтральной передачи используется 3 линии МК, один вход МК используется для датчика скорости, 2 аналоговых входа для измерения напряжения питания и датчика ручки газа, и один выход используется для подсветки LCD. USB разъем используется для программирования и тестирования.
Как было сказано выше, все 3 датчика DS18B20 сидят на одной линии 1Wire и для правильной работы устройства надо знать их уникальные 64-разрядные коды. У моих датчиков были следующие коды: "Воздух" = 9300000078625728 "Вода" = D5000002061B2128 "Масло" = 4600000206125A28
Для правильной работы БК, в коде программы вы должны изменить эти коды на коды своих датчиков (см. скриншот выше).