Platforma Arduino je jednou z nejlepších pro budování různých automatizovaných systémů. Kromě toho mnoho univerzit a vysokých škol používá Arduino, aby představilo studentům oblast robotiky. Arduino je skutečně velmi lehká, ale zároveň výkonná platforma pro konstrukci různých robotů a chytrých systémů. A samozřejmě, aby to celé zabralo méně času, prodávají se již hotové senzory. V obchodech je jich obrovské množství, takže je docela těžké se zmást při výběru toho správného. V tomto článku se podíváme na některé z hlavních senzorů Arduino a na to, jak fungují.
Kde koupit
Faktem je, že senzory v našich obchodech stojí spoustu peněz. A pokud se chystáte začít zkoumat platformu Arduino, pak stačí vědět, kde je můžete koupit za nízkou cenu. Odpověď je jednoduchá – čínské obchody. To může býtAliexpress, Joom, Pandao a další. Téměř všechny obchody tam nakupují senzory a prodávají je s obrovskou marží, která dosahuje až 300 %. Samozřejmě si nějakou dobu počkáte a nemůžete si být jisti kvalitou zboží, ale platit třikrát více za stejný senzor se také nevyplatí. Příklad: Aliexpress má sadu 36 senzorů, která stojí 800 rublů. Stejná sada se prodává v ruském obchodě za 3,5 tisíc rublů. Takže je to na vás.
Servopohon
Servopohon se používá při konstrukci robotů a různých chytrých systémů. Pomocí serva můžete otevřít dveře, zjistit stupeň rotace a mnoho dalšího. Ale většinou se používá při vytváření robotů. Maximální úhel natočení serva: 180 stupňů. Ale někdy v otevřených prostorách Aliexpress můžete vidět také možnosti s úhlem rotace 360 stupňů. To je docela základní prvek, téměř všechny lekce na Arduinu se senzory jím začínají. Servo se snadno připojuje, ovládací kód je velmi jednoduchý.
K připojení serva se používají pouze tři vodiče: zem, napájení, logika. Signální vodič (obvykle žlutý nebo hnědý) je připojen k jakémukoli kolíku s možností PWM (pulzní široká modulace) na Arduinu.
Příklad kódu:
include // zahrnout knihovnu pro práci se Servo servo1; // deklaruje proměnnou serva typu "servo1" void setup() // procedure setup { servo1.attach(11); //navázat servo na analogový výstup 11 } void loop() // procedura loop { servo1.write(0); // nastavení úhlu natočení na 0 delay(2000); // počkejte 2 sekundy servo1.write(90); // nastavení úhlu natočení na 90 delay(2000); // počkejte 2 sekundy servo1.write(180); // nastavení úhlu natočení na 180 delay(2000); // počkejte 2 sekundy
Nejprve do kódu přidáme knihovnu, která je již v Arduinu, a poté označíme, ke kterému pinu je servo připojeno. Jak vidíte, práce se servem je opravdu velmi jednoduchá, ovládání je pouze jedním operátorem.
Cena na Aliexpress: 80–100 rublů.
DHT-11
DHT-11 se používá k měření teploty a vlhkosti. Tento teplotní senzor pro Arduino je nejoblíbenější díky své ceně a vlastnostem. Měří teplotu v rozsahu od 0 do 50 stupňů a vlhkost od 20 do 80 %. V prodeji je také další verze tohoto senzoru, DHT-22, má větší rozsah měření, ale také stojí několikanásobně více. Pro jednoduché projekty se jeho použití nedoporučuje, takže každý preferuje DHT-11, který odvádí vynikající práci při měření. Napájení je možné od 3,3 do 5V. Obecně má samotný senzor 4 připojovací piny, ale v prodeji jsou moduly DHT-11, s nimi je mnohem pohodlnější pracovat, protože připojení je přes 3 piny a nemusíte trpět rezistory.
Připojení. Tento teplotní senzor je připojen k Arduinu pomocí tří kontaktů: zem, napájení a logika.
Příklad kódu:
zahrnout"DHT.h" define DHTPIN 2 // Stejné číslo PIN uvedené výše DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // 2 sekundové zpoždění float h=dht.readHumidity(); //Změření vlhkosti float t=dht.readTemperature(); //Změřte teplotu if (isnan(h) || isnan(t)) { // Zkontrolujte. Pokud se čtení nezdaří, vytiskne se "Čtení se nezdařilo" a program ukončí Serial.println("Čtení se nezdařilo"); vrátit se; } Serial.print("Vlhkost: "); Sériový tisk(h); Serial.print("%\t"); Serial.print("Teplota: "); Sériový tisk (t); Serial.println("C"); //Zobrazení indikátorů na obrazovce
Na samém začátku, stejně jako při práci se servem, je knihovna připojena. Mimochodem, o knihovně. Zpočátku není v balíčku Arduino, tuto knihovnu je třeba stáhnout. Existuje několik verzí této knihovny, v našem příkladu je použita ta nejstandardnější. Buďte opatrní při stahování, protože syntaxe se může lišit a kód nebude fungovat. Dále je také napsáno, ke kterému kontaktu je čidlo připojeno a jeho verze (DHT11 nebo DHT22). Stejně jako u serva je práce s tímto senzorem pro Arduino velmi snadná, využívá jen několik operátorů. Mimochodem, servo a dht11 často spolupracují, například při vytváření automatických oken, která se otevřou, pokud je v místnosti nebo skleníku příliš horko.
Cena na Aliexpress: 80–100 rublů.
Senzor půdní vlhkosti
Tento senzor se používá, kdyžnávrh automatické závlahy. S ním můžete měřit vlhkost půdy a následně tato data zpracovat a v případě potřeby rostlinu zalít. V prodeji je mnoho variant tohoto senzoru pro Arduino, oblíbený je však model FC-28. Docela rozpočtová možnost, takže ji každý miluje a používá ji ve svých projektech. Senzor má dvě sondy, které vedou elektřinu zemí. U suché půdy je odolnost větší a u vlhké půdy menší. V zásadě se tento snímač používá pouze v malých projektech, je to dáno tím, že sondy jsou vyrobeny z nekvalitního materiálu a dříve nebo později při aktivní práci zkorodují, načež snímač přestane fungovat. Životnost senzoru lze zvýšit jeho aktivací pouze při snímání dat ze země, například jednou za 6 hodin. Někteří řemeslníci dokonce mění sondy na lepší, vlastními silami, nebo dokonce sestavují senzor vlhkosti pro Arduino od začátku.
Připojení senzoru půdní vlhkosti je poměrně jednoduché. Obvykle je dodáván s potenciometrem a komparátorem pro ovládání citlivosti snímače. Celkem má tři kontakty: logiku, napájení a zem. Lze jej připojit k digitálním i analogovým kontaktům. Mimochodem, je pohodlnější pracovat v analogovém režimu.
Příklad kódu:
int sensor_pin=A0; int vystupni_hodnota; void setup() { Serial.begin(9600); Serial.println("Čtení dat ze senzoru"); zpoždění (2000); } void loop() { output_value=analogRead(sensor_pin);výstupní_hodnota=mapa(výstupní_hodnota, 550, 0, 0, 100); Serial.print("Vlhkost: "); Serial.print(výstupní_hodnota); Serial.println("%"); zpoždění(1000);
Nejprve určíme kontakty, ke kterým je senzor připojen k Arduinu. Poté z něj načteme data a zobrazíme je. Stejně jako s jinými senzory se s FC-28 snadno pracuje. A to vše díky hotovým knihovnám a senzorům.
Cena na Aliexpress: 30–50 rublů.
PIR senzor
Tento pohybový senzor pro Arduino se používá při konstrukci různých bezpečnostních systémů. Detekuje pohybující se prvky od 0 do 7 metrů. Nebudeme zvažovat princip fungování, přejděme k připojení tohoto senzoru k Arduinu.
Soudě podle recenzí je také připojen pomocí tří kontaktů: logika, napájení a zem. Funguje přes digitální výstupy.
Příklad kódu:
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)); //Pokud je detekován pohyb if (pirVal) { digitalWrite(PIN_LED, HIGH); Serial.println("Detekován pohyb"); zpoždění (2000); } else { //Serial.print("Bez pohybu"); digitalWrite(PIN_LED, LOW); }
Zjistíme kontakty, ke kterým je senzor připojen, a poté zkontrolujeme pohyb. Práce s ním je velmi pohodlná a snadná, ale existují případy falešných poplachů.
Cena zaAliexpress: 30-50 rublů.
vyvozování závěrů
Výše byly zvažovány hlavní senzory pro Arduino, které jsou vůbec prvními, které začínající radioamatéři studují. Jak vidíte, jsou poměrně levné, snadno se připojují a čtení dat trvá jen pár řádků. Kromě nich stále existuje obrovské množství dalších senzorů, a to i pro měření pulsu! Nejvýhodnější je koupit je na Aliexpress v sadách, takže budou stát ještě levnější. Je snadné vytvořit, hlavní věcí je zapamatovat si tři základní pravidla robotiky!