Новини високих технологій
» » Датчики "Ардуїнов": опис, характеристики, підключення, відгуки

Датчики "Ардуїнов": опис, характеристики, підключення, відгуки

13-12-2018, 18:02
473
Платформа Arduino є однією з кращих для конструювання різних автоматизованих систем. Більш того, у багатьох університетах і коледжах використовують «Ардуїнов» для впровадження студентів в області робототехніки. Дійсно, «Ардуїнов» є дуже легкою, але в той же час і потужною платформою для конструювання різних роботів і розумних систем. І природно, щоб це все займало менше часу, продаються вже готові датчики. У магазинах їх величезна кількість, тому досить-таки складно заплутатися у виборі правильного. У цій статті розглянемо деякі основні датчики «Ардуїнов», і як вони працюють.

Де купити

Справа в тому, що датчики в наших магазинах коштують чималих грошей. І якщо ви збираєтеся почати вивчення платформи «Ардуїнов», то вам просто необхідно знати, де ж можна купити їх за низькою ціною. Відповідь проста – китайські магазини. Це може бути Aliexpress, Joom, Pandao та інші. Практично всі магазини купують датчики саме там і продають їх з величезною націнкою, що сягає до 300 %. Звичайно, доведеться чекати деякий час, так і в якості товару ви не можете бути впевнені, але платити за той же датчик в три рази більше теж не варто. Приклад: на Aliexpress є набір з 36 датчиків, який коштує 800 рублів. Такий же набір в російському магазині продають за 35 тис. рублів. Тому вирішувати вам.


Сервопривід

Сервопривід використовується при конструюванні роботів і різних розумних систем. З допомогою сервоприводу можна відкривати двері, дізнаватися градус повороту і багато іншого. Але в основному його використовують при створенні роботів. Максимальний кут повороту сервомашинки: 180 градусів. Але іноді на теренах Aliexpress можна побачити і варіанти з кутом повороту 360 градусів. Це досить-таки базовий елемент, практично всі уроки на Arduino з датчиками починаються з нього. Сервопривід легко підключається, програмний код для управління дуже простий. Для підключення сервоприводу використовується всього три дроти: земля, харчування, логіка. Сигнальний провід (зазвичай жовтий або коричневий) підключаємо до будь-якого контакту з підтримкою ШІМ (широко-імпульсна модуляція) на Arduino.


Приклад коду:

#include //підключаємо бібліотеки для роботи з сервоприводом
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 контакту і не треба мучитися з резисторами.


<script type="text/jаvascript">
var blockSettings2 = {blockId:"R-A-271049-5",renderTo:"yandex_rtb_R-A-70350-39",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0) blockSettings2.statId = 70350;
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings2)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");

Підключення. Підключається цей датчик температури до «Ардуїнов» за допомогою трьох контактів: земля, харчування і логіка.

Приклад коду:

  #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(" %t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println ("C "); //Вивід показників на екран
}

На самому початку, як і при роботі з сервоприводом, підключається бібліотека. До речі, щодо бібліотеки. Спочатку в пакеті Arduino її немає, цю бібліотеку потрібно завантажувати. Є кілька версій цієї бібліотеки, в нашому прикладі використовується сама стандартна. Будьте уважніше при завантаженні, так як синтаксис може відрізнятися, і код не буде працювати. Далі так само пишеться, до якого контакту підключений датчик і його версію (DHT11 або DHT22). Як і при роботі з сервоприводом, працювати з цим датчиком для «Ардуїнов» дуже легко, потрібно лише кілька операторів. До речі, найчастіше сервопривід і dht11 працюють разом, наприклад, при створенні автоматичних вікон, які будуть відкриватися, якщо в кімнаті або в теплиці занадто жарко.


<script type="text/jаvascript">
var blockSettings3 = {blockId:"R-A-271049-6",renderTo:"yandex_rtb_R-A-70350-44",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0) blockSettings3.statId = 70350;
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings3)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");

Ціна на Aliexpress: 80-100 рублів.

Датчик вологості ґрунту

