Спидометр на atmega8 схема

Обновлено: 17.05.2024

Тахометр состоит из двух частей — основной платы и датчика оборотов. Электрическая схема контроллера показана на рисунке ниже. Работой тахометра управляет микроконтроллер ATmega8 , работающий от внутреннего генератора с частотой 1 МГц. Это настройка ATmega8 по умолчанию, поэтому нет необходимости изменять фьюзы.

Питание схемы осуществляется от источника питания с постоянным напряжением 8…12 В. Стабилизатор напряжение DA1 (78l05) обеспечивает 5 В, а конденсаторы C2…C5 фильтруют линию питания.

Сигнал от датчика, возникающий в результате реакции фототранзистора на отраженный свет светодиода, подается на вход внешнего прерывания INT0 микроконтроллера (вывод 4).

Программное обеспечение использует TIMER1 для генерации прерываний каждую секунду. Число оборотов подсчитывается с помощью прерывания INT0 между каждым прерыванием TIMER1. Таким образом, на дисплее (16×2) отображается результат измерения в оборотах в секунду (RPS), а результат в оборотах в минуту (RPM) вычисляется путем умножения показаний RPS на 60.

Внимание! Перед тем как создавать тему на форуме, воспользуйтесь поиском! Пользователь создавший тему, которая уже была, будет немедленно забанен! Читайте правила названия тем. Пользователи создавшие тему с непонятными заголовками, к примеру: "Помогите, Схема, Резистор, Хелп и т.п." также будут заблокированны навсегда. Пользователь создавший тему не по разделу форума будет немедленно забанен! Уважайте форум, и вас также будут уважать!

Хочу полностью переделать штатную панель. В сети полно схем простых спидометров. Без одометра будет тяжко определять очередной срок замены масла и прочих расходников. Это первое. И второе это то что мне нужно чтобы можно было подстроится под свой датчик скорости. Ко-во импульсов пока не знаю, еще не считал. Приборка грузового авто.

Может гуглить не одометр, а компьютер. Их много на разных контроллерах и с разными экранами народ наклепал.

Скептицизм – первый шаг к истине. /Дидро/
Несовершенство аппаратуры основа изящных алгоритмов . /Мстислав Келдыш /

Я хочу на больших LED-индикаторах (CPD-15011), а БК все в основном 16х2 или дисплей от сименса.
Сейчас вот нашлась одна схема. Сижу исходник изучаю, смогу ли я его одолеть.

Не хотел создавать тему, спрошу здесь. Парни, мне надо тахометр и счётчик моточасов, желательно на один индикатор (7-ми сегм. или 0802), с возможностью переключения вида. На форуме ничего не нашёл, в гугле только продажи готового. Если кто знает киньте ссылку на подобное устройство.

Сколько импульсов/оборот дает датчик тахометра? Счетчик времени считает пока есть импульсы с датчика тахометра? Если устроит схема ниже, программу напишу.

Присоединённое изображение


Присоединённое изображение (Нажмите для увеличения)

Было бы не плохо если можно будет выбирать 0,5-1-2 имп. на оборот. Одновременно отображать два параметра не надо, моточасы желательно активировать просмотр через кнопочку, поэтому индикатор 1602 немного излишен. Спасибо.

Вот в первом приближении. Индикатор общий катод. Кварц 8МГц.

Присоединённый файл ( Кол-во скачиваний: 217 )
TAHOM_SVN.zip

image

QUOTE (Valter71 @ Mar 17 2016, 03:53 PM)
Какие фуз биты? Какое разрешение таха? Ресет в воздухе?

Нашёл пару ошибок, поэтому второе приближение

Присоединённый файл ( Кол-во скачиваний: 168 )
TAHOM_SVN.zip

Если понадобиться сбросить наработку надо будет перешить еер?
Скрин фузов есть? В разных оболочках они инверсные, пользую кодэ вижен. Не хотелось бы залочить камень.

