Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

Лабораторна робота №2

Тема: Ознайомлення з основними давачами робототехніки


Мета: вивчити правила підключення аналогових та цифрових давачів до
Arduino, та методів управління з їх допомогою робото технічними
комплексими.
1. Теоретичні відомості
Датчик - це елемент вимірювального, сигнального, регулюючого або
керуючого пристрою, що перетворює контрольовану величину (температуру,
тиск, частоту, силу світла, електрична напруга, струм і т.д.) в сигнал, зручний
для вимірювання, передачі, зберігання, обробки, реєстрації , а іноді і для впливу
ним на керовані процеси. Або простіше, датчик - це пристрій, що перетворює
вхідний вплив будь-якої фізичної величини в сигнал, зручний для подальшого
використання. 
 Використовувані датчики досить різноманітні і можуть бути
класифіковані за різними ознаками:
  Залежно від виду вхідної (вимірюваної) величини розрізняють: датчики
механічних переміщень (лінійних і кутових), пневматичні, електричні,
витратоміри, датчики швидкості, прискорення, зусилля, температури, тиску та
ін.
 В даний час існує приблизно наступний розподіл частки вимірювань
різних фізичних величин в промисловості: температура - 50%, витрата (масовий
і об'ємний) - 15%, тиск - 10%, рівень - 5%, кількість (маса, об'єм) - 5%, час - 4%,
електричні і магнітні величини - менш 4%. 
  По виду вихідної величини, в яку перетворюється вхідна величина,
розрізняють неелектричні та електричні: датчики постійного струму (ЕРС або
напруги), датчики амплітуди змінного струму (ЕРС або напруги), датчики
частоти змінного струму (ЕРС або напруги), датчики опору (активного,
індуктивного або ємнісного) і ін.
  Більшість датчиків є електричними. Це обумовлено наступними
перевагами електричних вимірювань:
  - електричні величини зручно передавати на відстань, причому передача
здійснюється з високою швидкістю;
  - електричні величини універсальні в тому сенсі, що будь-які інші
величини можуть бути перетворені в електричні і навпаки;
  - вони точно перетворюються в цифровий код і дозволяють досягти
високої точності, чутливості і швидкодії засобів вимірювань.
  
 За принципом дії датчики можна розділити на два класи: генераторні і
параметричні (датчики-модулятори). Генераторні датчики здійснюють
безпосереднє перетворення вхідної величини в електричний сигнал.
 Параметричні датчики вхідну величину перетворять в зміну будь-якого
електричного параметра (R, L або C) датчика.
  За принципом дії датчики також можна розділити на омічні, реостатні,
фотоелектричні (оптико-електронні), індуктивні, ємнісні та ін.
  Розрізняють три класи датчиків:
  - аналогові датчики, тобто датчики, що виробляють аналоговий сигнал,
пропорційно зміні вхідної величини;
  - цифрові датчики, які генерують послідовність імпульсів або двійкове
слово;
  - бінарні (двійкові) датчики, які виробляють сигнал тільки двох рівнів:
"включено / вимкнено" (інакше кажучи, 0 або 1); набули широкого поширення
завдяки своїй простоті.
  Вимоги, що пред'являються до датчиків:
  - однозначна залежність вихідної величини від вхідних;
  - стабільність характеристик у часі;
  - висока чутливість;
  - малі розміри і маса;
  - відсутність зворотного впливу на контрольований процес і на
контрольований параметр;
  - робота при різних умовах експлуатації;
  - різні варіанти монтажу.

Компоненти , які використовуються в лабораторній роботі:


1 Макетниця bredboard
2 Arduino UNO
3 Світлодіод LED
4 Резистор 1 К для світло діода
5 Кнопка push button
6 Резистор 10 кОм(pull down resistor)

2 Порядок виконання роботи


2.1 підключення бінарного давача
1 Складаємо схему з світло діодом подібну до схеми в роботі №2
Для цього запускаємо VBB, створюємо новий проект, переміщаємо в
робочу область макетницю, на ній розміщуємо світло діод і резистор(1кОм),
під’єднуємо їх до ардуіно.
2 Під’єднуємо живлення +5 в і GND до двох нижніх ліній макетниці
bredboard (рис. )
3 Додаємо на макетницю кнопку (бінарний датчик) і резистор (10 кОм).
Під’єднаємо кнопку і зробимо так, щоб при натисканні кнопки світло діод
засвітився.
4 Контакти АВ кнопки під’єднуємо до +5 В, контакти CD кнопки
під’єднаємо до 8 контакту Ардуіно, від контактів CD кнопки будемо
отримувати сигнал (HIGH).
5 Підєднуємо підтягуючий до землі резистор (pull-down resistor). Одним
кінцем підєднуємо його до контактів CD кнопки, іншим кінцем до шини GND
(земля).
6 Задаємо налаштування даного резистора. Resistance = 10 k, Function =
pulldown. Цифровий контакт ардуіно, в режимі INPUT, може мати тільки два
значення HIGH (1 – сигнал є) LOW (0 – сигнал відсутній). У випадку коли
кнопка не натиснута, контакт ардуіно залишається ні до чого не підєднаний і на
ньому можуть виникати завади (статичні, електричні і електромагнітні
наводки). Для усунення завад і переведення контакту в наперед відомий стан
використовують підтягуючий резистор. Підтягуючі резистори бувають двох
типів верхньої і нижньої підтяжки. Верхній (pull-up) підєднують до +5 в
живлення, нижній (pull-down) до заземлення (GND).
7 Схему зібрано (рис.1), переходимо до програмування.