Цей датчик використовується при конструюванні автоматичного поливу. З його допомогою можна виміряти вологість ґрунту, після чого обробити ці дані і при необхідність полити рослину. У продажу є безліч варіантів цього датчика для «Ардуїнов», але популярність має модель FC-28. Досить бюджетний варіант, тому його всі люблять і використовують у своїх проектах. Датчик має два зонди, які проводять електрику через землю. При сухому грунті опір більше, а при вологій – менше. В основному цей датчик застосовується лише в маленьких проектах, пов'язано це з тим, що зонди зроблені з поганого матеріалу і рано чи пізно при активній роботі вони покриваються корозією, після чого датчик перестає працювати. Тривалість служби датчика можна збільшити, якщо активувати його тільки при знятті даних з грунту, наприклад, раз в 6 годин. Деякі умільці й зовсім змінюють зонди на більш якісні, зроблені своїми руками, а то і зовсім з нуля збирають датчик вологості для «Ардуїнов».

<script async="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

<script> (adsbygoogle = window.adsbygoogle ||[]).push({});

Підключається датчик вологості грунту досить просто. Зазвичай в комплекті з ним йде потенціометр і компаратор для управління чутливість датчика. Всього він має три контакти: логіка, харчування і земля. Підключатися може як цифрових, так і аналогових контактів. До речі, працювати в аналоговому режимі зручніше.

Приклад коду:

  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,55000100);
Serial.print("Вологість : ");
Serial.print(output_value);
Serial.println("%");
delay(1000);
}

Насамперед визначаємо контакти, до яких підключений датчик до «Ардуїнов». Після чого читаємо дані з нього і виводимо їх. Так само, як і з іншими датчиками, працювати з FC-28 досить легко. І все завдяки готовим бібліотек і датчикам.

Ціна на Aliexpress: 30-50 рублів.

БЕНКЕТ датчик

Це датчик руху для «Ардуїнов» використовується при конструюванні різних охоронних систем. Виявляє елементи, що рухаються від 0 до 7 метрів. Розглядати принцип роботи не будемо, перейдемо відразу до підключенню цього датчика до «Ардуїнов».


<script type="text/jаvascript">
var blockSettings = {blockId:"R-A-70350-45",renderTo:"yandex_rtb_R-A-70350-45",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0) blockSettings.statId = 70350;
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");

Судячи з відгуків, підключається він також за допомогою трьох контактів: логіка, харчування і земля. Працює він через цифрові виходи.

Приклад коду:

#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 комплектами, так вони обійдуться ще дешевше. Творити легко, головне – пам'ятати три основних правила робототехніки!
Цікаво по темі
Як підключити датчик вологості ґрунту до Arduino?
Як підключити датчик вологості ґрунту до Arduino?
Коли ви їдете кудись далеко на певний термін часу? Ваші кімнатні квіти нікому поливати, тому доводиться просити допомоги у ваших сусідів, які, в свою
Підключення LCD 1602 до Arduino: опис, функції, інструкції, особливості, проблеми і їх рішення
Підключення LCD 1602 до Arduino: опис, функції, інструкції, особливості, проблеми і їх рішення
Кожен радіоаматор після деякої кількості простих саморобок приходить до мети сконструювати щось грандіозне з використання датчиків і кнопок. Адже
Підключення крокового двигуна до "Ардуїнов"
Підключення крокового двигуна до "Ардуїнов"
При роботі з Arduino багато радіоаматори користуються кроковими двигунами. Але що ж це таке? Як його підключати? А як працювати з ним? І взагалі, де
Як підключити сервопривід до "Ардуїнов"
Як підключити сервопривід до "Ардуїнов"
Сервоприводи є основою радіоаматорів, які працюють з Arduino. Вони використовуються скрізь: автоматичне відкривання дверей, рух робота, кран
Що таке динамічні масиви C++?
Що таке динамічні масиви C++?
Визначимося для початку з тим, що таке динамічний масив. З часів Сі існують масиви, але їх особливістю був фіксований розмір, який зазначався при
Як здійснити запис у файл Java
Як здійснити запис у файл Java
При написанні програм на мові Java рано чи пізно постане необхідність читання і запису інформації в файл. Для цього в мові передбачені наступні