Czujniki "Arduin": opis, charakterystyka, połączenie, opinie

Platforma Arduino jest jedną z najlepszych w projektowaniu różnych zautomatyzowanych systemów. Co więcej, na wielu uniwersytetach i uczelniach Arduinov jest używany do wprowadzenia studentów z dziedziny robotyki. Rzeczywiście, Arduino to bardzo lekka, ale jednocześnie potężna platforma do budowy różnych robotów i inteligentnych systemów. Naturalne jest to, że zajmuje to mniej czasu, sprzedawane są gotowe czujniki. Sklepy mają ich ogromną liczbę, więc trudno jest zaplątać się w wybór właściwego. W tym artykule przyjrzyjmy się niektórym głównym czujnikom Arduino i ich działaniu.

Gdzie kupić

Faktem jest, że czujniki w naszych sklepach są warte dużo pieniędzy. A jeśli masz zamiar zacząć uczyć się platformy Arduino, to musisz wiedzieć, gdzie je kupić po niskiej cenie. Odpowiedź jest prosta - chińskie sklepy. Może to być Aliexpress, Joom, Pandao i inne. Prawie wszystkie sklepy kupują czujniki i sprzedają je z ogromnym marginesem, który sięga nawet 300%. Oczywiście, musisz trochę poczekać, a jako produkt nie możesz być tego pewien, ale zapłacić za ten sam czujnik trzy razy więcej, nie jest tego wart. Przykład: Aliexpress ma zestaw 36 czujników, które kosztuje 800 rubli. Ten sam zestaw w rosyjskim sklepie sprzedaje się za 35 tysięcy rubli. Więc zdecyduj się na ciebie.


Napęd serwo

Napęd serwomechanizmów służy do konstruowania robotów i różnych inteligentnych systemów. Za pomocą serwonapędu możesz go otworzyćdrzwi, uczyć się kąta skrętu i wiele więcej. Ale w zasadzie jest używany podczas tworzenia robotów. Maksymalny kąt skrętu serwomotoru: 180 stopni. Ale czasami w dziedzinie Aliexpress można również zobaczyć warianty z kątem obrotu 360 stopni. Jest to dość podstawowy element, zaczynają się od niego prawie wszystkie lekcje na Arduino z czujnikami. Serwo jest łatwe do połączenia, kod programu jest bardzo prosty w zarządzaniu. Do podłączenia serwonapędu służą tylko trzy przewody: uziemienie, zasilanie, logika. Przewód sygnałowy (zwykle żółty lub brązowy) jest podłączony do dowolnego styku ze wsparciem PWM (modulacja pulsowania panoramicznego) na Arduino.


Przykład kodu:

#include //podłącz serwery do serwonapędu
Servo servo1; //deklaruj zmienny typ serwomodu "servo1"
void setup () //setup procedury
{
servo1.attach
; //przywiąż serwomechanizm do wyjścia analogowego 11
}
void loop () //procedura pętli
{
servo1.write

; //ustaw kąt obrotu na 0
opóźnienia (2000); //odczekaj 2 sekundy
servo1.write ; //ustaw kąt obrotu na 90
opóźnienia (2000); //odczekaj 2 sekundy
servo1.write (180); //ustaw kąt obrotu na 180
opóźnienia (2000); //czekaj przez 2 sekundy
}

Najpierw dodajemy do kodu bibliotekę, która już istnieje w Arduino, następnie wskazujemy, do którego serwera kontaktowego jest podłączony. Jak widać, praca z serwo jest naprawdę bardzo prosta, zarządzanie jest tylko jednym operatorem.

Cena za Aliexpress: 80-100 rubli.

DHT-11

