kategoriler: Mikrodenetleyici devreleri
Görüntülenme sayısı: 32016
Makaleye Yorumlar: 0
Arduino için en popüler sensörler
Sensörler çok çeşitli devrelerde ve projelerde kullanılır. Hiçbir otomasyon onlarsız yapamaz. Onlarla ilgileniyoruz çünkü elektronik tasarım ve popülerliğini basitleştirmek için bir proje oluşturuldu Arduino. Bu bir mikrodenetleyici ve onunla çalışmak ve programlamak için ihtiyacınız olan her şey ile bitmiş bir karttır. Bu makalede, Arduino için sensörleri ele alacağız, ancak diğer mikrodenetleyicilerle de kullanılabilirler.

Sensörler nelerdir?
Sensörler gözler, kulaklar ve diğer duyulardır mikrodenetleyici veya başka bir kontrol cihazı. Sinyalin doğası ve amaca göre ayırt edilirler.
Sinyalin doğası gereği:
-
analogu;
-
Dijital.
Ve amaç için, sensörler ölçüm içindir:
-
sıcaklık;
-
basıncı;
-
nem;
-
asit;
-
aydınlatma;
-
Su seviyesi veya diğer maddeler;
-
titreşim;
-
Ve diğer özel bileşenler.
Arduino hakkında konuşursak, sensörlerden bilgi alırken, dijital bir sinyal işler veya modülün analog çıkışındaki voltajı ölçeriz. Daha önce de belirtildiği gibi, sensörler dijital ve analogdur. Arduino için bazı modüller, onları birleştiren hem dijital hem de analog çıkışa sahiptir.
Cihaz tarafından
-
dirençli;
-
endüktif;
-
kapasitif;
-
piezoelektrik;
-
Fotoseller ve diğer tipler.
Işık veya ışık sensörü
Bir şeyin parlaklığını belirlemenin en kolay yolu - bir fotodirenç, fotodiyot veya fototransistör kullanın. Listelenen seçeneklerden birini Arduino'ya bağlayabilir veya özel bir kart satın alabilirsiniz - ışık sensörü.

Anahtar teslim bir çözümün faydaları nelerdir? İlk olarak, bir fotoselin aydınlatmasındaki değişiklikleri belirlemek için yeterli değildir, ayrıca düzenli veya ayarlı bir dirence ihtiyacınız vardır, belki de karşılaştırıcı, kademeli evet / hayır işlemi için. İkinci olarak, fabrikada üretilen bir baskılı devre kartı, menteşeli bir montajdan veya toplu bir karttan veya amatörlerin kullandığı diğer yollardan daha güvenilir olacaktır.

Aliexpress veya diğer online mağazalarda bulunabilir istek üzerine "fotosensifensensör" veya basitçe "ışık sensörü".
Bu modülün üç çıkışı vardır:
-
beslenme;
-
arazi;
-
Karşılaştırıcıdan dijital çıkış.
Veya dört pinli bir versiyon:
-
beslenme;
-
arazi;
-
Karşılaştırıcıdan dijital çıktı;
-
Analog.
Böylece kart üzerine yerleştirilmiş ayarlama direnci karşılaştırıcı zamanlamasını ayarlamak için bir dijital sinyal üretebilir.
Kullanım örnekleri:
-
Fotoğraf rölesi için ışık sensörü;
-
Alarm (verici ile eşleştirilmiş);
-
Işık huzmesini geçen nesnelerin sayacı vb.
Kesin değerleri elde etmek zordur, çünkü aydınlatma ile doğru ayarlama için doğru bir ışık ölçere ihtiyaç duyulacaktır. Fotodirençler, "karanlık veya aydınlık" gibi soyut değerleri belirlemek için daha uygundur.
Satışta böyle bir tahtaya ek olarak oldukça ilginç bulabilirsiniz GY-302 modülü. Bu, BH-1750 entegre devresine dayanan bir ışık sensörüdür. Özelliği, dijital bir modül olması, 16 bit kapasiteye sahip olması, i2c veri yolu üzerinden mikrodenetleyicilerle iletişim kurmasıdır. 16 bit, 1 ila 65356 Lux (Lx) arasındaki aydınlatmayı ölçmenizi sağlar.

Aşağıda bağlantısının bir diyagramı bulunmaktadır. SDA ve SCL'nin mikrodenetleyicinin analog pimlerine bağlı.

Bunun nedeni, I2C veri yolunun, aşağıdaki resme bakarak görülebilen bu arduino pimlerine uygulanmasıdır. Bu nedenle, bu gerçeğe aldanmayın; sensör dijitaldir.