QUOTE (Valter71 @ Mar 18 2016, 09:51 AM)
Если понадобиться сбросить наработку надо будет перешить еер?
Скрин фузов есть? В разных оболочках они инверсные, пользую кодэ вижен. Не хотелось бы залочить камень.


Да, для сброса наработки нужно перешить eeprom.
Не пользуюсь этой оболочкой. Проще будет выложить скрин прочитанных FUSE с ATtiny2313.

Счетчик наработки+тахометр с индикатором HD44780 8 символов 2 строки.

Присоединённый файл ( Кол-во скачиваний: 204 )
TAHOM_SVN_HD44780.zip

QUOTE (akl @ Mar 17 2016, 12:04 PM)
Вот в первом приближении. Индикатор общий катод. Кварц 8МГц.

Под общий анод возможно прошивку изменить? Если можно выложите скрин фузов вашей оболочки.

FUSE для понипрог
Программу под общий анод сделаю.

Присоединённое изображение

Присоединённое изображение

Ок, жду. Вопрос по разрядам. Нулевой это левая цифра, пятый правая? Буду использовать четырёх разрядный (мне 9999 хватит), значит надо подключать 2-5? Правильно?

PD5 - 10^0 это единицы часов наработки/оборотов в минуту
PD4 - 10^1 это десятки часов наработки/оборотов в минуту
PD0 - 10^2 это сотни часов наработки/оборотов в минуту
PD1 - 10^1 это тысячи часов наработки/оборотов в минуту

Собрал на макетке. Нашёл с ОК. При включении зажигается ноль в четвёртом разряде и через пару секунд начинаются хаотичные показания на всех разрядах.
Никогда не встречал такую "пустую" конфигурацию фузов. Только эсэйв?
Вот по умолчанию с нового камня. Укажите явно какие выставить.

Присоединённое изображение

Присоединённое изображение

FUSE биты в этой оболочке, по мне, должны быть установлены так.

Присоединённое изображение

Присоединённое изображение

Второе приближение с ОК. Если соединить лапы PD6/11 и PD3/7 тахометр должен показывать 4000 об/мин при 2 имп/оборот; 8000 об/мин при 1 имп/оборот; 16000 об/мин при 0,5 имп/оборот;

Присоединённый файл ( Кол-во скачиваний: 150 )
TAHOM_SVN.zip

Перезалил, правда код вижен ругнулся на эпром. При соединении 11 и 7 выводов показывает 8000. На кварц и минус повесил два конденсатора по 27 пик.
Подключил оптический датчик, меряет как надо. Надо бы увеличить время обновления, слишком мельтешат цыфры. Порадовало разрешение, в сети встречал конструкции с разрешением 50 и максимум 10 оборотов. Спасибо

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

Присоединённое изображение

Присоединённое изображение (Нажмите для увеличения)

Схема датчика. Можно вместо фотодиода установить фототранзистор, только эмиттером на минус. Переменником на втором выводе лм331 устанавливается чувствительность к отражающей поверхности.
Пардон, схему в проге рисовать влом.

Присоединённое изображение

Присоединённое изображение

Макетка. Частотомером меряю и умножаю на 60, всё сходится.

Присоединённое изображение

Присоединённое изображение

QUOTE (Valter71 @ Mar 24 2016, 01:58 PM)
. Надо бы увеличить время обновления, слишком мельтешат цыфры.

Третье приближение с ОК. Ввел усреднение.

Присоединённый файл ( Кол-во скачиваний: 183 )
TAHOM_SVN_LED_CC.zip

Попробую. Уже оформил. Датчик в колпачке от маркера.

Присоединённое изображение

Присоединённое изображение (Нажмите для увеличения)

Считает. Но конкретно это конструкция заточена как тахометр. На дизель генератор буду делать в другом конструктиве. Там вибрация и прочие вредности.

Подписаться на тему
Уведомление на e-mail об ответах в тему, во время Вашего отсутствия на форуме.

Тахометр-стробоскоп на Atmega8