DHT-11 służy do pomiaru temperatury i wilgotności. Ten czujnik temperatury dla Ardouins jest najbardziej popularnyze względu na jego cenę i możliwości. Mierzy temperaturę w zakresie od 0 do 50 stopni, a wilgotność od 20 do 80%. Istnieje również inna wersja tego czujnika na sprzedaż, seria pomiarów DHT-22 ma więcej, ale kosztuje kilka razy drożej. W przypadku prostych projektów jego użycie nie jest celowe, dlatego wszyscy preferują DHT-11, który doskonale radzi sobie z pomiarami. Moc może być zasilana od 3,3 do 5V. Ogólnie rzecz biorąc, sam czujnik ma 4 styki przyłączeniowe, ale na sprzedaż moduły DHT-11 działają z nimi znacznie wygodniej, ponieważ łączą się przez 3 styki i nie muszą cierpieć z rezystorami.


& lt; script type = "text /javascript" & gt;
zmienna blockSettings2 = {blockID "R-A-271049-5" renderTo "yandex_rtb_R-A-70350-39" asynchroniczny :! 0};
Jeżeli (document.cookie.indexOf ("abmatch =") i GT = 0) blockSettings2.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);

Połączenie. Ten czujnik temperatury jest podłączony do "Arduino" za pomocą trzech styków: masy, mocy i logiki.

,

kod badania:

include "DHT.h"
#define DHTPIN 2 //Ta sama ilość pianki, o czym była mowa powyżej
DHT dht (DHTPIN, DHT11);
void setup () {
Serial.begin (9600);
dht.begin ();
}
void loop () {
delay (2000); //2 sekundy opóźnienia
float h = dht.readHumidity (); //Mierzymy wilgotność
float t = dht.readTemperature (); //Zmierz temperaturę
, jeśli (isnan (h) || isnan (t)) {//Sprawdź. Jeśli certyfikat nie może być rozpatrzony, wyświetlany jest komunikat "Błąd odczytu", a program jest wyłączony
Serial.println ("Błąd odczytu");
powrót;
}
Serial.print ("Humidity:");
Serial.print (h);
Serial.print ("% t");
Serial.print ("Temperatura:");
Serial.print (t);
Serial.println ("C"); //Wyświetlanie wskaźników na ekranie
}

Na początku, podobnie jak w przypadku serwonapędu, biblioteka jest podłączona. Przy okazji, o bibliotece. Po pierwsze, nie ma w nim Arduino, biblioteka ta musi zostać pobrana. Istnieje kilka wersji tej biblioteki, w naszym przykładzie używamy standardowej. Zachowaj ostrożność podczas pobierania, ponieważ składnia może być inna, a kod nie będzie działać. Następnie jest napisane, który kontakt jest podłączony do czujnika i jego wersji (DHT11 lub DHT22). Podobnie jak w przypadku serwonapędu, praca z tym czujnikiem jest bardzo łatwa dla Arduin, wymagane jest tylko kilka operatorów. Nawiasem mówiąc, najbardziej dht11 servo i pracować razem, takich jak stworzenie zautomatyzowanego oknie, które zostanie otwarte, jeśli w pomieszczeniu lub w szklarni zbyt gorąco.


& lt; script type = "text /javascript" & gt;
zmienna blockSettings3 = {blockID "R-A-271049-6" renderTo "yandex_rtb_R-A-70350-44" asynchroniczny :! 0};
jeśli (document.cookie.indexOf ("abmatch =") i GT = 0) blockSettings3.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);

Cena za Aliexpress: 80-100 rubli.

Czujnik wilgotności gleby

Ten czujnik służy do projektowania automatycznego nawadniania. Pozwala zmierzyć zawartość wilgoci w glebie, a następnie przetworzyć te dane i jeśli trzeba posadzić roślinę. Istnieje wiele wariantów tego czujnika dla "Ardouinov", ale jest popularnymodel FC-28. Dość opcja budżetowa, więc wszyscy ją uwielbiają i używają w swoich projektach. Czujnik ma dwie sondy, które przewodzą prąd przez ziemię. W przypadku suchej gleby odporność jest większa, a gdy jest mokra - mniej. Zasadniczo czujnik ten jest używany tylko w małych projektach, ponieważ sondy wykonane są ze złego materiału i prędzej czy później po odsłonięciu są pokryte korozją, po której czujnik przestaje działać. Czas trwania usługi czujnika można zwiększyć, jeśli zostanie aktywowany tylko wtedy, gdy dane zostaną usunięte z gleby, na przykład co 6 godzin. Niektórzy rzemieślnicy całkowicie zmieniają sondy na bardziej jakościowe, wykonane własnymi rękami, a nawet od zera zbierają czujnik wilgotności dla "Arduino".

