Kategori: Litar mikropengawal
Bilangan pandangan: 32016
Komen pada artikel: 0
Sensor yang paling popular untuk Arduino
Sensor digunakan dalam pelbagai rangkaian dan projek. Tiada automasi boleh dilakukan tanpa mereka. Kami berminat dengan mereka kerana projek telah dibuat untuk memudahkan reka bentuk dan mempopulerkan elektronik Arduino. Ini adalah papan selesai dengan mikrokontroler dan semua yang anda perlukan untuk bekerja dengannya dan program itu. Dalam artikel ini, kita akan mempertimbangkan sensor untuk Arduino, tetapi mereka juga boleh digunakan dengan mikrokontroler lain.

Apakah sensor?
Sensor adalah mata, telinga dan deria lain mikropengawal atau peranti kawalan lain. Mereka dibezakan dengan sifat isyarat dan dengan tujuan.
Dengan sifat isyarat dibahagikan kepada:
-
Analog;
-
Digital
Dan untuk tujuan itu, sensor adalah untuk mengukur:
-
Suhu;
-
Tekanan;
-
Kelembapan
-
Keasidan;
-
Penerangan
-
Tahap air atau bahan lain;
-
Getaran
-
Dan komponen khusus lain.
Jika kita bercakap mengenai Arduino, maka, apabila menerima maklumat daripada sensor, kita memproses isyarat digital, atau mengukur voltan daripada output analog modul. Seperti yang telah disebutkan, sensor adalah digital dan analog. Sesetengah modul untuk Arduino mempunyai kedua-dua output digital dan analog, yang menyatukan mereka.
Oleh peranti mereka
-
Resistive
-
Induktif
-
Kapasitif;
-
Piezoelektrik;
-
Photocells dan jenis lain.
Sensor cahaya atau cahaya
Cara paling mudah untuk menentukan kecerahan sesuatu - menggunakan photoresistor, photodiode atau phototransistor. Anda boleh menyambungkan salah satu pilihan yang disenaraikan ke Arduino atau membeli papan khas - sensor cahaya.

Apakah faedah penyelesaian solusinya? Pertama, untuk menentukan perubahan pencahayaan satu fotosel tidak mencukupi, anda juga memerlukan perintang yang tetap atau tuning, mungkin ia komparator, untuk mengerjakan operasi yes / no. Kedua, papan litar cetakan buatan kilang akan lebih dipercayai daripada pemasangan berengsel atau papan kelompok, atau cara lain yang digunakan amatur.

Pada aliexpress atau di kedai dalam talian lain, ia boleh didapati atas permintaan "PHOTOSENSITIVE-SENSOR" atau hanya "sensor cahaya".
Modul ini mempunyai tiga output:
-
Pemakanan;
-
Bumi
-
Output digital dari komparator.
Atau versi empat pin:
-
Pemakanan;
-
Bumi
-
Output digital dari komparator;
-
Analog
Jadi pada papan yang diletakkan perintang penalaan untuk menyesuaikan masa komparator boleh menghasilkan isyarat digital.
Contoh penggunaan:
-
Sensor cahaya untuk geganti foto;
-
Penggera (dipasangkan dengan pemancar);
-
Kaunter objek yang menyeberang rasuk cahaya, dll.
Sulit untuk mencapai nilai yang tepat, kerana meter cahaya yang betul diperlukan untuk penyelarasan yang betul dengan pencahayaan. Photoresistor lebih sesuai untuk menentukan nilai abstrak seperti "gelap atau cahaya."
Sebagai tambahan kepada lembaga yang dijual, anda boleh menemui cukup menarik Modul GY-302. Ini adalah sensor cahaya berdasarkan litar bersepadu BH-1750. Ciri-cirinya ialah ia adalah modul digital, ia mempunyai kapasiti 16 bit, berkomunikasi dengan mikrokontroler melalui bas i2c. 16 bit membolehkan anda mengukur pencahayaan dari 1 hingga 65356 Lux (Lx).

Berikut adalah gambarajah sambungannya. Anda mungkin mendapati bahawa SDA dan SCL disambungkan ke pin analog mikropengawal.

Ini disebabkan oleh bus I2C yang dilaksanakan pada pin arduino ini, yang dapat dilihat dengan melihat gambar berikut. Oleh itu, jangan tertipu oleh fakta ini; sensor adalah digital.