Данное устройство предназначено для измерения частоты вращения электродвигателей и главным преимуществом является бесконтактный метод измерения, основанный на стробоскопическом эффекте, где яркие световые импульсы производит светодиод высокой мощности. Для измерения необходимо установить частоту вспышек в соответствии с частотой вращения (при освещении стробоскопом объект кажется неподвижным), используя энкодер. Измерение может быть сделано без остановки вращающегося механизма. Тахометр построен на микроконтроллере ATmega8, а результат измерения отображается на ЖК-дисплее. Кроме того, система также показывает ошибку, которая появляется в результате некоторых временных процессов в программе. Управление осуществляется с помощью поворотного энкодера и небольшой клавиатуры. Все устройство может питаться от батарей, так как из-за импульсного характера генерации потребление энергии является незначительным. Весь прибор успешно уместился в популярном корпусе KM35, где также есть место для 9В батареи.

Схема устройства

Сборка

Прибор может быть успешно построен на основе печатной платы, которая доступна в архиве внизу страницы. Также доступа плата в зеркальном отображении. Плата проста в сборке, но включает в себя компоненты для пайки SMD, которые могут вызвать проблемы для начинающих радиолюбителей. Сборка должна быть начата с пайки двух перемычек. Далее должны быть установлены SMD конденсаторы и резисторы, они используются в популярных корпусах 0805(2x1.2mm). Далее, припаивается на место микроконтроллер U1, обратите внимание на правильность установки ключа. Кнопки должны иметь длину 15 мм и слегка выступать над ЖК дисплеем, это будет важно при установке платы в корпус. Точно так же и в случае с энкодером. Потенциометр Р1 установлен таким образом, чтобы его можно было регулировать через отверстие в боковой стенке корпуса. Плата разработана таким образом, что она легко помещается в популярном корпусе KM35.

После того как был написан первоначальный вариант кода и произведен расчет таймера делителя, измерения показали отклонение частоты генерируемых вспышек по отношению к теоретическим расчетам. Эта погрешность появляется из-за работы делителя таймера, равного 1, времени, которое необходимо для обслуживания прерывания, а иногда из-за перезагрузки значения таймера в регистрах. В приведенной ниже таблице, включены измерения частот, генерируемых на выходе (F_p) по отношению к частоте, которая должна быть теоретически (f_i) и соответствующие значения оборотов (умножаются на 10, чтобы получить точность установки в 0,1 об/мин).

Данные из таблицы делятся на два диапазона, первый от 60 до 480 об/мин и второй диапазон 480-42000 об/мин. Это разделение результат программы, в которой работают два диапазона измерения. Графики ниже показывают зависимость измеренных и теоретических данных:

В качестве калибровочной кривой была принята квадратичная зависимость:

y = a \cdot x^2 + b \cdot x +c

где у - обороты теоретические, х - измеренные обороты, а, b, c - коэффициенты в результате регрессии. Графики были выполнены в программе Gnuplot, и поправочные коэффициенты постоянные для двух областей работы системы представлены ниже:

После вставки параметров устройство становится измерителем, а не только индикатором оборотов. В таблице ниже приведены результаты измерений частот генерируемых прибором в зависимости от набора на дисплее. Частота генерируется с ошибкой, равной доли процента от желаемого:

В этой статье мы рассмотрим создание спидометра на основе платы Arduino, способного измерять скорость движения велосипеда или любого другого транспортного средства и передавать значение этой скорости с помощью технологии Bluetooth на Android приложение на смартфоне. Приложение на Android мы разработали с использованием программной среды Processing. Устройство питается от литиевой батарейки (аккумулятора) 18650, поэтому легко устанавливается и транспортируется на любом движущемся средстве. Также в качестве бонуса в данное мобильное приложение мы добавили функцию зарядки мобильного телефона. Поэтому данное устройство также можно использовать как внешний аккумулятор (power bank) для вашего мобильного телефона во время движения транспортного средства поскольку 18650 имеет высокую плотность заряда и его можно легко заряжать и разряжать.

