Датчики "Ардуїнов": опис, характеристики, підключення, відгуки
Опубликованно 11.10.2018 02:48
Платформа Arduino є однією з кращих для конструювання різних автоматизованих систем. Більш того, у багатьох університетах і коледжах використовують «Ардуїнов» для впровадження студентів в області робототехніки. Дійсно, «Ардуїнов» є дуже легкою, але в той же час і потужною платформою для конструювання різних роботів і розумних систем. І природно, щоб це все займало менше часу, продаються вже готові датчики. У магазинах їх величезна кількість, тому досить-таки складно заплутатися у виборі правильного. У цій статті розглянемо деякі основні датчики «Ардуїнов», і як вони працюють.
Де купити
Справа в тому, що датчики в наших магазинах коштують чималих грошей. І якщо ви збираєтеся почати вивчення платформи «Ардуїнов», то вам просто необхідно знати, де ж можна купити за низькою ціною. Відповідь проста – китайські магазини. Це може бути Aliexpress, Joom, Pandao та інші. Практично всі магазини купують датчики саме там і продають їх з величезною націнкою, що сягає до 300 %. Звичайно, доведеться чекати деякий час, так і в якості товару ви не можете бути впевнені, але платити за той же датчик в три рази більше теж не варто. Приклад: на Aliexpress є набір з 36 датчиків, який коштує 800 рублів. Такий же набір в російському магазині продають за 3,5 тис. рублів. Тому вирішувати вам.
Сервопривід
Сервопривід використовується при конструюванні роботів і різних розумних систем. З допомогою сервоприводу можна відкривати двері, дізнаватися градус повороту і багато іншого. Але в основному його використовують при створенні роботів. Максимальний кут повороту сервомашинки: 180 градусів. Але іноді на теренах Aliexpress можна побачити і варіанти з кутом повороту 360 градусів. Це досить-таки базовий елемент, практично всі уроки на Arduino з датчиками починаються з нього. Сервопривід легко підключається, програмний код для управління дуже простий.
Для підключення сервоприводу використовується всього три дроти: земля, харчування, логіка. Сигнальний провід (зазвичай жовтий або коричневий) підключаємо до будь-якого контакту з підтримкою ШІМ (широко-імпульсна модуляція) на Arduino.
Приклад коду:
#include <Servo.h> // підключаємо бібліотеки для роботи з сервоприводом Servo servo1; // оголошуємо змінну servo типу "servo1" void setup() // процедура setup { servo1.attach(11); // прив'язуємо сервопривід до аналогового виходу 11 } void loop() // процедура loop { servo1.write(0); // ставимо кут повороту під 0 delay(2000); // чекаємо 2 секунди servo1.write(90); // ставимо кут повороту під 90 delay(2000); // чекаємо 2 секунди servo1.write(180); // ставимо кут повороту під 180 delay(2000); // чекаємо 2 секунди }
Спочатку в код додаємо бібліотеку, яка вже є в Arduino, далі вказуємо, до якого контакту підключений сервопривід. Як можна помітити, працювати з сервоприводом дійсно дуже просто, управління йде лише одним оператором.
Ціна на Aliexpress: 80-100 рублів. DHT-11
DHT-11 служить для вимірювання температури і вологості. Цей датчик температури для «Ардуїнов» є найпопулярнішим з-за його ціни і можливостей. Вимірює температуру в діапазоні від 0 до 50 градусів, а вологість від 20 до 80 %. Також у продажу є інша версія цього датчика, DHT-22, діапазон вимірювань у нього більше, але і коштує він у кілька разів дорожче. Для простих проектів його використання не доцільне, тому всі віддають перевагу DHT-11, який відмінно справляється з вимірюваннями. Харчування можна подавати від 3.3 до 5V. Взагалі, сам датчик має 4 контакту підключення, але у продажу є модулі DHT-11, з ними працювати набагато зручніше, так як підключення через 3 контакту і не треба мучитися з резисторами.
Підключення. Підключається цей датчик температури до «Ардуїнов» за допомогою трьох контактів: земля, харчування і логіка.
Приклад коду:
#include "DHT.h" #define DHTPIN 2 // Той самий номер піна, про який згадувалося вище DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // 2 секунди затримки float h = dht.readHumidity(); //Вимірюємо вологість float t = dht.readTemperature(); //Вимірюємо температуру if (isnan(h) || isnan(t)) { // Перевірка. Якщо не вдається вважати свідчення, виводиться «Помилка зчитування», і програма завершує роботу Serial.println("Помилка зчитування"); return; } Serial.print("Вологість: "); Serial.print(h); Serial.print(" % "); Serial.print("Температура: "); Serial.print(t); Serial.println ("C "); //Вивід показників на екран }
На самому початку, як і при роботі з сервоприводом, підключається бібліотека. До речі, щодо бібліотеки. Спочатку в пакеті Arduino її немає, цю бібліотеку потрібно завантажувати. Є кілька версій цієї бібліотеки, в нашому прикладі використовується сама стандартна. Будьте уважніше при завантаженні, так як синтаксис може відрізнятися, і код не буде працювати. Далі так само пишеться, до якого контакту підключений датчик і його версію (DHT11 або DHT22). Як і при роботі з сервоприводом, працювати з цим датчиком для «Ардуїнов» дуже легко, потрібно лише кілька операторів. До речі, найчастіше сервопривід і dht11 працюють разом, наприклад, при створенні автоматичних вікон, які будуть відкриватися, якщо в кімнаті або в теплиці занадто жарко.
Ціна на Aliexpress: 80-100 рублів. Датчик вологості ґрунту
Цей датчик використовується при конструюванні автоматичного поливу. З його допомогою можна виміряти вологість ґрунту, після чого обробити ці дані і при необхідності полити рослину. У продажу є безліч варіантів цього датчика для «Ардуїнов», але популярність має модель FC-28. Досить бюджетний варіант, тому його всі люблять і використовують у своїх проектах. Датчик має два зонди, які проводять електрику через землю. При сухому грунті опір більше, а при вологій – менше. В основному цей датчик застосовується лише в маленьких проектах, пов'язано це з тим, що зонди зроблені з поганого матеріалу і рано чи пізно при активній роботі вони покриваються корозією, після чого датчик перестає працювати. Тривалість служби датчика можна збільшити, якщо активувати його тільки при знятті даних з грунту, наприклад, раз в 6 годин. Деякі умільці й зовсім змінюють зонди на більш якісні, зроблені своїми руками, а то і зовсім з нуля збирають датчик вологості для «Ардуїнов».
Підключається датчик вологості грунту досить просто. Зазвичай в комплекті з ним йде потенціометр і компаратор для управління чутливість датчика. Всього він має три контакти: логіка, харчування і земля. Підключатися може як цифрових, так і аналогових контактів. До речі, працювати в аналоговому режимі зручніше.
Приклад коду:
int sensor_pin = A0; int output_value ; void setup() { Serial.begin(9600); Serial.println("Читаємо дані з датчика"); delay(2000); } void loop() { output_value= analogRead(sensor_pin); output_value = map(output_value,550,0,0,100); Serial.print("Вологість : "); Serial.print(output_value); Serial.println("%"); delay(1000); }
Насамперед визначаємо контакти, до яких підключений датчик до «Ардуїнов». Після чого читаємо дані з нього і виводимо їх. Так само, як і з іншими датчиками, працювати з FC-28 досить легко. І все завдяки готовим бібліотек і датчикам.
Ціна на Aliexpress: 30-50 рублів. БЕНКЕТ датчик
Це датчик руху для «Ардуїнов» використовується при конструюванні різних охоронних систем. Виявляє елементи, що рухаються від 0 до 7 метрів. Розглядати принцип роботи не будемо, перейдемо відразу до підключенню цього датчика до «Ардуїнов».
Судячи з відгуків, підключається він також за допомогою трьох контактів: логіка, харчування і земля. Працює він через цифрові виходи.
Приклад коду:
#define PIN_PIR 2 #define PIN_LED 13 void setup() { Serial.begin(9600); pinMode(PIN_PIR, INPUT); pinMode(PIN_LED, OUTPUT); } void loop() { int pirVal = digitalRead(PIN_PIR); Serial.println(digitalRead(PIN_PIR)); //Якщо виявили рух if (pirVal) { digitalWrite(PIN_LED, HIGH); Serial.println("Motion detected"); delay(2000); } else { //Serial.print("No motion"); digitalWrite(PIN_LED, LOW); } }
Визначаємо контакти, до яких підключений датчик, після чого виконуємо перевірку наявності руху. Працювати з ним дуже зручно та легко, але бувають випадки помилкового спрацьовування.
Ціна на Aliexpress: 30-50 рублів. Робимо висновки
Вище були розглянуті основні датчики для «Ардуїнов», які найпершими вивчаються початківцями радіоаматорами. Як можна помітити, коштують вони досить недорого, підключаються легко, а зчитування даних і зовсім займає всього пару рядків. Крім них, ще існує величезна кількість інших датчиків, навіть є для вимірювання пульсу! Найвигідніше купувати їх на Aliexpress комплектами, так вони обійдуться ще дешевше. Творити легко, головне – пам'ятати три основних правила робототехніки! Автор: Инсаф Галієв 8 Жовтня, 2018
Категория: Мобильные технологии