Kelebihan sensor digital ialah anda tidak perlu menyemak nilai setiap contoh, menyusun jadual untuk menterjemahkan nilai yang diukur ke dalam skala sebenar dan sebagainya.Dalam kebanyakan kes, bagi penderia digital, cukup untuk menyambungkan perpustakaan sedia ada dan membaca nilai-nilai yang diubah menjadi unit sebenar.
Lakaran contoh untuk GY-302 (BH-1750):

Bagaimana lakaran kerja?
Pada mulanya, kami memberitahu program yang perlu kita sambungkan perpustakaan Wire.h, yang bertanggungjawab untuk komunikasi melalui talian I2C, dan BH1750. Selebihnya tindakan yang dijelaskan dengan baik dalam komen, dan sebagai hasilnya, setiap 100ms kita membaca nilai dari sensor di Lux.
Ciri-ciri GY-302 BH1750:
-
Komunikasi mikrokontroler I2C
-
Tindak balas spektrum yang serupa dengan sensitiviti mata
-
Kesilapan akibat radiasi inframerah diminimumkan
-
Julat Mengukur 0-65535 Lux
-
Bekalan voltan: 3-5 V
-
Penggunaan semasa dan fungsi tidur yang rendah
-
Penapisan hingar cahaya 50/60 Hz
-
Jumlah maksimum sensor pada 1 bus I2C adalah 2 keping.
-
Tiada penentukuran diperlukan
-
Penggunaan semasa - 120 μA
-
Dalam mod tidur - 0.01 μA
-
Panjang gelombang yang diukur - 560 nm
-
Dalam mod resolusi tinggi - 1 Lux
-
Dalam mod resolusi rendah - 4 Lux
-
ADC - 16 bit
Masa diambil untuk pengukuran:
-
Dalam mod resolusi tinggi - 120 ms
-
Dalam mod resolusi rendah - 16 ms
Sensor halangan
Saya memilih sensor ini sebagai yang berikutnya untuk dipertimbangkan, kerana salah satu pilihannya berfungsi berdasarkan fotodiod atau phototransistor, yang sama pada prinsipnya kepada photoresistor yang dibincangkan di bahagian sebelumnya.