Внешний вид спидометра на основе платы Arduino

В статье вы найдете готовый APK файл для мобильного приложения на Android если вам неинтересно заниматься этими вопросами и вы хотите сосредоточиться только на той части нашего проекта, которая относится к работе с платой Arduino. Но также будет представлен и исходный код этого приложения который вы при желании можете доработать и подстроить под себя. В конце статьи приведено видео, поясняющее все описанные в статье процессы.

Необходимые компоненты

Аппаратное обеспечение

  1. Плата Arduino Pro Mini (5V 16MHz) (купить на AliExpress).
  2. FTDI плата (также для программирования Arduino Pro Mini можно использовать плату Arduino UNO).
  3. Повышающий конвертер с 3V до 5V (DC-DC) с выходом для USB зарядки.
  4. Модуль заряда литиевой батареи (аккумулятора) TP4056 (купить на AliExpress).
  5. Bluetooth модуль (HC-05/HC-06) (купить на AliExpress).
  6. Датчик Холла (Hall effect sensor) US1881/04E (купить на AliExpress).
  7. Литиевая батарея (аккумулятор) 18650 (купить на AliExpress).
  8. Небольшой кусок магнита.
  9. Перфорированная плата (Perf Board).
  10. Соединительные колодки (папа и мама).
  11. Набор для пайки.
  12. Небольшая закрытая коробка чтобы разместить в ней наше устройство

Программное обеспечение

Arduino IDE
Processing IDE с android ADK (только если вы самостоятельно хотите разрабатывать мобильное приложение для этого проекта)
Windows/Mac PC
Мобильный телефон (смартфон) на Android

Принцип измерения скорости с использованием датчика Холла и платы Arduino

Измерять скорость движущегося транспортного средства с помощью платы Arduino можно различными способами, однако использование датчика Холла является самым простым и экономным способом сделать это. Датчик Холла – это устройство, способное определять полярность магнита. Если один из концов магнита поместить рядом с датчиком Холла, то датчик изменит свое состояние. Существует много различных исполнений этого датчика, но при его покупке помните о том, что для нашего проекта нужен цифровой датчик Холла.

Для работы нашего устройства необходимо прикрепить небольшой кусок магнита на колесо нашего транспортного средства. При этом всегда когда магнит будет пересекать (находиться рядом) датчик Холла, датчик будет обнаруживать это и передавать соответствующую информацию на плату Arduino.

Каждый раз, когда рядом с датчиком Холла будет обнаруживаться магнит будет генерироваться прерывание в плате Arduino. В нашем проекте мы будем использовать непрерывный таймер на основе функции millis() и вычислять время необходимое для совершения колесом двух полных оборотов (для минимизации ошибки) с помощью следующей формулы:

Timetaken = millis() – pevtime;

Поскольку мы теперь знаем это время мы можем рассчитать число оборотов в минуту (rpm, rotations/revolutions per minute) по следующей формуле:

rpm = (1000/timetaken) * 60;

где 1000/timetaken – это число оборотов в секунду (rps, Revolutions per second), мы его умножаем на 60 чтобы конвертировать число оборотов в секунду в число оборотов в минуту (rpm).

После определения числа оборотов в минуту и зная радиус колеса мы можем рассчитать скорость транспортного средства по следующей формуле:

v= radius_of_wheel * rpm * 0.37699;

После расчета скорости Arduino передает ее значение к нам на смартфон при помощи Bluetooth модуля.

Работа схемы

Схема устройства представлена на следующем рисунке.

Как можно видеть, схема состоит из двух частей – основная плата, которая содержит все основные компоненты, и дополнительная плата, которая содержит датчик Холла и резистор и монтируется рядом с колесом. Сначала давайте изучим основную плату.

Последовательность сборки главной платы спидометра на основе Arduino

Вид основной платы спидометра с подключенными соединительными проводами

