Arduino platformu, çeşitli otomatik sistemler oluşturmak için en iyilerden biridir. Ayrıca, birçok üniversite ve kolej, öğrencileri robotik alanına tanıtmak için Arduino kullanıyor. Gerçekten de Arduino, çok hafif ama aynı zamanda çeşitli robotlar ve akıllı sistemler oluşturmak için güçlü bir platformdur. Ve elbette, hepsinin daha az zaman alması için hazır sensörler satılmaktadır. Mağazalarda çok sayıda var, bu yüzden doğru olanı seçerken kafanın karışması oldukça zor. Bu yazıda, bazı ana Arduino sensörlerine ve nasıl çalıştıklarına bakacağız.
Nereden satın alınır
Gerçek şu ki, mağazalarımızdaki sensörler çok pahalıya mal oluyor. Ve eğer Arduino platformunu keşfetmeye başlayacaksanız, bunları düşük bir fiyata nereden satın alabileceğinizi bilmeniz yeterlidir. Cevap basit - Çin mağazaları. OlabilirAliexpress, Joom, Pandao ve diğerleri. Neredeyse tüm mağazalar orada sensörler alıyor ve onları %300'e varan büyük bir marjla satıyor. Tabii ki, bir süre beklemeniz gerekecek ve malların kalitesinden emin olamazsınız, ancak aynı sensör için üç kat daha fazla ödemeye de değmez. Örnek: Aliexpress, 800 rubleye mal olan bir dizi 36 sensöre sahiptir. Aynı set bir Rus mağazasında 3.5 bin rubleye satılıyor. Bu yüzden sana kalmış.
Servo sürücü
Servo sürücü, robotların ve çeşitli akıllı sistemlerin tasarımında kullanılır. Bir servo yardımıyla kapıları açabilir, dönme derecesini öğrenebilir ve çok daha fazlasını yapabilirsiniz. Ama çoğunlukla robotların yaratılmasında kullanılır. Servonun maksimum dönüş açısı: 180 derece. Ancak bazen Aliexpress'in açık alanlarında 360 derecelik dönüş açısına sahip seçenekler de görebilirsiniz. Bu oldukça basit bir unsurdur, sensörlü Arduino'daki hemen hemen tüm dersler onunla başlar. Servonun bağlanması kolaydır, kontrol kodu çok basittir.
Servoyu bağlamak için sadece üç kablo kullanılır: toprak, güç, mantık. Sinyal kablosu (genellikle sarı veya kahverengi), Arduino'daki herhangi bir PWM (darbe geniş modülasyonu) etkin pinine bağlanır.
Kod örneği:
include // Servo servo1 ile çalışmak için kütüphaneyi dahil et; // "servo1" türünde bir servo değişkeni tanımla void setup() // prosedür setup { servo1.attach(11); //servoyu analog çıkışa bağla 11 } void loop() // prosedür loop { servo1.write(0); // dönüş açısını 0 gecikmeye ayarla(2000); // 2 saniye bekle servo1.write(90); // dönüş açısını 90 gecikmeye ayarla(2000); // 2 saniye bekle servo1.write(180); // dönüş açısını 180 gecikmeye ayarla(2000); // 2 saniye bekle }
Öncelikle Arduino'da bulunan kütüphaneyi koda ekliyoruz, ardından servonun hangi pine bağlı olduğunu belirtiyoruz. Gördüğünüz gibi, bir servo ile çalışmak gerçekten çok basit, kontrol sadece bir operatör.
Aliexpress fiyatı: 80–100 ruble.
DHT-11
DHT-11, sıcaklık ve nemi ölçmek için kullanılır. Arduino için bu sıcaklık sensörü, fiyatı ve özellikleri nedeniyle en popüler olanıdır. 0 ila 50 derece aralığındaki sıcaklığı ve %20 ila 80 arasındaki nemi ölçer. Ayrıca satışta bu sensörün başka bir versiyonu olan DHT-22, daha geniş bir ölçüm aralığına sahip, ancak aynı zamanda birkaç kat daha pahalı. Basit projeler için kullanımı tavsiye edilmez, bu nedenle herkes mükemmel bir ölçüm işi yapan DHT-11'i tercih eder. Güç 3,3 ila 5V arasında sağlanabilir. Genel olarak, sensörün kendisinde 4 bağlantı pini vardır, ancak satışta DHT-11 modülleri vardır, bağlantı 3 pin üzerinden olduğu için onlarla çalışmak çok daha uygundur ve dirençlerle uğraşmanıza gerek yoktur.
Bağlantı. Bu sıcaklık sensörü Arduino'ya üç kontak kullanılarak bağlanır: toprak, güç ve mantık.
Kod örneği:
dahil"DHT.h" define DHTPIN 2 // Yukarıda belirtilen pin numarası DHT dht(DHTPIN, DHT11); geçersiz kurulum() { Serial.begin(9600); dht.begin(); } geçersiz döngü() { gecikme(2000); // 2 saniye gecikmeli kayan nokta h=dht.readHumidity(); //Nem şamandırasını ölçün t=dht.readTemperature(); //Sıcaklığı ölçün if (isnan(h) || isnan(t)) { // Kontrol edin. Okuma başarısız olursa, "Read Failed" yazdırılır ve program Serial.println("Read Failed"); dönüş; } Serial.print("Nem: "); Seri baskı(h); Serial.print("%\t"); Serial.print("Sıcaklık: "); Seri baskı(t); Serial.println("C"); //Ekranda göstergeler gösteriliyor }
En başta, bir servo ile çalışırken olduğu gibi kitaplık bağlanır. Bu arada, kütüphane hakkında. Başlangıçta Arduino paketinde değil, bu kütüphanenin indirilmesi gerekiyor. Bu kitaplığın birkaç versiyonu vardır, örneğimizde en standart olanı kullanılmıştır. İndirirken dikkatli olun çünkü sözdizimi farklı olabilir ve kod çalışmayacaktır. Ayrıca sensörün hangi kontağa bağlı olduğu ve versiyonu (DHT11 veya DHT22) de yazılır. Bir servoda olduğu gibi, Arduino için bu sensörle çalışmak sadece birkaç operatör kullanarak çok kolaydır. Bu arada, genellikle servo ve dht11 birlikte çalışır, örneğin oda veya sera çok sıcaksa açılacak olan otomatik pencereler oluştururken.
Aliexpress fiyatı: 80–100 ruble.
Toprak nemi sensörü
Bu sensör şu durumlarda kullanılır:otomatik sulama tasarımı. Bununla birlikte, toprak nemini ölçebilir ve ardından bu verileri işleyebilir ve gerekirse bitkiyi sulayabilirsiniz. Arduino için bu sensörün birçok çeşidi satışta, ancak FC-28 modeli popüler. Oldukça bütçe seçeneği, bu yüzden herkes onu seviyor ve projelerinde kullanıyor. Sensörün yerden elektriği ileten iki probu vardır. Kuru toprakta direnç daha fazladır ve ıslak toprakta daha azdır. Temel olarak, bu sensör sadece küçük projelerde kullanılır, bunun nedeni probların zayıf malzemeden yapılmış olması ve er ya da geç aktif çalışma sırasında paslanmaları ve ardından sensörün çalışmayı durdurmasıdır. Sensörün ömrü, yalnızca yerden veri alırken, örneğin her 6 saatte bir etkinleştirilerek artırılabilir. Hatta bazı ustalar, probları kendileri tarafından yapılan daha iyi olanlarla değiştirir, hatta Arduino için sıfırdan bir nem sensörü monte eder.
Toprak nemi sensörünü bağlamak oldukça basittir. Genellikle bir potansiyometre ve sensörün hassasiyetini kontrol etmek için bir karşılaştırıcı ile birlikte gelir. Toplamda üç kontağı vardır: mantık, güç ve toprak. Hem dijital hem de analog kontaklara bağlanabilir. Bu arada analog modda çalışmak daha uygun.
Kod örneği:
int sensor_pin=A0; int çıktı_değeri; geçersiz kurulum() { Serial.begin(9600); Serial.println("Sensörden veri okuma"); gecikme(2000); } void loop() { output_value=analogRead(sensor_pin);çıktı_değeri=harita(çıktı_değeri, 550, 0, 0, 100); Serial.print("Nem: "); Serial.print(çıktı_değeri); Serial.println("%"); gecikme(1000); }
Öncelikle sensörün Arduino'ya bağlı olduğu kontakları belirliyoruz. Sonra ondan verileri okuyup görüntülüyoruz. Diğer sensörlerde olduğu gibi, FC-28 ile çalışmak kolaydır. Hepsi de hazır kütüphaneler ve sensörler sayesinde.
Aliexpress fiyatı: 30–50 ruble.
PIR sensörü
Arduino için bu hareket sensörü, çeşitli güvenlik sistemlerinin yapımında kullanılır. 0 ila 7 metre arasında hareketli elemanları algılar. Çalışma prensibini dikkate almayacağız, bu sensörü Arduino'ya bağlamaya geçelim.
İncelemelere bakılırsa, üç kontak kullanılarak da bağlanır: mantık, güç ve toprak. Dijital çıkışlar üzerinden çalışır.
Kod örneği:
define PIN_PIR 2 define PIN_LED 13 void setup() { Serial.begin(9600); pinMode(PIN_PIR, GİRİŞ); pinMode(PIN_LED, ÇIKIŞ); } void loop() { int pirVal=digitalRead(PIN_PIR); Serial.println(digitalRead(PIN_PIR)); //Eğer hareket algılanırsa if (pirVal) { digitalWrite(PIN_LED, HIGH); Serial.println("Hareket algılandı"); gecikme(2000); } else { //Serial.print("Hareket yok"); digitalWrite(PIN_LED, DÜŞÜK); } }
Sensörün bağlı olduğu kontakları belirliyoruz, ardından hareket kontrolü yapıyoruz. Onunla çalışmak çok rahat ve kolaydır, ancak yanlış pozitiflik vakaları vardır.
FiyatAliexpress: 30-50 ruble.
sonuç çıkarma
Yukarıda, acemi radyo amatörleri tarafından ilk çalışılan Arduino için ana sensörler ele alındı. Gördüğünüz gibi, oldukça ucuzlar, kolayca bağlanıyorlar ve veri okumak sadece birkaç satır alıyor. Bunlara ek olarak, nabzı ölçmek için bile çok sayıda başka sensör var! Onları Aliexpress'den setler halinde satın almak en karlı, bu yüzden daha ucuza mal olacaklar. Oluşturması kolay, asıl mesele robotiğin üç temel kuralını hatırlamak!