После долгих мучений связаных с первым опытом использования микроконтроллеров , на конец-то выкладываю свою, модернизированнаю версию тахометра.
Основной задачей было достичь максимально возможной яркости индикатора, по этому мне пришлось добавить транзисторы и сопротивления к ним для каждого общего выхода индикатора, также номинал сопротивлений каждого сегмента я уменьшил до 33 ом. На свое устройство я установил Ultra bright идикатор, который согласно даташиту потребляет 30 мА на сегмент. Также пришлось заменить стабилизатор питания, так как 100 мА на 7 сегментов по 30 не зватит никак, я использовал стабилизатор 7805 в корпусе d-pak (по даташиту выдает 1А).
Также я хотел добавить кое-какие функции в прошывку, но оканчательно запутавший в оригинальной, написал с нуля свою. Хекс файлы и исходники (в проекте atmel studio) прилагаю в архиве. Вот что устройство теперь умеет:
1. Добавлина кнопка на ранее не успользуемый порт микроконтоллера для управление меню. Устройство распазнает одинарное и двойное нажатие. Меню тахометра состоит из 4 параметров - 1-отображения оборотов; 2-настройка яркости индикатора - обазначается буквой L - имеет параметры AU - режим авто, тоесть в зависимости от состаяние габаритов автомобиля, HI - всегда ярко и Lo - всегда минимум; 3-настройка округления (обозначатеся буквой S) и имеет параметры шага показаний в 10,20,50,100 и отображение оборотов как есть; 4- настройка градиента делителя, ByBlade в оигинальной прошивке - обозначается буквой G и имеет значения 1,2,3,4; при выходе из последнего меню устройство сохраняет значения параметров в EEPROM и вновь отображает обороты двигателя. Переход по параметрам меню ( обороты-яркость-округления-градиент) осуществляется двойным нажатием кнопки, переход по параметрам подменю по одинарному нажатию.
2. На остаток памяти для большей стабильности показаний я сделал округление оборотов. Новые показания оборотов высчитываются как только приходит новый импульс с катушки, а потом устройсвто по таймеру, 30 раз в секунду виксирует последне вычесленное показания, и как только приходит новый импульс, тахометр вычесляет новое значение, но на экран выводит среднее значение оборотов за последнию секунду.
Устройсвто успешно проверенно на индикаторе CA+PNP (в живую) и в симуляторе на CC и СA. Видео работы, к сожелению показать не могу, так как при устранении последнего бага прошивки, случайно каратнул питание, спалив и стабилизатор и микроконтроллер, теперь жду пока придут новые с ебея.
Моя прошивка полностью совместима с оригинальной печатной платой, по этому можно обновлять и старую версию.
Вот ссылка на архив где лежат хексы, исходники на Atmel studio, проект протеуса, печатка в .lay и все фотки:
https://yadi.sk/d/0LhTWnEogkv9Ehttps://drive.google.com/file/d/0B7JJ5C ... p=drivesdkИ пара фоток:
https://yadi.sk/i/j3zuqFy9gkxeDhttps://yadi.sk/i/y0ipoaGYgkxfchttps://yadi.sk/i/nyRQPUImgkxi3https://yadi.sk/i/WPeY_cWxgkxjC