Dijital sensörlerin avantajı, her örneğin değerlerini kontrol etmeniz, ölçülen değerleri gerçek ölçeklere çevirmek için tabloları derlemenize gerek olmamasıdır.Çoğu durumda, dijital sensörler için, hazır bir kütüphaneyi bağlamak ve gerçek birimlere dönüştürülen değerleri okumak yeterlidir.
GY-302 (BH-1750) için örnek çizim:

Eskiz nasıl çalışır?
Başlangıçta, programa I2C hattı ve BH1750 üzerinden iletişimden sorumlu olan Wire.h kütüphanesini bağlamamız gerektiğini söylüyoruz. Eylemlerin geri kalanı yorumlarda iyi açıklanmıştır ve sonuç olarak her 100 ms'de değeri Lux'daki sensörden okuyoruz.
GY-302 BH1750 özellikleri:
-
I2C mikrodenetleyici iletişimi
-
Göz hassasiyetine benzer spektral yanıt
-
Kızılötesi radyasyondan kaynaklanan hatalar en aza indirilir
-
Ölçüm aralığı: 0-65535 Lux
-
Besleme gerilimi: 3-5 V
-
Düşük akım tüketimi ve uyku fonksiyonu
-
50/60 Hz hafif gürültü filtreleme
-
1 I2C veriyolundaki maksimum sensör sayısı 2 adettir.
-
Kalibrasyon gerekmez
-
Akım tüketimi - 120 μA
-
Uyku modunda - 0.01 μA
-
Ölçülen dalga boyu - 560 nm
-
Yüksek çözünürlük modunda - 1 Lux
-
Düşük çözünürlük modunda - 4 Lux
-
ADC - 16 bit
Ölçümler için geçen süre:
-
Yüksek çözünürlük modunda - 120 ms
-
Düşük çözünürlük modunda - 16 ms
Engel sensörü
Bu sensörü düşünülecek bir sonraki sensör olarak seçtim, çünkü seçeneklerinden biri prensip olarak önceki bölümde tartışılan fotodirenç ile benzer olan bir fotodiyot veya fototransistör temelinde çalışır.

