Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Технічні характеристики приладу




Робота приладу основана на періодичному випромінюванні ультразвукових імпульсів в напрямку предмету і прийомі відображених від нього ехосигналів. На час від випромінення імпульсу до приходу ехосигналу у мікропроцесорів вмикається таймер, який підраховує час між цими двома діями. Мікропроцесор проводить виміряння із частотою два рази за секунду.

 

Рис. 2.1. Принципова електрична схема

 

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
Вимірювальна система створена на базі восьмибітного мікроконтролера AVR ATMEGA-8, ультразвукого датчика відстані HC-SR04 та символьного дворядкового LCD дисплею на базі контролера HD44780.

У приладі доступні два режим роботи, перемикання між якими здійснюється кнопкою на лицьовій стороні. Згідно із технічними характеристиками ультразвукового датчика, максимальна відстань вимірювання становить 400см, мінімальна відстань вимірювання 2см, роздільна здатність приладу становить 1см, а максимальний вимірювальний кут (рис. 2.2.) становить 15.

Для точного результати вимірювання мали меншу похибку, площа відбиття об’єкта, до якого вимірюється відстань, повинна мати не менш як і бути перпендикулярною.

Рис. 2.2. Максимальний кут вимірювання

 

 

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 


Часова діаграма на рис.2.3. показує порядок роботи із ультразвуковим датчиком:

1. Подати короткий імпульс тривалістю 10мкс на вхід тригера „Trigger ”, щоб почати вимірювання. Після цього датчик відправить 8 ультразвукових коливань із частотою 40 кГц.

2.Очікування імпульсу на виході датчика „Echo”. Як тількі це відбудеться, потрібно виміряти час імпульсу, після чого за формулою (2.2.) вирахувати відстань до об’єкта.

 

(2.2.)

де, - час імпульсу у мікросекундах

 

2.3. Часова діаграма робити із акустичним датчиком

 

2.4.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
Режими роботи

У приладі доступні два режим роботи:

· Режим вимірювання відстані

· Режим вимірювання швидкості переміщення об’єкта

 

Режим вимірювання відстані

При вмиканні приладу режимом роботи за замовчування є режим вимірювання відстані. У даному режимі роботи на дисплеї відображається напис ”distance” та справа від нього значення виміряної відстані у сантиметрах. На рис. 2.3. показано фото роботи приладу у даному режимі.

 

Рис. 2.4. Режим вимірювання відстані.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
Режим вимірювання швидкості переміщення об’єкта

Для того, щоб перемкнути прилад у даний режим потрібно один раз натиснути кнопку перемикання режимів. Даний режим роботи базується на періодичному вимірюванні відстані за фіксований час.

 

 

Рис. 2.5. Режим вимірювання швидкості переміщення об’єкта

 


 

2.5.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
 
 
 
Алгоритм роботи приладу

Алгоритм функціонування контролера складається з алгоритму основної програми (рис.2.6.) та перехід до програми обробки переривань(рис 2.7.) та (рис.2.8.).

Рис. 2.6. Алгоритм роботи основної програми

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
 
 
 
На початку роботи проходить ініціалізація периферії мікроконтролера та ініціалізація дисплея, оскільки дисплей має вбудований контролер. Наступним кроком є перевірка біта "mode", який відповідає за поточний режим роботи. У разі значення 1 відбувається перехід у режим вимірювання відстані, при значенні 0 – у режим вимірювання швидкості переміщення об’єктів. Після виконання одного циклу роботи у будь-якому із режимів роботи проходить повторна перевірка біту "mode".

На (рис. 2.8) показано алгоритм обробки переривання на вході мікроконтролера, який відповідає за опитування кнопки зміни режиму.

Рис. 2.8. Алгоритм обробки переривання натискання кнопки

Коли виникає переривання за зростаючим фронтом, у підпрограмі обробки значення біту "mode" змінюється на протилежне.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
На (рис. 2.8) показано алгоритм обробки переривання, яке відповідає за вимірювання часу імпульсу із акустичного датчика, а саме: при зростаючому фронті на відповідному вході мікроконтролера відбувається переривання та запуск таймера. При наступному спадаючому фронті також відбувається переривання, яке зупиняє таймер.

Рис. 2.8. Алгоритм обробки переривання, яке надходить від акустичного датчика

2.6.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
Вихідний код програми мікроконтролера

Керуюча програма була написана мовою С у програмному середовищі Atmel Studio 6. Далі показано вихідний код програми мікроконтролера

Main.c:

#define F_CPU 1000000UL

#include <avr/io.h>

#include <util/delay.h>

#include <avr/interrupt.h> //!!!

#include <stdio.h>

 

#include "LCD.h" // бібліотека для роботи із LCD дисплеєм

#include "hc_sr04.h" // бібліотека для роботи із акустичним датчиком

 

 

#define MODE_SPEEDMETER 1

#define MODE_DISTANCE_METER 0

 

unsigned char mode_ = 0;

 

// обробка натискання кнопки зміни режиму

ISR (INT1_vect)

{

if (mode_ == MODE_SPEEDMETER)

{

mode_ = MODE_DISTANCE_METER;

}

else

{

mode_ = MODE_SPEEDMETER;

}

}

 

// виведення чисел типу float на дисплей

void float_to_string (float a, char *mass) // (float_число, рядок_у_який_повертаємо)

