Бортовой компьютер для мотоцикла с 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 ответ