Розроблення тахометра на базі MK-duino
Зміст
Вступ
. Опис актуальності завдання та область використання
.2 Дослідження, проектування і розробка схем
.3. Конструкція MK-duino
.4 Перелік елементів
. Проектування і розробка схеми.
.1 Функції основних елементів.
.2 Зборка схеми
.3 Програмна частина
Висновок
Перелік літератури
Вступ
Підвищення технічного рівня та ефективності електронного
обладнання на основі новітніх досягнень електроніки - одна з найважливіших
завдань розвитку суспільства . Створення мікропроцесорів обумовлено
досягненнями в області технології виробництва великих інтегральних схем ( ВІС)
. Слідом за появою мікропроцесорів розробляється і одержує широкий розвиток
спеціальна багатофункціональна апаратура, яка використовується при вирішенні
великого числа завдань сучасної техніки. Мікропроцесори дозволяють на єдиній
технологічній схемо-технічної базі за рахунок програмування створювати різні
типи приладів. Так і в своїй роботі я вирішив реалізувати прилад на основі
мікропроцесора. В якості мікросхеми була обрана Arduino UNO.
У цій курсовій роботі був розроблений пристрій на
мікроконтролері, написана програма. Даним пристроєм є тахометр на базі MK-duino
(Arduino UNO ).
1. Опис актуальності завдання та область
використання
У цій роботі на основі мікросхеми Arduino UNO було спроектовано
і реалізовано пристрій - Тахометр.
Тахометр - прилад для вимірювання частоти обертання валів
машин і механізмів . Переважно застосовуються відцентрові механічні , магнітні
та електричні тахометри , рідше використовуються пневматичні і гідравлічні. В
механічному відцентровому тахометрі на валу встановлена ковзаюча муфта з
шарнірними важелями , несучими на собі розбіжні при обертанні вала вантажі ,
які переміщують муфту по валу , долаючи дію пружини, що врівноважує положення
муфти на валу відповідає частоті обертання валу і передається системою важеля
на стрілку покажчика - відлікового пристрою , шкала якого відградуйована в об /
хв . Вал може отримувати обертання безпосередньо від контрольованого об'єкта
або через гнучкий вал. У магнітному тахометрі взаємодіють магнітні поля ,
створювані постійним магнітом і обертовим ротором , частота обертання якого
пропорційна виникаючим вихровим струмам , що прагнуть відхилити на певний кут
диск , встановлений на валу ротора і утримуваний пружиною. Відхилення диска , жорстко
пов'язаного зі стрілкою , реєструються на шкалі . Електричні Т. можуть бути
електромашинними або електронними . У електромашинному тахометрі ЕРС генератора
постійного або змінного струму пропорційна кутовий швидкості , вимірявши яку
можна визначити частоту обертання валу; показання передаються дистанційно на
шкалу вимірювального приладу . Принцип дії електронного Т. заснований на
перетворенні імпульсів струму , що виникають в первинному ланцюзі системи
запалювання при розмиканні контактів переривника , в ток , що направляється до
магнітоелектричного вказівного приладу. Частота імпульсів в первинному ланцюзі
пропорційна частоті обертання вала двигуна.
Тахометр - це корисний інструмент для підрахунку RPM
(оборотів на хвилину) колеса або всього, що крутиться. Найпростіший спосіб
зробити тахометр - це використовувати ІК передавач і приймач. Коли зв'язок між
ними переривається, ви знаєте, що щось обертається і можете застосовувати код
для обчислення RPM, орієнтуючись на частоту переривання зв'язку
1.2
Дослідження, проектування і розробка схем
duino це просте, програмоване ядро для самостійної розробки
пристроїв на базі: мікропроцесора ATmega;
вільно-поширюваної програмної оболонки Arduino
#"805560.files/image001.gif">
Таблиця комутації виводів роз'ємів та виводів мікропроцесора
Digital
|
μPC
|
|
Analog
|
μPC
|
|
ISP
|
μPC
|
|
Power
|
μPC
|
0 -Rx
|
2 -PD0
|
|
5 -SCL
|
28-PC5
|
|
MISO
|
18-MISO
|
|
Gnd
|
Gnd
|
1 -Tx
|
3 -PD1
|
|
4 -SDA
|
27-PC4
|
|
SCK
|
19-SCK
|
|
NC
|
|
2
|
4 -PD2
|
|
3
|
26-PC3
|
|
Reset
|
1 -Reset
|
|
Vcc
|
7 -Vcc
|
3
|
5 -PD3
|
|
2
|
25-PC2
|
|
|
|
Reset
|
1 -Reset
|
4
|
6 -PD4
|
|
1
|
24-PC1
|
|
Vcc
|
7 -Vcc
|
|
|
5
|
11-PD5
|
|
0
|
23-PC0
|
|
MOSI
|
|
|
6
|
12-PD6
|
|
|
|
Gnd
|
Gnd
|
|
RS-232
|
μPC
|
7
|
13-PD7
|
|
|
|
|
|
|
|
8
|
14-PB0
|
|
USB-Bridge
|
μPC
|
|
|
|
|
|
9
|
15-PB1
|
|
|
|
|
Power Bat
|
μPC
|
|
|
|
10
|
16-PB2
|
|
|
|
|
|
|
|
Gnd
|
Gnd
|
11
|
17-PB3
|
|
|
|
|
|
|
|
|
|
12
|
18-PB4
|
|
Tx-PC
|
200Ω
-Rx
|
|
|
|
|
RX-RS
|
От Tx через
инвертор
|
13
|
19-PB5
|
|
Rx-PC
|
200Ω
-Tx
|
|
|
|
|
|
|
Gnd
|
Gnd
|
|
Gnd
|
|
|
+4.5V
|
Diode-Vcc
|
|
TX-RS
|
На Rx через
инвертор
|
Ref
|
21-Aref
|
|
+5V USB
|
Diode-Vcc
|
|
Gnd
|
Gnd
|
|
|
|
Схема розміщення елементів на платі:
Принципіальна схема:
Конструкція Duino - подібних пристроїв надзвичайно проста.
Схема MK-duino:
Лінії Rx_PC, Tx_PC підключаються до мікросхеми USB-моста та
мають інверсну полярність відносно відповідних сигналів на RS-232.
Деякі моделі процесорів ATmega “шумлять” по лінії прийому при
“підвішаному” виводі процесора 2-RXD. Тому може знадобитись установка резистора
100KΩ між цим виводом та заземленням.
Перетворювач інтерфейсу RS-232 для MK-duino.
Перетворювач монтується на плату лише за відсутності
кабеля-перехідника USB-моста від мобільного телефону, і реальної необхідності
використання інтерфейсу RS-232.
Перетворювач здійснює інверсію і перетворення рівнів сигналів
послідовного інтерфейсу: 0/5V - +12 V/-12V.
Схема перетворювача рівнів
Передавач на транзисторі Q1 живиться негативною
напругою паузи передачі Tx-RS 232 від зовнішнього пристрою (комп'ютера або
іншого пристрою)
1.4
Перелік елементів
Элемент
|
Назва
|
Номінальне значення
допуск)
|
Примітка
|
IC1
|
Мікропроцесор
|
ATmega8-16,
ATmega8L-8, ATmega8A-PU, ATmega168-20PU
|
Робоча частота не
меньша 16MHz
|
Q1
|
кварцовий резонатор
|
Низько-профільний
корпус
|
L1
|
Індуктивність
|
100μH (70μH - 150μH)
|
|
C1, C2
|
Конденсатор
|
22pF (18pF - 24pF)
|
SMD
|
C3, C4, C6
|
Конденсатор
|
100nF (70nF -200nF)
|
SMD
|
C5
|
Конденсатор
электролітичний
|
100μF
(100μF-220μF)
|
Низько-профільний
корпус
|
U1
|
Діод здвоєний із
загальним катодом
|
Діод Шотки на ток
не менш 50mA
|
SMD
|
LED13, LED14
|
Світло діод
|
Будь-який світло
діод з невеликим падінням напруги (червоний, жовтий, зелений), але не синій,
і не білий, і не понад-яскравий.
|
Діаметр не більший
3mm
|
R1, R2
|
Резистор
|
200Ω
(100Ω - 250Ω)
|
SMD
|
R3, R4
|
Резистор
|
1KΩ
(0.8KΩ - 1.5KΩ)
|
SMD
|
R11
|
Резистор
|
10KΩ
(8KΩ - 15KΩ)
|
SMD
|
R12
|
Резистор
|
100KΩ
(80KΩ - 150KΩ)
|
SMD
|
Перелік елементів адаптера інтерфейсу RS-232
Елемент
|
Назва
|
Номінальні значення
(допуск)
|
Примітка
|
Q01
|
PNP-транзистор
|
Любий
PNP-транзистор з колектором посередині
|
SMD
|
Q02
|
NPN-транзистор
|
Любий
NPN-транзистор с колектором посередині
|
SMD
|
D01, D02
|
Діод
|
Любий кремневий
діод невеликкого розміру
|
дротові виводи
|
C01
|
Конденсатор
|
1μF
(0.8μF - 2μF) неполярний
|
SMD
|
R01, R02, R03, R04,
R05
|
Резистор
|
5KΩ
(4KΩ - 7KΩ)
|
SMD
|
R06
|
Резистор
|
500Ω
(300Ω - 1.2KΩ)
|
SMD
|
2.
Проектування і розробка схеми
Для зв'язку ми будемо використовувати ІЧ-промінь від ІК-
світлодіода, включеного через низько-омний резистор так, щоб світитвся яскраво.
Як приймач ми будемо використовувати фототранзистор, який за відсутності світла
ІЧ-світлодіода "закривається". Комп'ютерний вентилятор буде
розміщений між ІЧ-передавачем і приймачем і включений. ІЧ-приймач включений
через транзисторну схему, буде генерувати переривання. Для виведення результату
буде використовуватися Arduino LCD інтерфейс, буде виводитись остаточне
значення RPM на РК-дисплей.
Елементи: UNO
x2 LCD
макетна плата
Регулюючий резистор 5 кОм
перемички роз'єми
x 2N2222 NPN транзистор
інфрачервоний світлодіод
фототранзистор
Резистор 10 Ом
Резистор 100 кОм
Резистор 15 кОм або 16 кОм
Комп'ютерний вентилятор
2.1
Функції основних елементів
UNO -це плата Arduino, яка використовується для обробки
імпульсів від переривання ІЧ-променя, які повідомляють про знаходження лопасті
комп'ютерного вентилятора між приймачем і датчиком. Arduino використовує ці
імпульси поряд з таймером, щоб обчислити RPM вентилятора.
РК-дисплей 16x2
Після того, як Arduino вичислило RPM, це значення
відобразиться на дисплеї в зрозумілому для користувача вигляді.
Регулюючий резистор 5 кОм:
Цей резистор використовується для регулювання контрастності
РК- дисплея 16x2. Він дає аналогову напругу в діапазоні від 0 до +5 В,
дозволяючи налаштувати яскравість РК -дисплея.
Інфрачервоний світлодіод та Фототранзистор:
Фототранзистор відкривається , коли потужний ІЧ- світло падає
на нього. Тому , коли інфрачервоний світлодіод горить , він тримає
фототранзистор відкритим , але якщо інфрачервоний світлодіод закривається
наприклад , лопаттю вентилятора , то фототранзистор закривається.
N3904 та 2N3906:
Ці транзистори використовуються для перетворення рівня
сигналу , з метою забезпечення вихідних імпульсів з фототранзистора для Arduino
, в яких немає ніяких напруг крім +0 і +5 В.
У схемі, інтерфейс зв'язку з РК-дисплеєм спрощений і має
тільки 2 лінії управління і 4 лінії передачі даних.
Особливості схеми:
Інтерфейс РК-дисплея 16x2
2 керуючих контакта та 4 для передачі даних підключені від
Arduino до РК-дисплею. Це те, що вказує ЖК-дисплею, що і коли робити.
Принципова схема
Схема обриву ІЧ-променя:
Сигнал обриву ІЧ-променя йде на 2-ий цифровий контакт
Arduino. Це перериває Arduino, що дозволяє йому зарахувати імпульс і дозволяє
тахометру отримувати дані.LCD бібліотека:
Для цього проекту використовувалась Arduino LCD бібліотека. В
основному буде просто оновлення значення RPM на другому рядку на нове.
В якості підготовки, подивіться на код наведений нижче, в
якому за допомогою цієї бібліотеки на РК-дисплей виводитися "Hello,
World!" У тахометрі будло використано схожий код, особливо:
"lcd.print (millis () / 1000);".
Підрахунок RPM за допомогою Arduino:
Так як буде підрахуватись RPM комп'ютерного вентилятора , ви
повинні розуміти, що для підрахунку використовується переривання ІЧ- променя.
Це дуже зручно , але потрібно враховувати , що у комп'ютерного вентилятора 7
лопатей, що означає , 7 переривань за 1 оберт.
Якщо відстежувати переривання , то потрібно враховувати , що
кожне сьоме переривання означає , що тільки що стався 1 повний оберт. Якщо
відстежити час, необхідний для повного обороту , то можна легко обчислити RPM .
Для розрахунку RPM використовуємо формулу наведену вище.
Формула точна , і точність залежить від того , наскільки добре Arduino зможе
відстежувати час між перериваннями та підраховувати кількість повних обертів .
2.2
Зборка схеми
На фотографії (Рис.1) нижче ви можете побачити всі необхідні
деталі і перемички як на схемі. мікросхема тахометр адаптер інтерфейс
Рис.1
Для початку підключається +5 В і лінії даних / управління
РК-дисплея. Потім РК-дисплей, потенціометр контрастності таі світлодіод
живлення (Рис.2).
Рис.2
Схема обриву ІЧ-променя зібрана. Необхідно, щоб між ІЧ-
світлодіодом та фототранзистором була відстань. На цій фотографії (Рис.3) видно
відстань між ІЧ-світлодіодом та фототранзистором, де буде розміщуватись
комп'ютерний вентилятор.
2.3
Програмна частина
#include <LiquidCrystal.h>lcd(3, 5, 9, 10, 11,
12);float time = 0;float time_last = 0;int rpm_array[5] = {0,0,0,0,0};setup()
{
//Digital Pin 2 Set As An Interrupt(0, fan_interrupt,
FALLING);
// set up the LCD's number of columns and rows:.begin(16, 2);
// Print a message to the LCD..print("Current
RPM:");
}loop()
{rpm = 0;(1){
//Slow Down The LCD Display Updates(400);
//Clear The Bottom Row.setCursor(0, 1);.print(" ");
//Update The Rpm Count.setCursor(0, 1);.print(rpm);
////lcd.setCursor(4, 1);
////lcd.print(time);
//Update The RPM(time > 0)
{
//5 Sample Moving Average To Smooth Out The Data_array[0] =
rpm_array[1];_array[1] = rpm_array[2];_array[2] = rpm_array[3];_array[3] =
rpm_array[4];_array[4] = 60*(1000000/(time*7));
//Last 5 Average RPM Counts Eqauls....= (rpm_array[0] +
rpm_array[1] + rpm_array[2] + rpm_array[3] + rpm_array[4]) / 5;
}
}
}fan_interrupt()
{= (micros() - time_last);_last = micros();
}
Пам'ятаємо, що комп'ютерний вентилятор має 7 лопатей, так що
це тахометр призначений для роботи тільки з такими вентиляторами. Якщо ваш
вентилятор або інший пристрій дає тільки 4 імпульси за одне обертання, змініть
в коді "(time * 4)".
Висновок
Системи на основі обриву променя корисні не тільки при вимірі
RPM, але і в якості інших датчиків. Наприклад якщо хочеться знати відкриті
двері а бо закриті. Можливо, ви захочете дізнатись, чи не проходив хто повз. Є
багато застосувань обриву променя, а схема використана тут настільки проста, що
є багато шляхів для поліпшення і збірки інших дивних пристроїв.
Вентилятор працює нашвидкості приблизно 3000 оборотів в
хвилину, з похибкою близько + / -100 оборотів в хвилину.
Вентилятор генерує імпульси переривання, а на виході бачимо
RPM. Хоча точність не 100%, а приблизно 95%, при вартості елементів всього у10
$ є сенс побудови такого тахометра на Arduino.
Перелік літератури
1. Рюмик С.М.
Микроконтроллеры Duino. Цикл статей. Журнал "Радiоаматор", 2010 г.,
№2-6.
. Рюмик С. Микроконтроллерный модуль
InterDuino. Журнал "Радио", 2010 г., №10.
. http://cxem.net/
. http://mk-duino.narod.ru/