Когда все соединения на ней сделаны ее можно протестировать с использованием литиевой батареи (аккумулятора) 18650. По своей сущности литиевые батареи в некоторой степени взрывоопасны, поэтому их следует устанавливать, соблюдая меры предосторожности. По этой причине мы и используем в нашем проекте модуль заряда литиевых аккумуляторов TP4056, который обеспечивает защиту при заряде и разряде аккумулятора, а также защиту от смены полярности. Поэтому теперь наш аккумулятор можно будет без проблем заряжать с использованием обычной micro USB зарядки и безопасно разряжать. Некоторые важные характеристики модуля TP4056 приведены в следующей таблице.

Параметр Значение (на одну ячейку)
Under Voltage cut-off 2.4V
Over voltage Cut-off 4.2V
Ток заряда 1A
Защита от превышения напряжения и смены полярности
Микросхемы TP4056 (charger IC) и DW01 Protection IC
Светодиодные индикаторы красный - идет заряд, зеленый - зарядка окончена

Теперь займемся платой с датчиком Холла, которая будет содержать всего два компонента – сам датчик Холла и резистор на 10 кОм. Соединения на ней показаны на схеме устройства, приведенной выше. После подключения к ней соединительных проводов мы должны получить примерный вид устройства, показанный на следующем рисунке:

Внешний вид платы с датчиком Холла для спидометра

Следующий ключевой шаг в сборке нашего проекта – это соединение аккумулятора 18650 к контактам B+ и B- модуля TP4056 с использованием провода. Поскольку литиевые аккумуляторы взрывоопасны, то крайне не рекомендуется использовать здесь паяное соединение. Хотя ряд радиолюбителей все же делают это, помните о том, что в этом случае вы подвергаете ваше устройство риску повреждения. Простой способ преодолеть это – использовать магниты как показано на следующем рисунке.

Правильное подключение соединительных проводов к литиевому аккумулятору

Просто припаяйте провод к небольшому куску магнита и затем прикрепите эти магниты к выводам аккумулятора как показано на рисунке – они будут держаться очень хорошо. Но также можно дополнительно использовать какую-нибудь ленту для укрепления этих соединений, то есть фиксации позиции магнитов.

Программирование Arduino

Программа для этого проекта крайне проста. Нам всего лишь будет нужно рассчитывать скорость вращения колеса и передавать ее на смартфон с помощью технологии Bluetooth. Полный текст программы с необходимыми комментариями приведен в конце статьи.

Каждый раз когда датчик Холла обнаруживает вблизи себя магнит, он генерирует прерывание. Функция magnet_detect() будет вызываться для обработки этого прерывания. В этой функции производится расчет числа оборотов колеса в минуту.

Когда число оборотов колеса в минуту известно в функции loop () можно вычислить скорость движения транспортного средства.

Мобильное приложение на Android для работы спидометра

Если вы не хотите писать собственное Android приложение для работы спидометра, то вы можете скачать и установить уже готовое приложение. Для этого необходимо выполнить следующие шаги:

  1. Скачайте APK file приложения по следующей ссылке - Android Application for Speedometer. Работает для версии Android 4.4.2 и выше. Извлеките APK файл из zip файла.
  2. Передайте этот .Apk файл с компьютера на ваш смартфон.
  3. Разрешите установку приложения из неизвестного источника в настройках вашего смартфона.
  4. Установите приложение.

Если установка приложения прошла успешно, то вы на экране своего смартфона увидите установленное приложение под именем “Processing_code” как показано на следующем рисунке:

Разработка своего собственного Android приложения для работы спидометра

Данная программа для Android устанавливает соединение с Bluetooth модулем, подключенном к плате Arduino и затем принимает передаваемые платой Arduino значения скорости транспортного средства. Программа рисует небольшой график скорости. Но если вам не нравится наш интерфейс приложения, то вы можете кастомизировать его под собственные нужды используя его скачанный по выше приведенной ссылке исходный код.