Namanya adalah "sensor halangan optik." Elemen fungsional utama adalah photodiode dan LED memancarkan dan menerima dalam spektrum IR (oleh itu, tidak dapat dilihat dengan mata manusia, serta perhimpunan ambang dipasang, sebagai contoh, pada komparator dengan pengatur sensitiviti. Menggunakannya, jarak di mana sensor dicetuskan disesuaikan, dengan cara digital.
Contoh rajah sambungan:

Satu contoh program pemprosesan isyarat dari sensor.

Di sini, jika output dari sensor adalah "1", yang bermaksud "terdapat halangan", LED pada papan Arduino atau disambungkan ke pin ke-13 (perkara yang sama) akan menyala. Paling sering digunakan dalam robotik dan penggera.

Sensor jarak
Salinan yang terdahulu terdiri daripada penerima, - fotodiod, dan pemancar, - LED. Sensor jarak ultrasonik juga terdiri daripada penerima dan pemancar gelombang ultrasonik. Namanya HC SR04.

Ciri-ciri HC SR04:
-
Voltan pembekalan 5V
-
Parameter operasi daya t oka - 15 mA
-
Arus aktif <2 mA
-
Melihat sudut - 15 °
-
Sentuh Resolusi - 0.3 cm
-
Sudut mengukur - 30 °
-
Lebar Pulse - 10-6 s
-
Julat pengukuran: 2-400 cm.
Kesilapan muncul disebabkan oleh:
-
suhu dan kelembapan - boleh dikurangkan dengan mengukur suhu dengan DHT-11 atau DHT-22, sebagai contoh, dan memasukkan pekali untuk membetulkan pengukuran.
-
jarak ke objek;
-
lokasi objek relatif terhadap sensor (menurut rajah radiasi) boleh diimbangi dengan memasang HC SR04 pada servo untuk mengubah arah dan membuat penyesuaian yang tepat.
-
kualiti prestasi elemen modul sensor.
Corak sinaran:

Lembaga mempunyai empat output:
-
VCC - kuasa;
-
Trig - isyarat input;
-
Echo - isyarat output;
-
GND adalah dawai biasa.

Bagaimana cara memproses pembacaan?
1. Kami menghantar nadi dengan tempoh 10 μs ke input TRIG;
2. Di dalam modul, denyut nadi ditukar kepada satu pek 8 denyutan yang mengikuti satu sama lain dengan kekerapan 40 kHz dan dihantar melalui pemancar;
3. Impuls yang tercermin dari halangan yang tiba di penerima dan output kepada ECHO;
4. Tempoh nadi yang diterima daripada output ECHO hendaklah dibahagikan dengan 58.2 untuk mendapatkan jarak dalam sentimeter dan dengan 148 jika anda perlu menukar kepada inci.
Contoh kod:

Ukur suhu
Cara termudah untuk mengukur suhu menggunakan mikrokontroler ialah gunakan thermocouple atau thermistor. Thermocouples digunakan untuk mengukur suhu tinggi, untuk mengukur dalaman dan luaran - yang saya akan bercakap tentang sedikit di bawah akan dilakukan, tetapi untuk sekarang, mari kita lihat termokopel.

Setiap jenis termokopel mempunyai pendekatan sendiri untuk bekerja dengan mikrokontroler. Sebagai contoh, terdapat termokopel K-jenis, atau kerana ia juga dipanggil - chromel-alumel, dengan pelbagai suhu yang diukur dari -200 hingga +1400 darjah Celcius dengan sensitiviti 41 mV / darjah Celcius. Dan untuknya terdapat penukar khas berdasarkan IC max6675, ia mempunyai fungsi untuk mengimbangi suhu persimpangan sejuk dan sebagainya.

Anda boleh bekerja dengan modul ini menggunakan perpustakaan nama yang sama untuk Arduino. Dalam gambar di bawah ini anda dapat melihat contoh kod program untuk kes ini.

Kemudian berikut dipaparkan pada monitor port siri.

Tetapi ada juga sensor suhu digital DS12B20, ia boleh dipanggil klasik, kerana ia telah digunakan selama bertahun-tahun dalam projek amatur, dan lama sebelum penampilan Arduino.

Litar bersepadu digital peranti dalaman ini ditunjukkan dalam gambar di bawah:

Rajah rajah sambungan:

Ciri Utama dan Maklumat DS18b20:
-
Kesalahan kurang daripada 0.5 ° C (dalam julat suhu dari -10 ° C hingga + 85 ° C).
-
Tiada penentukuran diperlukan
-
Julat pengukuran - dari -55 C hingga + 125˚
-
VCC, bekalan voltan 3.3-5V.
-
resolusi sehingga 0.0625º, yang ditetapkan oleh perisian;
-
Resolusi - 12 bit
-
Setiap contoh diberi kod bersiri unik. Ini diperlukan untuk menggunakan beberapa bahagian dalam satu projek dengan mudah
-
Interface Komunikasi - 1-Wire
-
Tidak diperlukan tegasan
-
Jumlah maksimum sensor pada satu baris adalah 127 keping.
-
Mod kuasa palsu - dalam kes ini, sensor dikuasakan terus dari talian komunikasi. Pada masa yang sama, pengukuran suhu yang lebih tinggi daripada 100C tidak dijamin
Di bawah ini anda melihat carta penukaran kod perduaan dari DS18b20 ke suhu dalam darjah Celsius.

Program contoh untuk membaca nilai suhu.

Sensor tekanan atmosfera
Barometer elektronik dipasang berdasarkan sensor tekanan atmosfera. Pilihan berikut digunakan secara meluas:
-
BMP180;
-
BMP280;
-
BME280.

Sekiranya kedua-dua keadaan terdahulu adalah serupa dengan satu sama lain, maka Sensor BME280 - Ini adalah stesen cuaca kecil. 3 sensor dibina di dalamnya:
-
Suhu;
-
Tekanan;
-
Kelembapan.
Ciri teknikalnya:
-
Dimensi 2.5 x 2.5 x 0.93 mm;
-
Logam LGA-perumahan, dilengkapi dengan 8 output;
-
Bekalan voltan 1.7 - 3.6V;
-
Ketersediaan antaramuka I2C dan SPI;
-
Sejajar dengan penggunaan semasa 0.1 μA.
Contoh-contoh ini adalah Barometer MEMS. MEMS bermaksud mikroelektrik mekanikal. Ini adalah mikrostruktur mekanikal yang menggunakan fenomena kapasitif dan prinsip-prinsip lain untuk kerjanya. Di bawah ini anda melihat contoh sensor sedemikian dalam konteks.

Contoh rajah sambungan:

Dan contoh kod program:

Logik program adalah mudah:
1. Memanggil bacaan subrutin (fungsi) dari sensor.
2. Meminta bacaan sensor suhu yang terintegrasi dalam barometer.
3. Kami sedang menunggu masa untuk menilai sensor suhu;
4. Bacalah hasil pengukuran suhu;
5. Minta nilai tekanan;
6. Kami sedang menunggu masa pengukuran tekanan;
7. Baca nilai tekanan;
8. Kembalikan nilai tekanan dari fungsi.
Fakta yang menarik ialah terdapat empat pilihan untuk membaca nilai-nilai, mereka dinyatakan sebagai argumen dalam fungsi startPressure, tanda kedua ialah dari 0 hingga 3, di mana 0 adalah anggaran kasar, dan 3 adalah anggaran yang tepat.
Sensor pergerakan
Sensor gerakan yang paling biasa untuk Arduino adalah Modul Sensor IR HC SR501. Ciri modul ini ialah ia mempunyai pelarasan jarak tindak balas dan masa kelewatan isyarat output selepas operasi.

Ciri Modul:
1. Bekalan voltan 4.5 - 20 V.
2. Aliran semasa ≈ 50 μA;
3. Voltan isyarat output (tahap logik): 3.3 V;
4. Rentang suhu operasi - dari -15 ° C hingga 70 ° C;
5. dimensi: 32 * 24 mm;
6. Bidang pandangan - 110 °;
7. Jarak operasi maksimum - dari 3 hingga 7 m (laras); Di atas 30 ° C, jarak ini mungkin berkurangan.
Rajah rajah:

Bagaimana untuk bekerja dengannya yang kami pertimbangkan dalam artikel yang diterbitkan lebih awal: Skim gerakan gerakan, prinsip kerja dan gambar rajah pendawaian mereka
Sensor paras air
Direka untuk menunjukkan tahap bendalir.

Ciri-ciri
1. Bekalan voltan 3-5V
2. Penggunaan semasa> 20 mA
3. Analog
4. Dimensi zon pengukuran 40x16 mm
5. Kelembapan yang dibenarkan 10% - 90%
Contoh kod:

Nilai output adalah dari 0 (dalam keadaan kering) hingga 685 (ia mungkin berbeza sebenarnya bergantung kepada kekonduksian air). Jangan lupa tentang elektrolisis, apabila mengukur tahap garam atau air keras, ia akan menghancurkan.
Sensor kebocoran
Modul ini terdiri daripada dua bahagian - sensor itu sendiri dan komparator, boleh dibina pada LM393, LM293 atau LM193.

Terima kasih kepada komparator, isyarat analog ditukarkan kepada digital.
Rajah rajah:

Papan Pinout:
-
VCC - kuasa, mesti sepadan dengan kuasa papan Apduino, dalam kebanyakan kes ia adalah 5V;
-
GND - wayar biasa;
-
AO - isyarat analog;
-
DO adalah isyarat digital.
Terdapat perintang penalaan pada papan komparator, ia menetapkan kepekaan sensor. Ia boleh bertindak sebagai isyarat hujan atau sesuatu yang bocor, dan apabila dipasangkan dengan kren seperti itu, ia boleh berfungsi sebagai perlindungan terhadap kebocoran saluran paip di apartmen:

Video menunjukkan bagaimana ia berfungsi:
Sensor kelembapan
Biasa digunakan dalam projek penyiraman automatik, untuk menentukan kelembapan tanah, dan yang sebelumnya terdiri daripada elektrod dan papan dengan komparator.

Ia boleh berfungsi dalam mod analog dan digital. Satu contoh rajah sambungan untuk sistem pengairan automatik dengan kren berasaskan enjin:

Dan contoh kod program untuk memproses isyarat digital dari sensor kelembapan:


Kesimpulannya
Kami memeriksa sensor yang popular, tetapi ada juga yang lain. Ini adalah pelbagai sensor getaran, gyroscopes, accelerometers, sensor radiasi dan banyak lagi.
Matlamat artikel ini adalah untuk mengumpulkan di satu tempat pelbagai elemen yang mungkin berguna kepada jurutera elektronik pemula untuk melaksanakan projek mereka. Sekiranya anda berminat dengan sensor tertentu - tulis dalam komen dan kami akan mempertimbangkannya dengan lebih terperinci.
Untuk kemudahan anda, kami telah mengumpulkan untuk anda meja dengan anggaran kos dan senarai sensor yang popular untuk Arduino, dalam susunan di mana mereka telah dipertimbangkan dalam artikel:Sensor untuk Arduino
Harga diambil dari kedai dalam talian di Rusia atau Ukraine. Di China, mereka kos 2 kali atau lebih murah.
Lihat juga di electro-ms.tomathouse.com
: