Платформата Arduino е една от най-добрите за проектиране на различни автоматизирани системи. Освен това, в много университети и колежи, Ардуинов се използва за запознаване на студентите в областта на роботиката. Всъщност Arduino е много лека, но в същото време мощна платформа за изграждане на различни роботи и интелигентни системи. И естествено, всичко това отнема по-малко време, продават се готови сензори. Магазините имат огромно количество от тях, така че е доста трудно да се заплете в избора на правилния. В тази статия, нека да разгледаме някои от основните сензори на Arduino и как те работят.
Къде да купя
Серво задвижване
#include //свързва сървърите за серво действие
Серво серво1; //обявява променлива серво тип "servo1"
void setup () //процедура setup
{
servo1.attach
; //свързваме серво към аналоговия изход 11
}
void loop () //цикъл процедура
{
servo1.write ; //задайте ъгъла на завъртане на 0
закъснение (2000); //изчакваме 2 секунди
servo1.write ; //задайте ъгъла на завъртане до 90
закъснение (2000); //изчакваме 2 секунди
servo1.write (180); //задайте ъгъла на завъртане на 180
закъснение (2000); //изчакайте 2 секунди
}
Първо, добавяме към кода библиотеката, която вече съществува в Arduino, след това посочваме към кой контакт е свързан серво. Както виждате, работата със серво е много проста, управлението е само един оператор.
Цена за Aliexpress: 80-100 рубли.
DHT-11
DHT-11 служи за измерване на температура и влажност. Този температурен сензор за Ardouins е най-популярниятпоради своята цена и възможности. Измерва температурата в диапазона от 0 до 50 градуса и влажност от 20 до 80%. Има и различна версия на този сензор, който се продава, а диапазонът от измервания на DHT-22 има повече, но струва няколко пъти по-скъпо. За прости проекти използването му не е целесъобразно, затова всеки предпочита DHT-11, който перфектно се справя с измерванията. Мощността може да се захранва от 3.3 до 5V. Като цяло, самият сензор има 4 свързващи контакта, но в продажба DHT-11 модулите работят с тях много по-удобно, тъй като свързването през 3 контакта и не трябва да страдат от резистори.
& lt; script type = "text /javascript" & gt;
може да blockSettings2 = {blockId: "R-A-271049-5", renderTo: "yandex_rtb_R-A-70350-39", async:! 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings2.statId = 70350;
Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");
Връзка. Този температурен датчик е свързан към "Arduino" посредством три контакта: земя, мощност и логика.
Пример за код:
# включва "DHT.h"
#define DHTPIN 2 //Същият номер на пяната, споменат по-горе
DHT dht (DHTPIN, DHT11);
void setup () {
Serial.begin (9600);
dht.negin ();
}
закъснение с невалидна линия () {
(2000); //2 секунди закъснение
float h = dht.readHumidity (); //Измерваме влажността
float t = dht.readTemperature (); //Измерете температурата
, ако (isnan (h) || isnan (t)) {//Проверете. Ако сертификатът не може да бъде разгледан, се появява "Read Error" и програмата се изключва
Serial.println ("Read Error");
връщане;
}
Serial.print ("Влажност:");
Serial.print (h);
Serial.print ("% t");
Serial.print ("Температура:");
Serial.print (t);
Сериен печат ("C"); //Извеждане на индикатори на екрана
}
В началото, както при серво задвижването, библиотеката е свързана. Между другото, за библиотеката. Първо, в него няма Arduino, тази библиотека трябва да бъде изтеглена. Има няколко версии на тази библиотека, в нашия пример използваме стандартната. Бъдете внимателни при изтеглянето, тъй като синтаксисът може да е различен и кодът няма да работи. След това се пише и кой контакт е свързан със сензора и неговата версия (DHT11 или DHT22). Както и при серво задвижването, с този сензор е много лесно да се работи с Arduin, но са необходими само няколко оператора. Между другото, най-често серво задвижването и dht11 работят заедно, например при създаването на автоматични прозорци, които ще се отварят, когато в стаята или в оранжерията е твърде горещо.
& lt; script type = "text /javascript" & gt;
може да blockSettings3 = {blockId: "R-A-271049-6", renderTo: "yandex_rtb_R-A-70350-44", async:! 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings3.statId = 70350;
Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");
Цена за Aliexpress: 80-100 рубли.
Сензор за влажност на почвата
Този сензор се използва при проектирането на автоматично поливане. Тя ви позволява да измерите съдържанието на влага в почвата, след това да обработите тези данни и ако е необходимо да засадите растението. Има много варианти на този сензор за "Ардуинов", но той е популяренмодел FC-28. Доста бюджетен вариант, така че всеки го обича и използва в своите проекти. Сензорът има две сонди, които пренасят електричество през земята. При суха почва, съпротивлението е по-голямо, а когато е мокро - по-малко. По принцип, този сензор се използва само в малки проекти, поради факта, че сондите са изработени от лош материал и рано или късно при излагане са покрити с корозия, след което сензорът спира да работи. Продължителността на обслужването на датчика може да бъде увеличена, ако тя се активира само когато данните се отстраняват от почвата, например, на всеки 6 часа. Някои майстори напълно променят сондите за по-качествени, направени от собствените си ръце, и дори от нула събират сензор за влажност за "Ардуино".
& lt; скрипт async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt; script & gt; (adsbygoogle = window.adsbygoogle || []). push ({}); Сензорът за влажността на почвата е свързан достатъчно просто. Обикновено с него се включва потенциометър и компаратор за контрол на чувствителността на сензора. Общо той има три контакта: логика, храна и земя. Могат да се свързват както цифрови, така и аналогови контакти. Между другото, работата в аналогов режим е по-удобна.
Пример за код:
int sensor_pin = A0;
int output_value;
void setup () {
Сериен. Започва (9600);
Serial.println ("Прочетете данните от сензора");
закъснение (2000);
}
void loop () {
output_value = analogRead (sensor_pin);
output_value = map (output_value, 55000100);
Serial.print ("Влажност:");
Serial.print (стойност на изхода);
Serial.println ("%");
закъснение (1000);
}
Най-напред определяме контактите, към които е свързан сензора към „Arduino“. След това четем данните оти ги изведете. Подобно на други сензори, е лесно да се работи с FC-28. И всичко това благодарение на готовите библиотеки и сензори.
Цена за Aliexpress: 30-50 рубли.
BENKET сензор
Този датчик за движение за "Arduin" се използва при проектирането на различни системи за сигурност. Открива елементи, движещи се от 0 до 7 метра. Ние няма да разгледаме принципа на работа, да пристъпим незабавно да свържем този сензор към „Arduino“.
& lt; script type = "text /javascript" & gt;
може да blockSettings = {blockId: "R-A-70350-45", renderTo: "yandex_rtb_R-A-70350-45", async:! 0};
ако (document.cookie.indexOf ("abmatch =")> = 0) blockSettings.statId = 70350;
Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");
Съдейки по прегледите, той също се свързва с три контакта: логика, храна и земя. Той работи чрез цифрови изходи.
Пример за код:
#define PIN_PIR 2
#define PIN_LED 13
void setup () {
Сериен ; започва (9600);
pinMode (PIN_PIR, INPUT);
pinMode (PIN_LED, OUTPUT);
}
void loop () {
int pirVal = digitalRead (PIN_PIR);
Сериен печат (digitalRead (PIN_PIR));
//Ако се открие движение
, ако (pirVal)
{
digitalWrite (PIN_LED, HIGH);
Serial.println (Открито е движение);
закъснение (2000);
}
else
{
//Serial.print ("Без движение");
digitalWrite (PIN_LED, LOW);
}
}
Определете контактите, към които е свързан сензорът, след което проверяваме наличието на движение. Работата с нея е много удобна и лесна, но има случаи на фалшиви положителни резултати. Цена за Aliexpress: 30-50 рубли.Ние правимЗаключения
Основните сензори за "Ардуините" бяха разгледани по-горе, които са първите, които се изучават от начинаещите радиолюбители. Както виждате, те са доста евтини, лесно се свързват и четат данни и изобщо отнемат само няколко реда. Освен тях, все още има огромен брой други сензори, дори и за пулсово измерване! Най-добре е да ги купувате на комплекти Aliexpress, така че ще струват още по-малко. Лесно е да се създаде, най-важното - да си спомня трите основни правила на роботиката!