Как собрать точный и надежный цифровой тахометр для автомобиля своими руками. Какие компоненты потребуются для сборки тахометра на PIC16F628A. Как правильно запрограммировать микроконтроллер и откалибровать тахометр. Какие режимы работы поддерживает данная модель тахометра.
Принцип работы цифрового автомобильного тахометра
Цифровой автомобильный тахометр измеряет частоту вращения коленчатого вала двигателя и отображает ее на дисплее в оборотах в минуту. Принцип работы такого тахометра основан на измерении периода между импульсами от датчика положения коленвала или системы зажигания.
Основные компоненты цифрового тахометра:
- Микроконтроллер — обрабатывает входные сигналы и выполняет расчеты
- Входная цепь — преобразует и фильтрует сигналы от датчика
- Дисплей — отображает измеренное значение оборотов
- Источник питания — обеспечивает стабильное напряжение для схемы
Микроконтроллер измеряет время между импульсами от датчика и рассчитывает частоту вращения по формуле:
RPM = 60 / (период между импульсами * количество импульсов за оборот)
Полученное значение выводится на дисплей и обновляется несколько раз в секунду.
Выбор компонентов для сборки тахометра
Для сборки надежного автомобильного тахометра рекомендуется использовать следующие компоненты:
- Микроконтроллер PIC16F628A
- Стабилизатор напряжения 78L05
- 4-разрядный 7-сегментный светодиодный индикатор
- Кварцевый резонатор на 4 МГц
- Транзисторы BC547B
- Резисторы, конденсаторы, диоды
- Печатная плата
PIC16F628A — оптимальный выбор из-за наличия встроенного таймера и модуля захвата, что упрощает измерение периода импульсов. Этот микроконтроллер обладает достаточной производительностью для обработки сигналов и вывода данных на дисплей в реальном времени.
Схема подключения тахометра к автомобилю
Для корректной работы тахометр необходимо правильно подключить к электрической системе автомобиля:
- Питание +12В — к цепи зажигания автомобиля через предохранитель
- Масса — к кузову автомобиля
- Вход сигнала — к минусовой клемме катушки зажигания или выходу датчика Холла
При подключении к катушке зажигания необходимо использовать резистивный делитель напряжения для защиты входа микроконтроллера. Для индуктивных датчиков рекомендуется использовать компаратор для формирования прямоугольных импульсов.
Программирование микроконтроллера PIC16F628A
Для программирования PIC16F628A можно использовать язык ассемблера или C. Основные этапы программы:
- Инициализация портов ввода-вывода и таймера
- Настройка модуля захвата для измерения периода импульсов
- Основной цикл измерения и расчета оборотов
- Вывод значения на дисплей
Пример фрагмента кода на C для измерения периода:
void main() {
unsigned long period;
while(1) {
period = measure_period();
rpm = 60000000 / (period * pulses_per_rev);
display_rpm(rpm);
}
}
unsigned long measure_period() {
TMR1 = 0;
while(!CCP1IF); // Ждем импульс
return CCPR1; // Считываем период
}
После программирования микроконтроллера необходимо выполнить калибровку тахометра для повышения точности измерений.
Калибровка и настройка тахометра
Для калибровки тахометра можно использовать следующие методы:
- Сравнение показаний со штатным тахометром автомобиля
- Использование генератора сигналов с известной частотой
- Применение стробоскопа для точного измерения оборотов
Процесс калибровки:
- Подать на вход тахометра сигнал с известной частотой
- Сравнить показания тахометра с эталонным значением
- Скорректировать калибровочный коэффициент в программе
- Повторить для нескольких значений частоты
После калибровки погрешность измерений не должна превышать ±50 об/мин во всем диапазоне.
Режимы работы универсального тахометра
Рассматриваемая модель тахометра на PIC16F628A поддерживает несколько режимов работы для различных типов двигателей:
- 4-цилиндровый 4-тактный (1 импульс на 2 оборота)
- 6-цилиндровый 4-тактный (1.5 импульса на 2 оборота)
- 8-цилиндровый 4-тактный (2 импульса на 2 оборота)
- 2-тактный (1 импульс на оборот)
Выбор режима осуществляется с помощью кнопки или перемычек на плате. Текущий режим сохраняется в энергонезависимой памяти микроконтроллера.
Дополнительные функции тахометра
Для повышения функциональности в тахометр можно добавить следующие возможности:
- Сигнализация превышения оборотов
- Память максимальных оборотов
- Подсветка дисплея с регулировкой яркости
- Интерфейс для подключения к компьютеру
Эти функции реализуются программно и не требуют серьезных изменений аппаратной части.
Тестирование и отладка тахометра
Перед установкой в автомобиль необходимо тщательно протестировать тахометр:
- Проверить работу при различных входных сигналах
- Убедиться в стабильности показаний
- Протестировать в экстремальных условиях (высокие обороты, помехи)
- Проверить энергопотребление и нагрев компонентов
При обнаружении проблем необходимо выполнить отладку программы и при необходимости внести изменения в схему.
Установка тахометра в автомобиль
При монтаже тахометра в автомобиль следует учитывать следующие моменты:
- Выбрать место с хорошей видимостью для водителя
- Обеспечить надежную фиксацию корпуса
- Защитить от влаги и вибраций
- Использовать экранированные провода для подключения
- Установить предохранитель в цепи питания
После установки необходимо проверить работу тахометра в движении и при необходимости выполнить финальную подстройку.
Универсальный тахометр на МК PIC16F628A
Схема тахометра была воссоздана и модифицирована по мотивам авторской схемы многорежимного тахометра Вадима Корнелюка. В сети предостаточно перепечаток этой статьи и вот ссылка на одну из них: https://volt-index.ru/podelki-dlya-avto/tsifrovoy-tahometr-na-mikrokontrollere-pic16f628.html.
К авторской схеме были добавлены входные узлы для согласования с различными цепями съема сигнала, был введен входной формирователь, генератор для проверки и калибровки тахометра, несколько изменены цепи питания. В соответствии с модификацией схемы была разработана новая печатная плата.
В результате модификации тахометр приобрел несколько большую универсальность в виде трех входов для работы: с датчиком Холла, с индуктивным датчиком, с выходным ключом коммутатора катушки зажигания. Наличие разных входных узлов предохранит вход МК от случайного попадания импульсов большой амплитуды и позволит без проблем произвести необходимое подключение. Введенный в схему тахометра узел формирования импульса, уменьшает вероятность дребезга на входе МК и повышает качество счета МК на высоких оборотах.
Принципиальная схема изображена на рис.1
Рис.1 Принципиальная схема тахометра
Как видно и было написано выше, тахометр имеет три входа — «DH» (для подключения к датчику Холла), «IND» (для подключения к индуктивному датчику), «КЗ» (для подключения к выходному ключу коммутатора). Вход «DH» является объединяющим для прочих входов. Светодиод HL3 индицирует изменения по любому из трех входов, что может быть полезно при проверке работоспособности датчиков и их цепей. Вход «КЗ» работает по замыканию выходного ключа коммутатора и может быть использован совместно с механическим прерывателем или любым другим датчиком, работающим на замыкание. Сигналы с любого из датчиков подаются с объединенного входа на формирователь импульсов U2, выполненном на таймере LM555, формирующем на выходе укороченные по времени относительно входного сигнала импульсы, длительность которых регулируется потенциометром PR2. На транзисторе VT6 выполнен преобразователь уровня для входа МК, т.к. входная часть схемы запитана напряжением 12В и имеет соответствующую амплитуду выходных импульсов.
В эмиттерную цепь VT6 включен светодиод HL4, индицирующий импульсы по входу МК. Встроенный в тахометр генератор так же выполнен на таймере LM555 и генерирует импульсы в диапазоне 6-90Гц (приблизительно). Предназначен исключительно для проверки и калибровки тахометра, но при необходимости может быть полезен и в иных ситуациях (лишь бы не мешал). Для включения генератора используется контактная группа кнопки S1, подключающая генератор к входу «DH». Вторая контактная группа кнопки используется для зажигания светодиода HL1, свечение которого и означает подключение генератора. МК работает в нескольких режимах (определяемых прошивкой), допускающих использование тахометра с ДВС различной конфигурации (тактность-количество цилиндров-количество катушек зажигания). Режимы работы тахометра выбираются с помощью кнопки S2 и последний выбранный режим запоминается, автоматически запуская тахометр при следующем включении питания именно в этом режиме. Т.к. автор оригинальной версии тахометра предложил к использованию сразу три версии прошивки («базовая», «исправленная», «новая»), мною были проверены все три.Режимы работы тахометра, выбираемые в меню, следующие (при использовании резонатора 8МГц):
Количество цилиндров — количество катушек зажигания — тактность
- Р.1.0 – 4-1-4
- Р.1.5 – 6-1-4
- Р.2.0 – 8-1-4
- Р.2.5 – 10-1-4
- Р.3.0 – 12-1-4
- Р.3.5 – 14-1-4
- Р.4.0
- Р.4.5
- Р.5.0
- Р.5.5
- Р.6.0
- Р.6.5
- Р. 7.0
- Р.7.5
- Р.8.0
- Р.0.5 – 4-2-4 / 6-3-4 / 8-4-4
Так, например, если счет в режиме 1 (Р.1.0/4-14) соответствует 4200об/м, то в режиме 2 (Р.1.5/6-1-4) количество об/м составит 2800; для режима Р.2.0 – 2100; для Р.2.5 – 1680 и т.д. С одним датчиком на валу выбирается режим Р.1.0 – 4-1-4. При использовании кварцевого резонатора на 4МГц результат измеренных тахометром показаний возрастает вдвое. Итак, всего 16 режимов, из которых первые 4 довольно часто бывают востребованными, остальные же из указанных являются достаточно редкими, не указанные – экзотическими и явно ни количество тактов, ни количество цилиндров, ни количество КЗ к этим режимам не отображены.
Что же касается явно указанных (цилиндры-КЗ-такт) режимов, то они могут быть использованы в прочих конфигурациях (так же, как и не отображенные режимы), где экспериментально выяснится или документально подтвердится совпадение количества оборотов в минуту с режимом счета. В случае, если указанный режим не соответствует реальному количеству оборотов, следует режим подобрать из прочих имеющихся, т. к. (еще раз отмечаю) конфигурация датчиков и ДВС на разных авто могут быть различными. Так, например, количество оборотов в минуту для ДВС в конфигурации 4-2-4, 6-3-4 и 8-4-4 (без учета прочих их особенностей) будут одинаковыми. Выбор пунктов меню осуществляется «по кругу» и МК начинает работать в выбранном режиме практически сразу после отпускания кнопки. Однократное нажатие кнопки — просмотр текущего режима. Двукратное нажатие — переход на следующий режим.
Тахометр собран на печатной плате, изображенной на рис.2
Рис.2 Печатная плата тахометра в сборе
Дисплей может быть применен любой 4-разрядный с общим анодом и располагается вне печатной платы. Для проверки и демонстрации работы платы тахометра на макетной плате был собран адаптер для однотипных (по цоколевке) достаточно популярных 0,36-, 0,56-дюймовых дисплеев. Адаптер стыкуется с разъемами, расположенными на плате тахометра, что может стать одним из способов расположения дисплея относительно платы (показано на рис. 3).
Рис.3 Вид платы с дисплеями
Предварительна настройка тахометра (перед встраиванием в панель авто, например) может быть выполнена с помощью встроенного генератора (что очень удобно) и подключенного внешнего осциллографа или частотомера. При подаче сигнала (кнопка S1) на вход тахометра, измеряется частота сигнала, сопоставляемая с показаниями на дисплее тахометра. Частота генератора выставляется при необходимости с помощью потенциометра PR1. Длительность импульсов на выходе формирователя необходимо установить в пределах 1,5-3мс для предотвращения сбоев счета при высоких оборотах коленчатого вала.
Выбор подходящего режима для конкретной конфигурации ДВС можно произвести по формуле: F=N*I/30*U*G, где F — частота Гц, U — тактность, G — число катушек зажигания, N — обороты в минуту, I — число цилиндров. Сопоставимые показаниям измерения показаны на рис.4.
Рис.4 Частота-об/м
При питания от бортовой сети автомобиля потребление прибора с четырех-разрядным светодиодным дисплеем 0,56″ ток потребления прибора, при указанных на схеме номиналах резисторов в цепи питания дисплея, не превышает 50мА. Погрешность показаний тахометра не превышает +/-50об/м.
Резисторы R15, R16 предназначены для альтернативной версии схемы формирователя и не используются в схеме.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
R1, R13, R19 | Резистор | 2.7 кОм | 2 | Поиск в магазине Отрон | В блокнот | |
R2, R23-R26, R28-R34 | Резистор | 1 кОм | 13 | Поиск в магазине Отрон | В блокнот | |
R3, R14, R17 | Резистор | 47 кОм | 3 | Поиск в магазине Отрон | В блокнот | |
R4 | Резистор | 33 кОм | 1 | Поиск в магазине Отрон | В блокнот | |
R5, R6, R8, R11, R18 | Резистор | 2. 2 кОм | 5 | Поиск в магазине Отрон | В блокнот | |
R7, R12 | Резистор | 5.1 кОм | 2 | Поиск в магазине Отрон | В блокнот | |
R9, R20 | Резистор | 6.8 кОм | 2 | Поиск в магазине Отрон | В блокнот | |
R21, R22 | Резистор | 10 кОм | 2 | Поиск в магазине Отрон | В блокнот | |
R15 | Резистор | 0 кОм | 1 | Поиск в магазине Отрон | В блокнот | |
R16 | Резистор | 51 кОм | 1 | Поиск в магазине Отрон | В блокнот | |
PR1, PR2 | Подстроечный резистор | 100k | 1 | Поиск в магазине Отрон | В блокнот | |
C1 | Конденсатор | 1мФ | 1 | Поиск в магазине Отрон | В блокнот | |
C2, C5, C6, C7, C8, C13 | Конденсатор | 0. 1мФ | 6 | Поиск в магазине Отрон | В блокнот | |
C3 | Конденсатор | 15 нФ | 1 | Поиск в магазине Отрон | В блокнот | |
C4 | Конденсатор | 1 нФ | 1 | Поиск в магазине Отрон | В блокнот | |
C9, C10 | Конденсатор | 39 пФ | 2 | Поиск в магазине Отрон | В блокнот | |
C11 | Электролитический конденсатор | 100мФ | 1 | Поиск в магазине Отрон | В блокнот | |
C12 | Электролитический конденсатор | 10мФ | 1 | Поиск в магазине Отрон | В блокнот | |
VZ1, VZ2 | Стабилитрон | 1N4735 | 2 | Поиск в магазине Отрон | В блокнот | |
VZ3 | Стабилитрон | 1N4743 | 1 | Поиск в магазине Отрон | В блокнот | |
VD2-VD4 | Выпрямительный диод | 1N4148 | 3 | Поиск в магазине Отрон | В блокнот | |
VD1 | Выпрямительный диод | 1N4007 | 1 | Поиск в магазине Отрон | В блокнот | |
VT1 | MOSFET-транзистор | 2N7002 | 1 | Поиск в магазине Отрон | В блокнот | |
VT2-VT4, VT6-VT10 | Биполярный транзистор | 2N5551 | 8 | Поиск в магазине Отрон | В блокнот | |
VT5 | Биполярный транзистор | 2SC5707 | 1 | Поиск в магазине Отрон | В блокнот | |
Y1 | кварцевый резонатор | 8МГц | 1 | Поиск в магазине Отрон | В блокнот | |
U1, U2 | Программируемый таймер и осциллятор | LM555 | 2 | Поиск в магазине Отрон | В блокнот | |
U3 | МК PIC 8-бит | PIC16F628A | 1 | Поиск в магазине Отрон | В блокнот | |
U4 | Микросхема | 78L05 | 1 | Поиск в магазине Отрон | В блокнот | |
Добавить все |
Скачать список элементов (PDF)
Теги:
- Тахометр
- ДВС
- Датчик Холла
- Коммутатор
- DipTrace
Автомобильный тахометр с ЖК дисплеем на PIC16F628
Описанный ниже автомобильный тахометр сочетает высокую точность показаний, присущую цифровым измерителям, с удобством считывания значений частоты вращения коленчатого вала двигателя по аналоговой шкале, наиболее оптимальной для бортового прибора.
Тахометр предназначен для установки в автомобили с четырехцилиндровым бензиновым двигателем и бесконтактной системой зажигания с датчиком Холла. Можно использовать прибор и для совместной работы с контактной системой зажигания, если изменить его входную цепь.
Тахометр отображает показания в двух видах — цифровом с разрешающей способностью 30 мин (точнее 29,8 мин) и в виде линейки вертикальных штрихов, причем ее длина изменяется пропорционально измеряемому значению. Число элементов в линейке — 32, что вполне достаточно для оценки значения параметра.
Схема устройства представлена на рис. 1. Основой прибора служит микроконтроллер DD1. В качестве дисплея использован русифицированный жидкокристаллический модуль HG1 с подсветкой. Если не удалось приобрести русифицированный индикатор, придется перейти для просмотра на английские эквиваленты слов.
Рисунок 1.
Напряжение питания стабилизировано микросхемным стабилизатором DA1. Узел VT1R5R6 — стабилизатор тока светодиодов подсветки дисплея, предотвращающий изменение яркости при изменении напряжения в бортсети автомобиля. Делитель напряжения R3R4 служит для установки желаемой контрастности изображения дисплея.
Импульсы зажигания от датчика Холла через диод VD3 поступают на вход RB0 микроконтроллера DD1, вызывая прерывание, по которому происходит считывание значения таймера TMR1, затем он обнуляется и начинает новый отсчет времени между импульсами. Чтобы преобразовать длительность t интервала между импульсами зажигания в частоту вращения, необходимо выполнить операцию деления по формуле:
N=K/t, где N — частота вращения коленчатого вала двигателя в мин-1; К — константа, зависящая от частоты счетных импульсов таймера TMR1 и числа цилиндров двигателя.
Однако даже при абсолютно стабильной частоте вращения коленчатого вала измеренная длительность интервала между импульсами датчика Холла не будет одинаковой. Это обусловлено точностью изготовления прорезей на цилиндре прерывателя, а также дискретностью времени реакции на импульсы. Чтобы повысить точность измерений и уменьшить мерцание показаний тахометра, вызванное этими причинами, предусмотрено усреднение расчетов за каждые четыре импульса зажигания, т. е. за два полных оборота коленчатого вала.
После окончательного расчета частоты вращения вала показания выводятся на дисплей в первой строке. Чтобы исключить переполнение таймера TMR1. при частоте вращения менее 450 мин-1 расчет и отображение запрещаются. Затем происходит расчет длины линейки, изображающей измеренное значение в квазианалоговом виде. «Нуль» шкалы линейки установлен на частоте вращения вала 750 мин-1, а конец шкалы соответствует частоте 5720 мин-1.
Следует заметить, что разрешающая способность прибора не остается постоянной, изменяясь в небольших пределах, в зависимости от времени определения момента прерывания относительно реального момента импульса зажигания. Для того чтобы исключить постоянное мелькание последней цифры на табло, программно установлено ее равенство нулю, что соответствует незначительной дополнительной погрешности измерения.
В тахометр введена дополнительная функция — отображение положения воздушной заслонки карбюратора. Часто забывают утопить кнопку этой заслонки после того, как двигатель уже прогрет и дальнейшая работа двигателя с неполностью открытой заслонкой приводит к переобогащению горючей смеси и повышенному расходу бензина.
Для выполнения этой функции на карбюратор необходимо установить микропереключатель, размыкающий свои контакты при полном открывании воздушной заслонки. Один из контактов должен быть соединен с корпусом автомобиля, а второй — подключен к входу «Заслонка». Поскольку карбюраторы могут быть разными, конструкция этого узла опущена.
Пока контакты микропереключателя замкнуты, в первой строке дисплея с секундным интервалом попеременно меняются надписи «ТАХОМЕТР» и «ЗАСЛОНКА», показания же тахометра присутствуют постоянно. И только когда воздушная заслонка открыта полностью, надпись «ЗАСЛОНКА» не появляется.
Устройство собрано на печатной плате из фольгированного стеклотекстолита толщиной 1,5 мм. ЖК модуль размещен на плате со стороны печати (по ширине и длине плата и модуль одинаковы), все остальные детали — на обратной. Плата в корпусе установлена на четырех резьбовых (М2,5) стойках. Модуль прикреплен к тем же стойкам через четыре втулки—проставки высотой 5 мм и подключен к плате тонкими гибкими проводниками. Разъем Х1 для соединения тахометра с внешними цепями — любой малогабаритный четырехконтактный, он подключен к плате отрезками монтажного провода. Все резисторы в тахометре — МЛТ. Конденсаторы С1, С7 — К50-16; остальные — любого типа, например КМ-6. Диоды и транзистор — указанных типов с любым буквенным индексом.
Корпус склеен из прозрачного листового полистирола толщиной около 1 мм (в качестве заготовки использован футляр от компакт-диска) и окрашен нитрокраской в аэрозольной упаковке. Окно под дисплей перед окраской заклеивают отрезком липкой ленты.
Корпус выполняют с таким расчетом и монтируют прибор в автомобиле так, чтобы плоскость индикатора была слегка наклонена назад от положения, поперечного взгляду, — при этом контрастность изображения на табло максимальна. Поэтому тахометр удобно разместить над приборной панелью, у лобового стекла. В этом случае, кстати, если повернуть прибор дисплеем к стеклу, будет удобно, работая в моторном отсеке, следить за частотой вращения вала двигателя.
Тем же, кто захочет установить тахометр непосредственно на панели приборов, на месте одной из заглушек, во-первых, изготовлять корпус не потребуется, а во-вторых, дисплей придется приобрести другой — AC162AYILY-H, той же фирмы Atmel. В паспорте этого дисплея угол обзора обозначен как «12 часов» (для АС162AYJLY-H — «6 часов»), что указывает на максимум контрастности при взгляде сверху.
Кроме указанных, подойдут и подобные модули, выпускаемые другими фирмами, интерфейс этих индикаторов аналогичен. Если подсветка дисплея не нужна или приобретенный прибор ее не имеет, транзистор VT1 и резисторы R5 и R6 можно исключить.
При монтаже тахометра в автомобиле контакт «Вход» разъема Х1 необходимо соединить непосредственно со средним выводом разъема прерывателя экранированным проводом, оплетку которого подключают только с одной стороны к контакту «Общий» разъема Х1 прибора. Если индикация положения воздушной заслонки не нужна, контакт «Заслонка» разъема оставляют свободным. Питание на устройство подают от той цепи автомобиля, где напряжение появляется при включении зажигания.
Для установки оптимального уровня контрастности изображения дисплея удобнее всего временно заменить делитель напряжения R3R4 переменным или подстроечным резистором сопротивлением 10 кОм. Установив этим резистором требуемую контрастность, его отпаивают, измеряют сопротивление плеч и впаивают в плату постоянные резисторы ближайших к измеренным значениям номиналов. В ряде случаев бывает достаточным соединение вывода 3 дисплея с общим проводом.
Автор: В. ТРОШКОВ, г. Новосибирск
Архив для статьи «Автомобильный тахометр с ЖК дисплеем на PIC16F628» | |
Описание: Исходный код(Ассемблер), файл прошивки микроконтроллера | |
Размер файла: 7. 98 KB Количество загрузок: 1 743 | Скачать |
Понравилась статья? Поделиться с друзьями:
PIC16F628 | Хакадей
30 апреля 2019 г., Левин Дэй
eBay — чудесная земля, полная памятных вещей из «Звездных войн» в плохом состоянии, старых игровых консолей с безумными наценками и удивительного количества самодельной электроники. [TheHWCave] обнаружил, что возится с обычным комплектом частотомера, и решил сделать несколько улучшений выбора по пути (ссылка на YouTube, встроенная ниже).
Частотомер, о котором идет речь, является обычной клонированной версией минималистского дизайна PIC [Вольфганга «Волка» Бюшера]. Используя немного больше, чем PIC16F628 и несколько семисегментных дисплеев, это компетентный частотомер для общего использования. Версии-клоны часто добавляют тестер кварцевого генератора и доступны на eBay по довольно низкой цене.
[TheHWCave] обнаружил, что модификации были менее чем полезными, и вместо этого разработал способ превратить компоненты тестера в более полезный сигнальный предусилитель. Не останавливаясь на достигнутом, была разработана специальная прошивка для улучшения разрешения и добавления функции тахометра. Это позволяет устройству отображать свою производительность в оборотах в минуту, а не просто отображать в герцах. В сочетании с оптическим датчиком или другим сигналом оборотов получается удобный дисплей для скорости вращения. Если вы не знакомы с теорией, прочитайте наш учебник по фототахометру. Если вы хотите изменить свой собственный комплект, модифицированная прошивка доступна на Github.
Мы уже видели, как модифицировались другие специальные комплекты eBay. Дешевизна и использование обычных микроконтроллеров делает их подходящей платформой для хакерских атак, независимо от того, хотите ли вы просто внести несколько изменений или полностью перепрофилировать устройство.
[Спасибо Acesoft за подсказку!]
Продолжить чтение «Взлом дешевого частотомера EBay» →
Posted in classic hacksTagged прошивка, частотомер, фото тахометр, фототахометр, рис, PIC16F628, тахометр9 февраля 2014 г. Марш
Ваш дверной звонок недостаточно волнует ваших гостей? [Джо] хотел немного развлечь своих посетителей, поэтому он изменил дизайн своего дверного звонка на тему Марио.
Всякий раз, когда кто-то нажимает кнопку с изображением монеты Марио, сегмент дисплея увеличивается, и воспроизводится звук монеты Марио. Чтобы добавить разнообразия, звук увеличения жизни воспроизводится через каждые 10 монет, а звук улучшения гриба воспроизводится при достижении 100. [Джо] пытался поместить звук увеличения жизни на соответствующее место сотен, а звук гриба — на каждые 10, но он решил краткость жизни была более терпимой в 10-м слоте.
Проект был разделен на две части. Дверная кнопка имеет микроконтроллер PIC16F628A с двойным 7-сегментным светодиодным дисплеем, кнопку и самодельную печатную плату. Все это находится в простой коробке, покрытой тематической наклейкой Yoshi’s Island-. Плата кнопки подключается к отдельной плате звонка, основанной на PIC16F87, с ЦАП MCP4822 и EEPROM 25LC1024. Нажатие кнопки на первой плате вызывает запрос на чтение звукового клипа из EEPROM. Продолжайте нажимать демонстрационное видео ниже.
Продолжить чтение «Дверной звонок Марио гарантированно сведет вас с ума» →
Posted in МикроконтроллерыTagged 7 сегмент, Марио, дверной звонок, PIC16F62830 сентября 2008 г. Джейсон Роллетт
Эта сложная светодиодная матрица PICBASIC была разработана [Оливье де Броквилем] для управления матрицей светодиодов. Используя несколько дешевых транзисторов, обычные красные светодиоды и PIC16F628, он может управлять светодиодной матрицей 6×6. Этот проект очень хорошо документирован и имеет все необходимое, включая: макеты печатных плат, схемы, исходный код PICBASIC, программу компьютерного интерфейса VB и список деталей.
Posted in Разное Хаки, НовостиTagged светодиодная матрица, микроконтроллер, рис, PIC16F628, PICBASIC, сложная светодиодная матрица PICBASICОписание ПО тахометра
Так работает прошивка тахометра.
Измеряется период оборота, который используется для расчета оборотов в минуту.
PIC16F628A (и другие PIC) имеют очень полезный встроенный 16-битный счетчик/таймер (TMR1), значение которого можно зафиксировать. Его можно настроить для работы несколькими различными способами, но здесь он используется именно так. Он используется в качестве автономного счетчика, который увеличивается каждые 0,4 мкс. Его значение фиксируется каждый раз, когда на CCP1 поступает входной импульс от датчика. 16-битный счетчик недостаточно велик для наших требований, поэтому в программном обеспечении он расширен до 32-битного. Каждый раз, когда 16-битный счетчик переполняется, генерируется прерывание. Это прерывание увеличивает значение 16-битного программного счетчика. Когда от датчика поступает входной импульс, значение этого 16-битного счетчика также фиксируется. В результате значение 32-битного счетчика фиксируется каждый раз при получении входного импульса. Вычисляется разница между последним захваченным значением и текущим захваченным значением. Это используется для расчета количества импульсов, полученных за одну минуту. (об/мин) Это делается путем деления этого числа на количество 0,4 мкс за одну минуту. 60 *1000000/0,4 = 150000000
Возможна ситуация, если входной импульс от датчика поступает практически одновременно с переполнением TMR1. Мы не знаем, было ли значение TMR1 зафиксировано непосредственно перед или сразу после его увеличения. Код, работающий с прерываниями CCP1, проверяет, не произошло ли также прерывание переполнения TMR1. Если это так, он проверяет старший бит захваченного значения TMR1. Если он установлен, то захват произошел непосредственно перед переполнением TMR1. Если он чистый, то увеличивается захваченное значение верхних 16 битов 32-битного счетчика количества импульсов 0,4 мкс.
Эта простая система хорошо зарекомендовала себя на стенде при проверке тахометра с помощью генератора сигналов. При установке на сверлильный станок наблюдалось некоторое дрожание показаний из-за вибрации ремня и люфта шкива, на котором был отражающий маркер.
Я решил усреднить период оборота по нескольким оборотам, если скорость достаточно высока, чтобы это можно было сделать без чрезмерно длительного времени обновления. Я решил, что время обновления 0,5 секунды будет правильным. (За исключением случаев, когда один оборот занимает более 0,5 секунды.) Назовем начало измерения T0. От T0 мы подсчитываем количество импульсов от датчика, а также измеряем время, прошедшее с момента T0.
При каждом входном импульсе время, прошедшее от T0, сравнивается с 0,5 секунды. Если значение больше 0,5 секунды, выполняются расчеты. Время, прошедшее с момента T0, делится на количество входных импульсов с момента T0. Это дает средний период одного оборота. Расчет скорости выполняется с использованием этого среднего значения. Хотя тест проводится для значения 0,5 секунды, импульс, возникающий непосредственно перед 0,5 секундами, будет означать, что следующий импульс будет примерно через 1 секунду от T0, поэтому в этом случае время обновления будет почти 1 секундой.