Автомобильный тахометр на микроконтроллере
|
| ||||||||||
КП - УлГТУ - 20010365 - 09/640 - 12 | ||||||||||
Изм. |
Лист |
№ докум. |
Подп. |
Дата | ||||||
Разраб. |
Рожков |
Автомобильный тахометр |
Лит |
Лист |
Листов | |||||
Пров. |
Грачева |
|||||||||
УлГТУ Пд-41 | ||||||||||
Н. контр. |
||||||||||
Утв. |
||||||||||
КП-УлГТУ-20010365-09/640-12 |
Лист | |||||
Изм. |
Лист |
№ докум. |
Подп. |
Дата | ||
Министерство образования и науки Российской Федерации
федеральное государственное
бюджетное образовательное
высшего профессионального образования
«УЛЬЯНОВСКИЙ
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
Кафедра "Измерительно-вычислительные комплексы"
Курсовой проект
по дисциплине
«Цифровые вычислительные устройства
и микропроцессоры приборных комплексов»
на тему
«Автомобильный тахометр»
Выполнил: студент гр. Пд-41
Рожков А.Ю.
Проверил: ст. преподаватель каф. ИВК
Грачева Н.О.
Ульяновск 2013
Министерство образования и науки Российской Федерации
федеральное государственное
бюджетное образовательное
высшего профессионального образования
«УЛЬЯНОВСКИЙ
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
Кафедра "Измерительно-вычислительные комплексы"
Задание на курсовой проект
по дисциплине "Цифровые вычислительные устройства и микропроцессоры приборных комплексов"
студенту группы Пд-41 Рожкову Артёму Юрьевичу
Тема: Автомобильный тахометр
Технические условия:
Автомобильный тахометр должен представлять собой функционально законченный блок, который устанавливается в салоне автомобиля.
Необходимо при разработке ориентироваться на автомобили с карбюраторным двигателем ВАЗ-2101-09. Автомобильный тахометр должен обеспечивать:
- Измерение и индикацию напряжения бортсети автомобиля.
- Измерение и индикацию оборотов двигателя.
- Измерение и индикацию температуры охлаждающей жидкости (можно двигателя).
Объем работы:
- Введение.
- Анализ возможных вариантов реализации устройства и выбор наиболее подходящего варианта.
- Разработка алгоритма функционирования устройства.
- Выбор элементов устройства, их технические характеристики.
- Разработка принципиальной схемы устройства.
- Разработка программы.
- Заключение.
Дата выдачи задания «01» октября 2012 г.
Срок выполнения «24» декабря 2012 г.
Руководитель:
ст. преподаватель каф ИВК Н.О. Грачева
Работу принял к исполнению:
студент гр. Пд-41 А.Ю. Рожков
РЕФЕРАТ
Автомобильный тахометр : Курсовой проект / Сост. А.Ю.Рожков – Ульяновск: УлГТУ, 2012. – с. 26, рис. 14, табл. 1, чертежей 2.
Ключевые слова: микроконтроллер, тахометр, автомобильный тахометр, цифровой тахометр, цифровой термометр, автомобильный вольтметр.
Цель работы: разработка многофункционального устройства на базе микроконтроллера. Данное устройство включает в себя тахометр для измерения оборотов двигателя, термометр для измерения температуры двигателя и вольтметр для измерения напряжения борт сети автомобиля. Вывод информации осуществляется на три LСD-дисплея.
Содержание работы: в работе выполнено построение структурной схемы, построение функциональной схемы, сформирован алгоритм работы системы, выбор элементной базы, оптимальной для реализации поставленных задач по диапазону характеристик, разработана программа, разработана принципиальная схема устройства.
Основные сокращения
АЦП – аналогово-цифровой преобразователь
МК – микроконтроллер
LCD – liquid crystal display (жидкокристаллический дисплей)
ЦВУ и МП – цифровые вычислительные
устройства и микропроцессоры
Содержание
Задание на курсовой проект
Реферат
Основные сокращения
Содержание
Введение
Аналитический обзор
Разработка структурной
схемы и алгоритма
Выбор элементов устройства,
их технические характеристики
Разработка принципиальной
схемы устройства
Разработка программного
обеспечения
Заключение
Список используемой литературы
Введение
В настоящее время в автомобилестроении происходит отход от традиционных стрелочных измерительных приборов в пользу цифровых. Преимущества их очевидны: они более компактны, более точны, удобны в использовании и позволяют объединить все измерительные устройства в измерительную систему с дальнейшим подключением к бортовому компьютеру. Задачей данной курсовой работы является проектирование мини-системы, позволяющей измерить количество оборотов двигателя автомобиля, температуру двигателя и напряжение бортсети и вывести эту информацию на экран. При проектировании я ориентировался на автомобили ВАЗ 2101-09, однако при незначительном модифицировании данную систему можно применять и на автомобилях других марок.
Главными задачами проектирования являются: обеспечение дешевизны устройства, простоты конструкции (один микроконтроллер на три датчика), лёгкость в настройке и эксплуатации.
- Аналитический обзор
- Выбор микроконтроллера
При разработке данной курсовой
работы первым вопросом, который необходимо
было решить, стал выбор микроконтроллера
– «сердца» проектируемого устройства.
Так как задачей проекта
- Выбор датчика для регистрации числа
оборотов двигателя
При выборе датчика для измерения числа оборотов двигателя были рассмотрены следующие варианты: механический, магнитный и электрический. Механический – наиболее «древний» вариант – был отброшен сразу же. Его принцип действия заключался в том, что на валу устанавливалась скользящая муфта с шарнирными рычагами, несущими на себе расходящиеся при вращении вала грузы, которые перемещают муфту по валу, преодолевая действие уравновешивающей пружины. Положение муфты на валу Т. соответствует частоте вращения вала и передаётся рычажной системой на стрелку указателя — отсчетного устройства, шкала которого отградуирована в об/мин. Этот вариант не подошёл ввиду чрезвычайной громоздкости и трудности преобразования механического перемещения в электрический сигнал.
Второй вариант
был более простым –
Третий вариант – электрический – был в результате принят. Суть его в следующем. На вращающийся вал устанавливался диск с отражателем света, а напротив отражателя располагался инфракрасный передатчик и приёмник. Очевидно, что чем выше была частота вращения, тем больше импульсов датчик посылал бы на микроконтроллер. Главными преимуществами этого метода измерения были бесконтактность и лёгкость обработки электрического сигнала.
Рисунок 1. Принцип работы инфракрасного датчик.
Как видно из принципиальной схемы, инфракрасный датчик имеет два входа (земля и питание +5V) и выход на микроконтроллер. Под действием протекающего тока светодиод LED1 испускает свет в инфракрасном диапазоне, который через отражатель, установленный на диске, улавливается фототранзистором Q1. Чем выше частота вращения, тем больше света поступает на фототранзистор и тем выше выходной сигнал.
Рисунок 2. Принципиальная
схема инфракрасного датчика.
1.3. Решение задачи измерения напряжения бортсети автомобиля
Поскольку значение напряжение бортсети само по себе является электрическим сигналом, то отдельного датчика для его измерения не требуется – его можно непосредственно подать на вход микроконтроллера. Правда, следует учитывать, что стандартные значения напряжения бортсети составляют порядка 9-14 V, тогда как микроконтроллер работает с напряжениями, не превышающими 5,5 V. Поэтому напряжение бортсети автомобиля перед подачей на вход микроконтроллера необходимо поделить на делителе, состоящем из двух резисторов, а вход МК защитить стабилитроном на случай возможных скачков:
Рис.3. Принципиальная схема снятия напряжения бортсети.
А искомое напряжение бортсети будет определяться по формуле:
VBattery = VADC, IN × (R1 + R2/R2) = 4.13×VADC, IN
где R1, R2 – номиналы резисторов делителя.
1.4. Выбор датчика температуры двигателя
В качестве датчика
2. Разработка структурной
схемы и алгоритма
2.1 Обоснование и выбор схемы РТУ
Для создания автомобильного тахометра, обеспечивающего условия технического задания, на основе проведенного анализа была выбрана схема реализации на микроконтроллере, представленная в пункте 1.1.
Выбор был сделан в пользу микроконтроллера AT89S52 потому, что при своей дешевизне относительно других вариантов, он имеет 32 порта ввода-вывода и встроенный АЦП.
- Структурная схема и алгоритм функционирования устройства
Структурная схема устройства приведена ниже на рисунке 4. Общий принцип работы устройства следующий: сигналы с трёх датчиков поступают на входы микроконтроллера, где преобразуются на АЦП в цифровые значения, которые затем передаются на семисегментные LCD-дисплеи.
Алгоритм работы устройства следующий. На вход микроконтроллера поступают прямоугольные импульсы, частота которых прямо пропорциональна частоте вращения вала двигателя, причём один импульс соответствует одному обороту. Самым простым решением было бы завести таймер на минуту, за это время считать импульсы с помощью счётчика, а по прерыванию по переполнению таймера выводить данные со счётчика на дисплей и обнулять счётчик. Однако такое решение не подходит, поскольку данные о количестве оборотов обновлялись бы раз в минуту, что, очевидно, слишком редко для оперативного управления автомобилем. Необходимо как-то на основании измерения за короткое время прогнозировать количество оборотов за целую минуту. Поэтому поступим следующим образом: установим таймер на одну пятую секунды (200 миллисекунд). Подсчитаем обороты за это время и занесём значение в первую переменную. Далее ещё дважды заведём таймер на такое же время и занесём соответствующее количество оборотов во вторую и третью переменную, а затем найдём среднее значение трёх переменных, которое будет довольно точным значением числа оборотов за одну пятую секунды. Потом это значение просто нужно будет умножить на 5, а потом на 60, получив тем самым искомое значение числа оборотов за минуту.
Блок-схему алгоритма
работы устройства и полную принципиальную
электрическую схему можно
Рисунок 4. Структурная схема устройства
3. Выбор элементов устройства, их технические характеристики
Принципиальная схема автомобильного тахометра состоит из:
1. Резисторов 10 кОм, 270 Ом, 1500 Ом, 4700 Ом.
2. Трёх переменных резисторов на 10 кОм.
3. Двух конденсаторов на 27 пФ.
4. Стабилитрона 2С102А на 5,1 В.
5. Светодиода HIR204.
6. Фототранзистора L32P3C.
7. Кварцевого резонатора KX-13 на 24 МГц.
8. Температурного датчика LM-35
9. Трёх дисплеев LCD-016М02В
- Интерфейс: I2C
- Размер дисплея: 2х16 символов
- Питание: 5 В (допускается 3,3 В).
Линии:
- GND – земля
- VDD – питание для логики
- SCL – I2C последовательная линия тактирования
- SDL – I2C последовательная линия данных
- LED-/ LED+ – катод и анод подсветки.
10. Кнопки включения/выключения устройства.
11. Микроконтроллера AT89S52.
- Частота: до 33 МГц.
- 8 кБ флеш-памяти.
- 32 порта ввода-вывода
- Восемь источников прерываний.
- Три 16-разрядных таймера-счётчика.
- Питание: 4,0 .. 5,5 В.
Интерфейс I2C
I²C — последовательная
шина данных для связи
I²C использует две
Классическая адресация включает 7-битное адресное пространство с 16 зарезервированными адресами. Это означает до 112 свободных адресов для подключения периферии на одну шину.
Основной режим работы — 100 кбит/с; 10 кбит/св режиме работы с пониженной скоростью. Заметим, что стандарт допускает приостановку тактирования для работы с медленными устройствами.
4. Разработка принципиальной схемы устройства
Принципиальная схема устройства представлена в Приложении 1.
4.1 Подключение LCD-дисплеев к микроконтроллеру
Для индикации измеренных величин удобно использовать семисегментные LCD-дисплеи 16х2, поскольку они недороги, компактны, потребляют мало энергии и просты в настройке:
Рисунок 5. LCD-016М02В, вид сбоку.
Рисунок 6. Распиновка LCD-дисплея.
LCD-дисплей имеет 16 входов: первые два, GND и Vcc, используются для питания – первый подключается к земле, второй – на +5 В. Вход Vee (на схеме – CONTR) нужен для регулировки контрастности и подключается к переменному резистору номиналом 10 кОм. Входы Rs и En являются управляющими и подключаются к микроконтроллеру напрямую – первый нужен для переключения между регистрами команд (низкий уровень) и данных (высокий уровень), второй, при подаче на него импульса, даёт команду обновить данные на дисплее. Вход R/W используется для переключения режимов записи в регистры дисплея (низкий уровень) и чтения из них (высокий уровень). Так как дисплей используется только как устройства вывода, для экономии ножек микроконтроллера можно сразу замкнуть вход R/W на землю. Входы Led+ и Led- (на рисунке 7 им соответствуют входы NC) используются для обеспечения подсветки и тоже подключаются к микроконтроллеру. Наконец, 8 входов DB0..DB7 используются для передачи данных и подключаются к соответствующим выводам микроконтроллера:
Рисунок 7. Принципиальная схема подключения LCD к МК.
Таким образом, всего из 32 портов ввода-вывода микроконтроллера для вывода мы используем 28: 24 из них используются для передачи данных на соответствующий дисплей, остальные четыре являются управляющими и общими для каждого дисплея. Это можно объяснить тем, что данные на каждый из дисплеев поступают свои, а управление ими осуществляется централизованно – данные обновляются синхронно.
4.2 Подключение датчиков и периферии к микроконтроллеру
Таким образом, из четырёх
Рисунок 8. Подключение к микроконтроллеру датчиков и периферии.
Рассмотрим особенности
подключения датчиков к микронтроллеру.
Как видно из рисунка 8, инфракрасный
дачтик оборотов подключается в схему
через два резистора
Напряжение бортсети автомобиля поступает через делитель, построенный на резисторах R4 и R5, на вход микроконтроллера P1.5. От возможных скачков напряжения застрахуемся стабилитроном D1 на 5,1 В.
Измерение температуры осуществляется микросхемой LМ35. Подключаем её согласно даташиту: два входа на плюс питания и землю, выход – на вход P1.7 микроконтроллера.
Последний универсальный порт ввода-вывода МК P1.6 используется для подключения кнопки S1, предназначенной для включения/выключения устройства.
Входы Vcc и GND МК используются для его питания и подключаются на плюс источника питания и землю, соответственно. Питание всего устройства целиком можно осуществить как от батарейки, так и от аккумулятора автомобиля. Во втором случае для получения необходимых 5V нужно воспользоваться делителем либо трансформатором.
Наконец, входы XTAL1 и XTAL2 используются для подключения кварцевого резонатора Х1 на 24 МГц. Его подключение необходимо потому, что микроконтроллер AT89S52 не имеет встроенного генератора тактовой частоты.
5. Разработка программного обеспечения
Листинг программы работы микроконтроллера (язык - С):
#include <REGX51.h>
#include <math.h>
unsigned int clk_tmp,clk_tmp2,clk_sec,clk_
unsigned
intex_pulses,rps,rps_tmp,temp,
unsigned int rps_his[5];
char a,b,c,d,e;
unsigned char count1,count2;
unsigned char scale = 4;
delay(y){ // A function to make software delays
unsigned int i;
for(i=0;i<y;i++){;}
}
setup_interrupts(){ // This function initialises the TIMER and the COUNTER to
EA = 1; // be used in in the trachometre
ET0 = 1; //set the Timer/counter 0
TR0 = 1; //Enable Timer/counter 0 to count
TMOD = 0X25; //counter 0 in mode 1 (16 bit counter),
//timer 1 in mode 2 (auto reload from TH1)
TH1 = 0; //start counter from 0
ET1 = 1; //enable timer 1
TR1 = 1; //Enable Timer/counter 1 to count
PT0 = 1; //Setup the priorities of timer 1 and timer 0, a 0 gives a
PT1 = 0; //higher priority.
}
void int_to_digits(unsigned int number){ //store the 5 digits of an integer
float
itd_a,itd_b;
itd_a = number / 10.0;
e = floor((modf(itd_a,&itd_b)* 10)+0.5);
itd_a = itd_b / 10.0;
d = floor((modf(itd_a,&itd_b)* 10)+0.5);
itd_a = itd_b / 10.0;
c = floor((modf(itd_a,&itd_b)* 10)+0.5);
itd_a = itd_b / 10.0;
b = floor((modf(itd_a,&itd_b)* 10)+0.5);
itd_a = itd_b / 10.0;
a = floor((modf(itd_a,&itd_b)* 10)+0.5);
}
clk() interrupt 3 //timer 1 interrupt
{
clk_tmp++; //Software counter for the timing of the tachometer readings
clk_tmp2++; //Software counter for the display refresh rate
if (clk_tmp2 > (1236)){ // update display
clk_tmp2 = 0;
rps_avg = floor(((rps_his[0] + rps_his[1] + rps_his[2] + rps_his[3] + ___
___rps_his[4])/5)*60);
}
if (clk_tmp > (6584/scale)){ // update the measured RPM
clk_tmp = 0;
if (P2_0 == 0){
rps = TL0;
temp = TH0;
temp = temp * 256;
rps = (rps + temp)* scale;
rps_his[4] = rps_his[3];
rps_his[3] = rps_his[2];
rps_his[2] = rps_his[1];
rps_his[1] = rps_his[0];
rps_his[0] = rps;
}
TL0 = 0;
TH0 = 0;
}
}
count_pulses() interrupt 1 //counter 0 interrupt
{
if (scale < 10) // If the pulses are so fast that the internal counter
scale++; // overflows, increase the variable 'scale' so that
} // so that readings are recorded at a higher rate
void main(){
scale = 10 ;
P3_3 = 0; // ini proximity sensor, OFF
P3_4 = 1; // ini sensor input
P1_1 = 0; //turn LCD backlight ON
P2_0 = 1; //ini count/hold button
ini_lcd(); // ini the LCD
setup_interrupts();
while(1){
P3_3 = ~P2_0;
if (P2_0 == 1){
scale= 4;
}
}
}
Заключение
В данной работе был проведен аналитический обзор различных способов создания автомобильного тахометра. Исходя из условий задания и других причин, я остановился на варианте создания тахометра на основе микроконтроллера AT89S52.
В работе приведено подробное описание принципиальной и структурной схем, а также листинг программы.
Список использованной литературы
1. Р. Трунин. Автомобильный тахометр. (Электроника в быту) — 1998, № 6, c. 47
2. Р. Жиздюк. Измерение электронных величин. (Электроника в быту) — 1999, № 6, c. 31
3. С. Кулешов. Автомобильный тахометр на микроконтроллере (Электроника в быту) — 1999, № 9, c. 30
4. Г. Дударев. Автомобильная электроника («Радио» — начинающим) — 2002, № 4, c. 51
5. А. М. Прыжевского.
Справочник по

- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный кран
- Автомобильный кран с решетчатой стрелой
- Автомобильный общественный транспорт в РБ
- Автомобильный приёмник УКВ-Е диапазона
- Автомобильный рынок в России
- Автомобильный рынок России
- Автомобильный тахометр