Рис. 1 Схема підключення до ардуіно світло діода і бінарного давача


8 В Solution правою кнопкою обираємо New Proect. У вікні меню
обираємо Add Java Sourse Project. Задаємо назву програми проекту. Додаємо
файл для написання коду програми. Через меню обираємо пункт Add New Java
Source File і задаємо імя файлу.
9 Розділяємо робочу область на частини, перетягуємо Breadboard01.VBB
з Solution на робочу область.
10 Натискаємо на Add an Arduino code framework. Майстер завантажив
пусту заготовку, скелет для написання коду програми.
11 Перед void setap() заводимо змінні, а ще краще константи, щоб
гарантувати що їх значення будуть задані на початку програми і не будуть
змінюватись в ході роботи програми.
final int ledPin = 13; (світло діод підєднано до 13 контакту)
final int binPin = 8; (сигнальний провід від кнопки підєднано до 8
контакту)
12 В методі setap() проводимо початкові налаштування контактів і
одноразові інструкції.
pinMode (ledPin, OUTPUT); контакт світлодіода налаштовано на вивід.
pinMode (binPin, INPUT); контакт чекаючий від кнопки сигнал
налаштували на ввід.
13 В методі void loop () пишемо код програми. При натисканні на кнопку
світло діод вмикається, при відпусканні вимикається.
Int signalFromBtn = digitalRead(btnPin); Зчитуємо сигнал з кнопки в
змінну.
If (signalFromBtn == HIGH); якщо сигнал == HIGH, значить кнопка
натиснута.
digitalWrite(ledPin, HIGH); ввімкнули світло діод.
else
digitalWrite(ledPin, LOW); інакше, вимкнули.
14 Перевіряємо код на помилки, компілюємо проект. Якщо помилок
немає запускаємо емуляцію.
Короткий код програми:
digitalWrite(ledPin, digitalRead(btnPin));

2.2 підключення аналогового давача


1 У вкладці temperature sensor знаходимо температурний датчик TMP35 і
перетягуємо його на робоче поле.
2 Цей датчик є аналоговим, він перетворює, як і у випадку з фото
резистором, вхідну напругу 5 В. у вихідну vOut величина якого залежить від
температури оточуючого середовища.
3 Підключаємо давач наступним чином: крайній зліва контакт
підключаємо до +5В., крайній зправа підключаємо до GND, сигнал беремо з
середнього виводу і підключаємо до А0.
4 Підключаємо LCD екран і виведемо показники температурного датчика
на екран.
5 Для цього перед void setap() задамо пін для датчика температури і
змінну в яку будемо зчитувати значення з датчика.
Int sensorPin = A0;
Int sensorValue = 0;
6 В першій стрічці виводимо напис «Temperature», в другій виводимо
значення показників термодатчика.(Аналогічно як в попередній роботі)
7 Значення яке показує датчик не співпадає зізначенням на екрані.
Справа в тому, що функція analogRead перетворює аналогове значення
напруги в цифрове. Для того щоб знати точне значення температури, його
необхідно вирахувати.

sensorValue = analogRead(sensorPin); зчитали значення з термодатчика

Double millivolts = (sensorValue /1024.0)*5000; вирахували мілівольти


Double Celsius = millivolts / 10; перевели мілівольти в градуси цельсія.
Коефцієнт 10 взято приблизно і може давати похибку, для отримання
більш точного коефіцієнта необхідно провести калібрування.
Тепер отримане на екрані значення близьке до реального.
У звіті кожен студент виводить температурні показники, які відповідають
його порядковому номеру.

Рис.3 Програмний код виконаної лабораторної роботи

Висновки:

Контрольні питання:
1. Що таке датчик?
2. За якими ознаками класифікуються датчики?
3. Яка відмінність між класами датчиків?
4. Яка функція підтягуючого резистора?
5. Яка відмінність між функціями setap() і loop ()?

You might also like