& lt; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

& lt; script & gt; (adsbygoogle = window.adsbygoogle || []). push ({});

Czujnik wilgotności gleby jest podłączony w wystarczającym stopniu. Zazwyczaj dołączany jest do niego potencjometr i komparator do kontroli czułości czujnika. W sumie ma trzy kontakty: logikę, jedzenie i ziemię. Można podłączyć zarówno styki cyfrowe, jak i analogowe. Nawiasem mówiąc, praca w trybie analogowym jest wygodniejsza.

Przykładowy kod:

int sensor_pin = A0;
int wartość_wyjściowa;

void setup () {
Serial.begin (9600);
Serial.println ("Odczytywanie danych z czujnika");
opóźnienie (2000);
}

void loop () {
output_value = analogRead (sensor_pin);
wartość_wysyłki = mapa (wartość_docelowa, 55000100);
Serial.print ("Humidity:");
Serial.print (output_value);
Serial.println ("%");
opóźnienie (1000);
}

Przede wszystkim definiujemy styki, do których czujnik jest podłączony do "Arduino". Potem odczytujemy dane zi wyprowadź je. Podobnie jak w przypadku innych czujników, łatwo jest pracować z FC-28. A wszystko dzięki gotowym bibliotekom i czujnikom.

Cena za Aliexpress: 30-50 rubli.

Czujnik BENKET

Ten czujnik ruchu dla "Arduin" jest używany do projektowania różnych systemów zabezpieczeń. Wykrywa elementy poruszające się od 0 do 7 metrów. Nie będziemy rozważać zasady pracy, przejdźmy od razu do podłączenia tego czujnika do "Arduino".


& lt; script type = "text /javascript" & gt;
blockSettings var = {blockID "R-A-70350-45" renderTo "yandex_rtb_R-A-70350-45", asynchroniczny :! 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);

Sądząc po recenzjach, łączy się także z trzema kontaktami: logiką, jedzeniem i ziemią. Działa poprzez wyjścia cyfrowe.

,

kod badania:

#define PIN_PIR 2
#define PIN_LED 13

nieważności konfiguracji () {
seryjny .begin (9600);

pinMode (PIN_PIR, INPUT);
pinMode (PIN_LED, OUTPUT);

}

void loop () {
int pirVal = digitalRead (PIN_PIR);
Serial.println (digitalRead (PIN_PIR));

//Jeśli wykryto ruch
, jeśli (pirVal)
{
digitalWrite (PIN_LED, HIGH);
Serial.println (Motion Detected);
opóźnienie (2000);
}
else
{
//Serial.print ("Brak ruchu");
digitalWrite (PIN_LED, LOW);
}
}


Określić styki, do których podłączony jest czujnik, po czym wykonujemy sprawdzenie obecności ruchu. Praca z nim jest bardzo wygodna i łatwa, ale istnieją przypadki fałszywych alarmów. Cena za Aliexpress: 30-50 rubli.

My robimyWnioski

Główne czujniki dla "Ardouinsów" zostały rozpatrzone powyżej, które są pierwszymi badanymi przez początkujących radioamatorów. Jak widać, są one niedrogie, łatwo się łączą i odczytują dane, a w ogóle zajmują tylko kilka linii. Oprócz nich wciąż istnieje ogromna liczba innych czujników, nawet do pomiaru tętna! Najlepiej jest je kupić na zestawy Aliexpress, więc będą one kosztować jeszcze mniej. Łatwo jest stworzyć, najważniejsze - zapamiętać trzy podstawowe zasady robotyki!

Powiązane publikacje