{

 

int res_integer = 0; // ціла частина числа

int res_drob = 0; // дробова частина числа

 

res_integer = (int)(a);

a = a - (float)res_integer;

a = a*100;

res_drob = (int)a;

 

if (res_drob < 0)

{

res_drob = -res_drob;

};

if (a < 0 && -1 < res_integer && res_integer < 1)

sprintf(mass, "speed:-%d.%d m/s", res_integer, res_drob);

else

sprintf(mass, "speed:%d.%d m/s", res_integer, res_drob);

}

 

 

//ініціалізація переривання

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 

void init_interp_button (void)

{

MCUCR |=(1<<ISC11); //по будь-якому фронту

GICR |= (1<<INT1); //на INT1

}

 

int main(void)

{

DDRB |= (1<<0);

PORTB |= (1<<0);

 

LCDinit();

HC_SRC4_Init();

init_interp();

init_interp_button();

sei();

 

char personal_string[10];

LCDclear();

 

int distance_start = 0;

int distance_end = 0;

unsigned int time = 0;

volatile float result = 0;

 

while(1)

{

 

 

if (mode_ == MODE_DISTANCE_METER)

{

_delay_ms(500);

sprintf (personal_string, "distance = %dcm ", (int)HC_SRC4_Get_CM());

LCDstring(personal_string, 0, 0);

}

else

{

_delay_ms(250);

 

distance_start = (int)HC_SRC4_Get_CM();

_delay_ms(150);

distance_end = (int)HC_SRC4_Get_CM();

 

result = distance_end - distance_start;

 

if (result == 0)

{

asm("nop");

LCDclear();

sprintf (personal_string, "speed: 0 m/s ");

}

else

{

result = result / 5;

float_to_string(result, personal_string);

LCDclear();

 

};

};

}

}

 

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
hc_sr04.h:

 

 

//ніжка Echo

#define Echo_PORT PORTD

#define Echo_DDR DDRD

#define Echo_PIN PIND

#define Echo_N 2

//ніжка Trig

#define Trig_PORT PORTD

#define Trig_DDR DDRD

#define Trig_PIN PIND

#define Trig_N 1

 

 

//ініціалізація ніжок для роботи із датчиком

void HC_SRC4_Init (void)

{

//Налаштування ніжок

Trig_DDR |= 1<<Trig_N;

Trig_PORT &= ~(1<<Trig_N);

 

Echo_DDR &= ~(1<<Echo_N);

Echo_PORT &= ~(1<<Echo_N);

}

 

 

// строб імпульс

void HC_SRC4_Send_strob (void) {

Trig_PORT |= 1<<Trig_N; // ЛОГ 1

_delay_us(11);

Trig_PORT &= ~(1<<Trig_N); // ЛОГ 0

}

 

 

//ініціалізація переривання для роботи із датчиком

void init_interp (void)

{

MCUCR |=(1<<ISC00); //По будь-якому фронту

GICR |= (1<<INT0); // на INT0

}

 

#define Start 1

#define Stop 0

 

 

//функція запуску і зупинки таймера

unsigned int timer_Start_Stop (char flag)

{

unsigned int rez; // збереження кількості тактів

unsigned short int buff[2];

 

if (flag)

{

TCNT1H = 0;

TCNT1L = 0;

TCCR1B |=(1<<CS11); //запуск таймера із діленням 8

}

else

{

TCCR1B &= ~(1<<CS11); //Зупинка таймера

 

buff[0] = TCNT1L;

buff[1] = TCNT1H;

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 

rez = buff[1];

rez <<= 8;

rez |= buff[0];

 

return rez;

}

return 0;

}

 

//такти таймера у відстань

unsigned int HC_SRC4_Convert_CM (unsigned int N_t)

{

unsigned long int C;

if (N_t > 2900)

{

return (unsigned int) 0;

};

C = N_t * 8; //час імпульса = кількість тактів таймера * 8

C /= 58; // відстань у сантиметрах

 

return (unsigned int) C;

}

 

 

unsigned int N_takt=0;

//переривання обробки довжини імпульсу

ISR (INT0_vect)

{

if (Echo_PIN & (1<<Echo_N)) //зростаючий фронт

timer_Start_Stop (Start);

else //спадаючий фронт

N_takt = timer_Start_Stop (Stop); }

 

 

// функція визначає і повертає відстань

unsigned int HC_SRC4_Get_CM (void)

{

HC_SRC4_Send_strob();

 

_delay_ms(25);

return HC_SRC4_Convert_CM (N_takt); //повернення значення у СМ

}

 

 


 

3.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
Висновок

У даній курсовій роботі розглянуто акустичний метод вимірювання відстаней. Розглянуто основні принципи вимірювання даним методом та розроблено вимірювальний пристій. Описані основні технічні характеристики приладу, приведені алгоритми роботи та наведений вихідний код мікропроцесорної вимірювальної системи. Аналізуючи метод, встановлено, що даний тип датчиків має велику кількість переваг, чим пояснюється його широке застосування у різних напрямках: від побутових(паркувальний радар автомобілів "парктронік") до промислових (визначення рівнів рідин у резервуарах).


Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
   
ІКАТ.463.013. 013 - КР  
 
 
ПЕРЕЛІК ВИКОРИСТАНИХ ІНФОРМАЦІЙНИХ ДЖЕРЕЛ

1.Электрические измерения. Справочник в вопросах и ответах. Панев Б.І. –

Агропромиздат, 1987. - 224

2. Коваленко І.О. Метроголія та вимірювальна техніка. Навчальний посібник. / Коваленко І.О., Коваль А.М., ЖІТІ, 2001. – 652с

3. Измерительные преобразователи. Справочное пособие. Бріндлі К.

Энергоатомиздат, 1991. – 144с.




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 1060; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.