Adı "optik engel sensörü" dür. Ana fonksiyonel eleman, IR spektrumunda fotodiyot ve LED yayma ve almadır (bu nedenle, insan gözü tarafından görülemez ve ayrıca bir duyarlılık regülatörüne sahip bir karşılaştırıcı üzerine monte edilen bir eşik tertibatıdır. Bunu kullanarak, sensörün tetiklendiği mesafe dijital olarak ayarlanır.
Bağlantı şeması örneği:

Bir sensörden gelen sinyal işleme programı örneği.

Burada, sensörden gelen çıktı “1” ise, yani “bir engel var” anlamına gelirse, Arduino kartındaki veya 13. pime (aynı şey) bağlı LED yanar. En sık robotik ve alarmlarda kullanılır.

Mesafe sensörü
Önceki kopya bir alıcı, bir fotodiyot ve bir verici - bir LED'den oluşur. Ultrasonik mesafe sensörü ayrıca bir alıcı ve ultrasonik dalgaların bir vericisinden oluşur. Onun adı HC SR04.

Özellikler HC SR04:
-
5V besleme gerilimi
-
Kuvvetin çalışma parametresi t oka - 15 mA
-
Pasif akım <2 mA
-
Görüş açısı - 15 °
-
Dokunmatik Çözünürlüğü - 0.3 cm
-
Ölçüm açısı - 30 °
-
Darbe Genişliği - 10-6 s
-
Ölçüm aralığı: 2-400 cm.
Hata şu nedenlerle görüntülenir:
-
sıcaklık ve nem - örneğin DHT-11 veya DHT-22 ile sıcaklık ölçülerek ve ölçümleri düzeltmek için katsayılar girilerek azaltılabilir.
-
nesneye uzaklık;
-
nesnenin sensöre göre konumu (radyasyon diyagramına göre) yönünü değiştirmek ve doğru ayarlamalar yapmak için HC SR04'ü servo üzerine monte ederek ofsetlenebilir.
-
sensör modülü elemanlarının performans kalitesi.
Radyasyon kalıbı:

Kartın dört çıkışı vardır:
-
VCC - güç;
-
Trig - giriş sinyali;
-
Yankı - çıkış sinyali;
-
GND ortak bir teldir.

Okumalar nasıl işlenir?
1. TRIG girişine 10 μs süreli bir darbe göndeririz;
2. Modülün içinde darbe, birbirini 40 kHz frekansla takip eden ve yayıcıdan gönderilen 8 pulsluk bir pakete dönüştürülür;
3. Engelden yansıyan darbeler alıcıya ulaşır ve ECHO'ya gönderilir;
4. ECHO çıkışından alınan darbenin süresi, santimetre cinsinden mesafe elde etmek için 58.2'ye ve inç'e dönüştürmeniz gerekiyorsa 148'e bölünmelidir.
Örnek kod:

Sıcaklığı ölçün
Mikrodenetleyici kullanarak sıcaklığı ölçmenin en kolay yolu termokupl veya termistör kullanın. Termokupllar yüksek sıcaklıkları ölçmek, iç ve dış mekanları ölçmek için kullanılır - aşağıda biraz konuşacağım, ama şimdilik bir termokupl'a bakalım.

Her termokupl tipinin bir mikrodenetleyici ile çalışmak için kendi yaklaşımı vardır. Örneğin, K tipi bir termokupl vardır veya aynı zamanda - krom-alumel olarak da adlandırılır, 41 mV / santigrat derece hassasiyetle -200 ila +1400 santigrat derece arasında ölçülen sıcaklık aralığı vardır. Ve onun için IC max6675'e dayanan özel bir dönüştürücü var, soğuk kavşak sıcaklığını dengelemek için bir işleve sahip.

Bu modülle Arduino için aynı adlı kütüphaneyi kullanarak çalışabilirsiniz. Aşağıdaki şekilde, bu örnek için program kodu örneğini görebilirsiniz.

Ardından seri port monitöründe aşağıdakiler görüntülenir.

Ancak bir dijital sıcaklık sensörü de var. DS12B20, klasik projelerde uzun yıllar boyunca ve Arduino'nun ortaya çıkmasından çok önce kullanıldığı için klasik olarak adlandırılabilir.

Bu dijital entegre devre dahili cihazı aşağıdaki şekilde gösterilmiştir:

Kart bağlantı şeması:

Temel Özellikler ve Bilgiler DS18B20:
-
Hata 0,5 ° C'nin altındadır (-10 ° C ila + 85 ° C sıcaklık aralığında).
-
Kalibrasyon gerekmez
-
Ölçüm aralığı - -55 С ila + 125С
-
VCC, besleme gerilimi 3.3-5V.
-
yazılım tarafından ayarlanan 0.0625С'ye kadar çözünürlük;
-
Çözünürlük - 12 bit
-
Her örneğe benzersiz bir seri kodu atanır. Bu, bir projede birkaç parçayı kolayca kullanmak için gereklidir
-
İletişim Arabirimi - 1 Telli
-
Çemberleme gerekmez
-
Bir hattaki maksimum sensör sayısı 127 adettir.
-
Sahte güç modu - bu durumda, sensör doğrudan iletişim hattından beslenir. Aynı zamanda, 100C'den yüksek bir sıcaklık ölçümü garanti edilmez
Aşağıda ikili kodun DS18b20'den Santigrat derece cinsinden sıcaklığa dönüşüm tablosunu görüyorsunuz.

Sıcaklık değerlerini okumak için örnek program.

Atmosferik basınç sensörleri
Elektronik barometreler, atmosferik basınç sensörleri temelinde monte edilir. Aşağıdaki seçenekler yaygın olarak kullanılmıştır:
-
BMP180;
-
BMP280;
-
BME280.

Önceki iki örnek birbirine benziyorsa, o zaman BME280 sensörü - Bu minyatür bir hava istasyonu. İçinde 3 sensör bulunur:
-
sıcaklık;
-
basıncı;
-
Nem.
Teknik özellikleri:
-
Boyutlar 2,5 x 2,5 x 0,93 mm;
-
8 çıkışlı metal LGA muhafaza;
-
Besleme gerilimi 1.7 - 3.6V;
-
I2C ve SPI arabirimlerinin kullanılabilirliği;
-
Bekleme akımı tüketimi 0,1 µA.
Bu örnekler MEMS barometreleridir. MEMS, mikroelektromekanik anlamına gelir. Bu, çalışmaları için kapasitif fenomenler ve diğer ilkeleri kullanan mekanik bir mikroyapıdır. Aşağıda bağlamda böyle bir sensör örneği görüyorsunuz.

Bağlantı şeması örneği:

Ve program kodu örneği:

Programın mantığı basittir:
1. Sensörden altyordam (fonksiyon) değerini çağırın.
2. Barometreye entegre edilen sıcaklık sensörünün okuma talebi.
3. Sıcaklık sensörünü değerlendirmek için zaman bekliyoruz;
4. Sıcaklık ölçümlerinin sonucunu okuyun;
5. Basınç değerleri isteyin;
6. biz basınç ölçüm süresi bekliyor;
7. Basınç değerini okuyun;
8. Basınç değerini fonksiyondan döndürün.
İlginç bir gerçek, değerleri okumak için dört seçenek olması, startPressure işlevinde bağımsız değişken olarak belirtilmesi, ikinci işaretin 0 ila 3 arasında olması, burada 0 kabaca bir tahmin ve 3 tam bir tahmindir.
Hareket sensörü
Arduino için en yaygın hareket sensörü HC SR501 IR Sensör Modülü. Bu modülün bir özelliği, çalışma sonrasında çıkış sinyalinin tepki mesafesini ve gecikme süresini ayarlamasıdır.

Modül Özellikleri:
1. Besleme gerilimi 4,5 - 20 V.
2. Sessiz akım ≈ 50 μA;
3. Çıkış sinyal voltajı (lojik seviye): 3.3 V;
4. Çalışma sıcaklığı aralığı - -15 ° C ila 70 ° C;
5. Boyutlar: 32 * 24 mm;
6. Görüş alanı - 110 °;
7. Maksimum çalışma mesafesi - 3 ila 7 m (ayarlanabilir); 30 ° C'nin üstünde, bu mesafe azalabilir.
Bağlantı şeması:

Daha önce yayınlanan bir makalede onunla nasıl çalışacağımızı düşündük: Hareket sensörlerinin şemaları, çalışma prensibi ve bağlantı şemaları
Su seviye sensörü
Sıvı seviyesini gösterecek şekilde tasarlanmıştır.

Özellikler:
1. Besleme gerilimi 3-5V
2. Tüketim akımı> 20 mA
3. Analog
4. Ölçüm bölgesinin boyutları 40x16 mm
5. İzin verilen nem% 10 -% 90
Örnek kod:

Çıkış değerleri 0 (kuru durumda) ile 685 arasındadır (aslında suyun iletkenliğine bağlı olarak değişebilir). Tuz veya sert su seviyesini ölçerken elektrolizi unutmayın, paslanır.
Kaçak sensörü
Modül iki parçadan oluşur - sensörün kendisi ve karşılaştırıcı, LM393, LM293 veya LM193 üzerine inşa edilebilir.

Karşılaştırıcı sayesinde analog sinyal dijitale dönüştürülür.
Bağlantı şeması:

Kurulu Pinout:
-
VCC - güç, Apduino kartının gücüyle eşleşmelidir, çoğu durumda 5V'dur;
-
GND - ortak tel;
-
AO - analog sinyal;
-
DO dijital bir sinyaldir.
Karşılaştırma panosunda bir ayar direnci vardır, sensörün hassasiyetini ayarlar. Yağmur sinyali veya bir şey sızdırıyor gibi davranabilir ve böyle bir vinçle eşleştirildiğinde çalışabilir apartmanda boru hattı sızıntılarına karşı koruma olarak:

Video nasıl çalıştığını gösterir:
Nem sensörü
Yaygın olarak kullanılan otomatik sulama projelerinde, toprak nemini belirlemek için, öncekinin yanı sıra elektrotlar ve bir karşılaştırıcıya sahip bir tahtadan oluşur.

Hem analog hem de dijital modlarda çalışabilir. Bir motora dayalı vinçli otomatik sulama sistemi için bir bağlantı şeması örneği:

Ve bir nem sensöründen bir dijital sinyali işlemek için program kodu örneği:


Sonuç
Popüler sensörleri inceledik, ancak daha birçokları da var. Bunlar çeşitli titreşim sensörleri, jiroskoplar, ivmeölçerler, radyasyon sensörleri ve daha fazlasıdır.
Makalenin amacı, yeni başlayan bir elektronik mühendisi için projelerinin uygulanması için yararlı olabilecek çeşitli öğeleri bir yerde toplamaktı. Belirli bir sensörle ilgileniyorsanız - yorumları yazın ve daha ayrıntılı olarak ele alacağız.
Size kolaylık sağlamak için, sizin için tahmini maliyete sahip bir tablo ve Arduino için popüler sensörlerin bir listesini, makalede dikkate alındıkları sırayla derledik:Arduino için Sensörler
Fiyatlar Rusya veya Ukrayna'daki çevrimiçi mağazalardan alınır. Çin'de, 2 veya daha fazla kez daha ucuza mal oluyorlar.
Ayrıca bkz. electro-tr.tomathouse.com
: