Arduino platforma ir viena no labākajām dažādu automatizētu sistēmu izveidei. Turklāt daudzas universitātes un koledžas izmanto Arduino, lai iepazīstinātu studentus ar robotikas jomu. Patiešām, Arduino ir ļoti viegla, bet tajā pašā laikā jaudīga platforma dažādu robotu un viedo sistēmu konstruēšanai. Un, protams, lai tas viss aizņemtu mazāk laika, tiek pārdoti jau gatavi sensori. Veikalos to ir ļoti daudz, tāpēc ir diezgan grūti apjukt, izvēloties pareizo. Šajā rakstā mēs apskatīsim dažus galvenos Arduino sensorus un to darbību.
Kur nopirkt
Fakts ir tāds, ka sensori mūsu veikalos maksā daudz naudas. Un, ja jūs gatavojaties sākt izpētīt Arduino platformu, jums vienkārši jāzina, kur tos var iegādāties par zemu cenu. Atbilde ir vienkārša – ķīniešu veikali. Tas varētu būtAliexpress, Joom, Pandao un citi. Gandrīz visi veikali tur pērk sensorus un pārdod tos ar milzīgu rezervi, kas sasniedz pat 300%. Protams, jums būs jāgaida kāds laiks, un jūs nevarat būt pārliecināts par preču kvalitāti, taču maksāt trīs reizes vairāk par vienu un to pašu sensoru arī nav tā vērts. Piemērs: Aliexpress ir 36 sensoru komplekts, kas maksā 800 rubļu. Tas pats komplekts tiek pārdots Krievijas veikalā par 3,5 tūkstošiem rubļu. Tātad tas ir atkarīgs no jums.
Servopiedziņa
Servo piedziņa tiek izmantota robotu un dažādu viedo sistēmu projektēšanā. Ar servo palīdzību var atvērt durvis, uzzināt griešanās pakāpi un daudz ko citu. Bet pārsvarā to izmanto robotu izveidē. Maksimālais servo griešanās leņķis: 180 grādi. Bet dažreiz Aliexpress atklātajās vietās var redzēt arī opcijas ar 360 grādu griešanās leņķi. Tas ir diezgan pamata elements, gandrīz visas Arduino nodarbības ar sensoriem sākas ar to. Servo ir viegli pievienot, vadības kods ir ļoti vienkāršs.
Servo pieslēgšanai tiek izmantoti tikai trīs vadi: zemējums, jauda, loģika. Signāla vads (parasti dzeltens vai brūns) ir savienots ar jebkuru Arduino PWM (pulsa platās modulācijas) spraudni.
Koda piemērs:
include // iekļaut bibliotēku darbam ar Servo servo1; // deklarēt "servo1" tipa servo mainīgo void setup() // proceduras setup { servo1.attach(11); //saistīt servo ar analogo izvadi 11 } void loop() // procedura cilpa { servo1.write(0); // iestatīt rotācijas leņķi uz 0 delay(2000); // pagaidiet 2 sekundes servo1.write(90); // iestatīt griešanās leņķi uz 90 delay(2000); // pagaidiet 2 sekundes servo1.write(180); // iestatīt rotācijas leņķi uz 180 aizkave(2000); // uzgaidiet 2 sekundes }
Vispirms kodam pievienojam bibliotēku, kas jau atrodas Arduino, pēc tam norādām, ar kuru kontaktu ir pievienots servo. Kā redzat, darbs ar servo patiešām ir ļoti vienkāršs, vadība ir tikai viens operators.
Cena Aliexpress: 80–100 rubļi.
DHT-11
DHT-11 izmanto temperatūras un mitruma mērīšanai. Šis Arduino temperatūras sensors ir vispopulārākais cenas un funkciju dēļ. Mēra temperatūru diapazonā no 0 līdz 50 grādiem un mitrumu no 20 līdz 80%. Pārdošanā ir arī cita šī sensora versija DHT-22, tai ir lielāks mērījumu diapazons, taču tas arī maksā vairākas reizes dārgāk. Vienkāršiem projektiem tā lietošana nav ieteicama, tāpēc visi dod priekšroku DHT-11, kas lieliski veic mērījumus. Barošana var tikt piegādāta no 3,3 līdz 5 V. Kopumā pašam sensoram ir 4 savienojuma tapas, bet pārdošanā ir DHT-11 moduļi, ar tiem ir daudz ērtāk strādāt, jo savienojums ir caur 3 tapām un nav jācieš ar rezistoriem.
Savienojums. Šis temperatūras sensors ir savienots ar Arduino, izmantojot trīs kontaktus: zemējumu, barošanu un loģiku.
Koda piemērs:
iekļaut"DHT.h" define DHTPIN 2 // Tas pats PIN numurs, kas minēts iepriekš DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // 2 sekunžu aizkaves pludiņš h=dht.readHumidity(); //Mērīt mitruma pludiņu t=dht.readTemperature(); //Izmēra temperatūru, ja (isnan(h) || isnan(t)) { // Pārbaudiet. Ja lasīšana neizdodas, tiek izdrukāts "Read Failed" un programma iziet no Serial.println("Read Failed"); atgriešanās; } Serial.print("Mitrums: "); Sērijas druka(h); Serial.print("%\t"); Serial.print("Temperatūra: "); Sērijas druka(t); Serial.println("C"); //Ekrānā tiek rādīti indikatori }
Pašā sākumā, kā jau strādājot ar servo, bibliotēka ir pieslēgta. Starp citu, par bibliotēku. Sākotnēji tas nav Arduino pakotnē, šī bibliotēka ir jālejupielādē. Šai bibliotēkai ir vairākas versijas, mūsu piemērā tiek izmantota standarta versija. Esiet uzmanīgi lejupielādējot, jo sintakse var atšķirties un kods nedarbosies. Tālāk ir arī rakstīts, kuram kontaktam ir pievienots sensors un tā versija (DHT11 vai DHT22). Tāpat kā ar servo, darbs ar šo Arduino sensoru ir ļoti vienkāršs, izmantojot tikai dažus operatorus. Starp citu, bieži vien servo un dht11 darbojas kopā, piemēram, veidojot automātiskos logus, kas atveras, ja telpā vai siltumnīcā būs pārāk karsts.
Cena Aliexpress: 80–100 rubļi.
Augsnes mitruma sensors
Šis sensors tiek izmantots, jaautomātiskās apūdeņošanas dizains. Ar to jūs varat izmērīt augsnes mitrumu un pēc tam apstrādāt šos datus un, ja nepieciešams, laistīt augu. Pārdošanā ir daudz šī sensora variantu Arduino, taču FC-28 modelis ir populārs. Diezgan budžeta iespēja, tāpēc ikvienam tas patīk un izmanto to savos projektos. Sensoram ir divas zondes, kas vada elektrību caur zemi. Ar sausu augsni pretestība ir lielāka, bet ar mitru - mazāka. Pamatā šis sensors tiek izmantots tikai nelielos projektos, tas ir saistīts ar to, ka zondes ir izgatavotas no slikta materiāla un agri vai vēlu aktīva darba laikā tās sarūsē, pēc kā sensors pārstāj darboties. Sensora kalpošanas laiku var palielināt, to aktivizējot, tikai ņemot datus no zemes, piemēram, reizi 6 stundās. Daži amatnieki pat maina zondes uz labākām, pašu izgatavotām, vai pat no jauna samontē mitruma sensoru priekš Arduino.
Augsnes mitruma sensora pievienošana ir pavisam vienkārša. Parasti tam ir potenciometrs un salīdzinājums, lai kontrolētu sensora jutību. Kopumā tam ir trīs kontakti: loģika, jauda un zemējums. To var savienot gan ar digitālajiem, gan analogajiem kontaktiem. Starp citu, ir ērtāk strādāt analogajā režīmā.
Koda piemērs:
int sensor_pin=A0; int izvades_vērtība; void setup() { Serial.begin(9600); Serial.println("Datu nolasīšana no sensora"); kavēšanās (2000); } void loop() { output_value=analogRead(sensor_pin);izvades_vērtība=karte(izejas_vērtība, 550, 0, 0, 100); Serial.print("Mitrums: "); Serial.print(izejas_vērtība); Serial.println("%"); kavēšanās (1000); }
Vispirms mēs nosakām kontaktus, kuriem sensors ir pievienots Arduino. Tad mēs nolasām datus no tā un parādām tos. Tāpat kā ar citiem sensoriem, arī ar FC-28 ir viegli strādāt. Un tas viss, pateicoties gatavām bibliotēkām un sensoriem.
Cena Aliexpress: 30–50 rubļi.
PIR sensors
Šis kustības sensors priekš Arduino tiek izmantots dažādu drošības sistēmu konstruēšanā. Atklāj kustīgus elementus no 0 līdz 7 metriem. Mēs neapsvērsim darbības principu, pāriesim pie šī sensora savienošanas ar Arduino.
Spriežot pēc atsauksmēm, tas ir savienots arī, izmantojot trīs kontaktus: loģikas, strāvas un zemes. Tas darbojas, izmantojot digitālās izejas.
Koda piemērs:
define PIN_PIR 2 define PIN_LED 13 void setup() { Serial.begin(9600); pinMode(PIN_PIR, IEVADE); pinMode(PIN_LED, OUTPUT); } void loop() { int pirVal=digitalRead(PIN_PIR); Serial.println(digitalRead(PIN_PIR)); //Ja tiek noteikta kustība if (pirVal) { digitalWrite(PIN_LED, HIGH); Serial.println("Noteikta kustība"); kavēšanās (2000); } else { //Serial.print("Bez kustības"); digitalWrite(PIN_LED, LOW); } }
Mēs nosakām kontaktus, pie kuriem pievienots sensors, pēc tam pārbaudām kustību. Darbs ar to ir ļoti ērts un viegls, taču ir kļūdaini pozitīvu rezultātu gadījumi.
Cena parAliexpress: 30-50 rubļi.
secinājumu izdarīšana
Iepriekš tika apskatīti galvenie Arduino sensori, kas ir pirmie, ko pētījuši iesācēju radio amatieri. Kā redzat, tie ir diezgan lēti, viegli savienojas, un datu nolasīšana aizņem tikai dažas rindiņas. Papildus tiem joprojām ir milzīgs skaits citu sensoru, pat pulsa mērīšanai! Visizdevīgāk ir tos iegādāties Aliexpress komplektos, tāpēc tie maksās vēl lētāk. To ir viegli izveidot, galvenais ir atcerēties trīs robotikas pamatnoteikumus!