Также можете посмотреть другие проекты на нашем сайте, использующие программы, написанные в программной среде Processing:
- игра в Ping Pong с помощью Arduino;
- радар на Arduino, управляемый с помощью мобильного приложения.

Установка спидометра на транспортное средство

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


Установка платы с датчиком Холла на колесе

Мы использовали 3D принтер для изготовления всех необходимых коробочек и креплений, поэтому мы не были ограничены в дизайне этих вещей. Если у вас нет доступа к 3D принтеру пропустите эту часть статьи и используйте свою собственную фантазию для закрепления спидометра на вашем транспортном средстве.

Если у вас есть доступ к 3D принтеру и вы хотите использовать наши файлы для работы 3D принтера, то убедитесь что размеры вашей платы примерно такие же, как и у нас на приведенном рисунке.

Необходимые размеры перфорированной платы

Полный комплект файлов дизайна и STL файлов для 3D печати можно скачать по следующей ссылке. Если размеры вашей платы совпадают с нашими то вы можете использовать скачанные STL файлы для печати корпусов устройства. Если же размеры не совпадают, то вы можете самостоятельно их подкорректировать, используя скачанные файлы.

Сначала напечатайте на 3D принтере корпус для нашей вспомогательной платы, содержащей датчик Холла и резистор, и разместите их на вашем транспортном средстве как показано на следующих рисунках.

Корпус для платы с датчиком Холла
Установка платы с датчиком Холла на колесе

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

Внешний вид основной платы спидометра в сборе

3D модель основной платы спидометра

Теперь можно приступать к дизайну корпуса для нашей основной платы. Мы разбили дизайн этого корпуса на два файла, на одной части будет смонтирована вся электроника, а вторая будет неподвижно закреплена на велосипеде с помощью гаек и болтов. Эти две части в любой момент можно будет легко соединять и разъединять. После размещения в корпусе электроники мы получим следующий вид нашего устройства:


Размещенная основная плата спидометра в корпусе

Как вы можете видеть, в передней части корпуса имеются два отверстия. Одно будет использоваться для вывода USB, через который мы будем заряжать наш мобильный телефон. А второе будет использоваться для micro USB, через которое мы сможем заряжать наш литиевый аккумулятор.

После этого печатаем вторую часть корпуса для главной платы и проверяем насколько хорошо они стыкуются друг с другом.



Если вы удовлетворены качеством стыковки этих двух частей, то вы можете установить неподвижную часть корпуса на велосипед.

Приспособления для крепления основной платы
Крепление неподвижной части корпуса основной платы спидометра

Теперь подсоединяем аккумулятор к нашему устройству. Желательно замотать его в герметичную ленту чтобы обеспечить целостность соединений.

Обматываем аккумулятор герметичной лентой

Располагаем аккумулятор внутри корпуса

Теперь наше устройство готово к окончательному монтажу. Просто соедините модуль датчика Холла с основной платой и устройство будет готово к работе.

Внешний вид установленного спидометра на велосипеде
Соединение основной платы с дополнительной

Исходный код программы

Если ваша литиевая батарея заряжена, то можете включить устройство с помощью переключателя, показанного на рисунках, и запустить Android приложение. Если все нормально, то вы должны увидеть на экране смартфона картинку, показанную на следующем рисунке. Перед тем как запускать приложение удостоверьтесь в наличии связи между Bluetooth модулем и вашим смартфоном.

Теперь немного проведите ваш велосипед и вы увидите как спидометр показывает вашу текущую скорость. Вы также можете заряжать свой мобильный телефон во время движения используя обычный кабель для зарядки телефона. После того как вы закончили поездку вы можете снять коробку с устройством с велосипеда и зарядить находящийся в ней литиевый аккумулятор используя зарядное устройство от мобильного телефона.

То есть с помощью созданного устройства вы не только сможете измерять скорость вашего транспортного средства, но и одновременно с этим заряжать от него ваш мобильный телефон.

Читайте также: