Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

UltraV:Pengukur Indeks UV Portabel

Komponen dan persediaan

Arduino Nano R3
× 1
Texas Instruments ML-8511
× 1
Layar OLED 128x64
× 1
Konverter stup-up DC-DC MT3608
× 1
Baterai CR2 (3v)
× 1
Tempat baterai CR2
× 1

Tentang proyek ini

Karena tidak dapat mengekspos diri di bawah sinar matahari karena masalah dermatologis, saya menggunakan waktu yang saya habiskan di pantai untuk membuat pengukur sinar ultraviolet. UltraV.

Itu dibangun di atas Arduino Nano rev3, dengan sensor UV, konverter DC/DC untuk menaikkan tegangan baterai 3v, dan layar OLED kecil. Target utama saya adalah membuatnya tetap portabel, sehingga saya dapat dengan mudah mengetahui indeks UV kapan saja dan di mana saja.

Langkah 1:Bagian dan Komponen

  • Mikrokontroler Arduino Nano rev.3
  • Sensor UV ML8511
  • Layar OLED 128×64 (SSD1306)
  • Peningkatan MT3608 DC-DC
  • Baterai CR2
  • Tempat baterai CR2
  • Beralih
  • Kasus penutup

Langkah 2:Sensor

ML8511 (Lapis Semiconductors) adalah sensor UV, yang cocok untuk memperoleh intensitas UV di dalam atau di luar ruangan. ML8511 dilengkapi dengan penguat internal, yang mengubah arus foto menjadi tegangan tergantung pada intensitas UV. Fitur unik ini menawarkan antarmuka yang mudah ke sirkuit eksternal seperti ADC. Dalam mode daya mati, arus siaga biasanya adalah 0,1µA, sehingga memungkinkan masa pakai baterai lebih lama.

Fitur:

  • Fotodioda sensitif terhadap UV-A dan UV-B
  • Penguat operasional tertanam
  • Keluaran tegangan analog
  • Arus suplai rendah (300µA tip.) dan arus siaga rendah (0.1µA tip.)
  • Paket pemasangan di permukaan kecil dan tipis (4.0mm x 3.7mm x 0.73mm, QFN keramik 12-pin)

Sayangnya, saya tidak memiliki kesempatan untuk menemukan bahan transparan UV untuk melindungi sensor. Setiap jenis penutup transparan yang saya uji (plastik, kaca, dll.) melemahkan pengukuran UV. Pilihan yang lebih baik tampaknya adalah kaca silika leburan kuarsa, tetapi saya belum menemukannya dengan harga yang wajar, jadi saya memutuskan untuk meninggalkan sensor di luar kotak, di udara terbuka.

Langkah 3:Operasi

Untuk mengukurnya, cukup hidupkan perangkat dan arahkan ke matahari selama beberapa detik, jaga agar tetap sejajar dengan arah sinar matahari. Kemudian perhatikan di layar:indeks di sebelah kiri selalu menunjukkan ukuran instan (satu setiap 200 ms), sedangkan bacaan di sebelah kanan adalah bacaan maksimum yang diambil selama sesi ini:itulah yang Anda butuhkan.

Di bagian kiri bawah tampilan, dilaporkan juga nomenklatur setara WHO (RENDAH, SEDANG, TINGGI, SANGAT TINGGI, EXTREME) untuk indeks UV yang diukur.

Langkah 4:Tegangan Baterai dan Pembacaan

Saya memilih baterai CR2, karena ukuran dan kapasitasnya (800 mAh). Saya menggunakan UltraV sepanjang musim panas dan baterainya masih membaca 2.8 v, jadi saya cukup puas dengan pilihannya. Saat beroperasi, sirkuit mengalirkan sekitar 100 mA, tetapi pengukuran pembacaan tidak memakan waktu lebih dari beberapa detik. Karena tegangan nominal baterai 3v, saya menambahkan konverter step up DC-DC untuk menaikkan tegangan hingga 9 volt dan menghubungkannya ke pin Vin.

Untuk menampilkan indikasi tegangan baterai di layar, saya menggunakan input analog (A2). Input analog Arduino dapat digunakan untuk mengukur tegangan DC antara 0 dan 5V, tetapi teknik ini memerlukan kalibrasi. Untuk melakukan kalibrasi, Anda memerlukan multimeter. Pertama, aktifkan sirkuit dengan baterai terakhir Anda (CR2) dan jangan gunakan daya USB dari komputer; mengukur 5V pada Arduino dari regulator (terdapat pada pin Arduino 5V):tegangan ini digunakan untuk tegangan referensi ADC Arduino secara default. Sekarang masukkan nilai terukur ke dalam sketsa sebagai berikut (misalkan saya membaca 5.023):

tegangan =((panjang)jumlah / (panjang)NUM_SAMPLES * 5023) / 1024.0; 

Dalam sketsa, saya mengambil pengukuran tegangan sebagai rata-rata lebih dari 10 sampel.

Langkah 5:Skema dan Koneksi

Langkah 6:Perangkat Lunak

Untuk tampilan, saya menggunakan U8g2lib yang sangat fleksibel dan kuat untuk jenis tampilan OLED ini, memungkinkan berbagai pilihan font dan fungsi pemosisian yang baik.

Mengenai pembacaan tegangan dari ML8511, saya menggunakan pin referensi Arduino 3.3v (akurat dalam 1%) sebagai dasar untuk konverter ADC. Jadi, dengan melakukan konversi analog ke digital pada pin 3.3V (dengan menghubungkannya ke A1) dan kemudian membandingkan pembacaan ini dengan pembacaan dari sensor, kita dapat memperkirakan pembacaan yang sebenarnya, tidak peduli berapa VIN-nya ( selama di atas 3.4V).

int uvLevel =averageAnalogRead(UVOUT);int refLevel =averageAnalogRead(REF_3V3);float outputVoltage =3.3 / refLevel * uvLevel; 

Unduh kode lengkapnya dari tautan berikut.

UltraV_OLED.ino.zip

Langkah 7:Kotak Enklosur

Setelah beberapa tes (buruk) untuk memotong secara manual jendela tampilan persegi panjang pada kotak plastik komersial, saya memutuskan untuk mendesain sendiri untuk itu. Jadi, dengan aplikasi CAD saya merancang sebuah kotak dan untuk membuatnya sekecil mungkin, saya memasang baterai CR2 secara eksternal di sisi belakang (dengan dudukan baterai yang direkatkan pada kotak itu sendiri).

Unduh file STL untuk casing enklosur, dari tautan berikut.

UltraV.stl.zip

Langkah 8:Kemungkinan Peningkatan di Masa Depan

  • Gunakan spektrometer UV untuk mengukur nilai Indeks UV real-time aktual dalam berbagai kondisi (spektrometer UV sangat mahal);
  • Rekam output dari ML8511 secara bersamaan dengan mikrokontroler Arduino;
  • Tulis algoritme untuk menghubungkan keluaran ML8511 dengan nilai UVI aktual secara real-time dalam berbagai kondisi atmosfer.

Langkah 10:Kredit

  • Carlos Orts:https://create.arduino.cc/projecthub/McOrts/mobil...
  • Forum Arduino:http://forum.arduino.cc/index.php?topic=3922.0
  • Memulai Elektronik:https://startingelectronics.org/articles/arduino/...
  • U8g2lib:https://github.com/olikraus/u8g2/wiki/u8g2referen...
  • Organisasi Kesehatan Dunia, Indeks UV:http://www.who.int/uv/intersunprogramme/activitie...
https://github.com/olikraus/u8g2/wiki/u8g2reference

Kode

  • UltraV
UltraVC/C++
Kode
 /* Fabio Marzocca @ 2018 Konversi analog ke digital bergantung sepenuhnya pada VCC. Kami berasumsi ini adalah 5V tetapi jika papan ditenagai dari USB, ini mungkin setinggi 5.25V atau serendah 4.75V:http://en.wikipedia.org/wiki/USB#Power Karena jendela yang tidak dikenal ini membuat ADC cukup akurat dalam banyak kasus. Untuk memperbaikinya, kami menggunakan referensi 3.3V onboard yang sangat akurat (akurat dalam 1%). Jadi dengan melakukan ADC pada pin 3.3V (A1) dan kemudian membandingkannya dengan pembacaan dari sensor, kita dapat memperkirakan pembacaan yang sebenarnya tidak peduli berapa VIN (asalkan di atas 3.4V).v. 2.0.0 - Juli 2018 - dipindahkan dari LCD 16x2 ke OLEDv. 2.0.1 - Sep 2018 - mengubah fungsi baca baterai*/#include #include #include U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data =*/ SDA, /* reset=*/ U8X8_PIN_NONE); // Semua Board tanpa Reset Tampilan#define FIRST_ROW_Y 16#define FIRST_ROW_X 16#define BOX_H 38//Define pin hardwareconst int UVOUT =A0; //Keluaran dari sensorconst int REF_3V3 =A1; //daya 3.3V pada boardconst Arduino int VBATT =A2; //Tegangan bateraimengambang maxUV =0; //Pengaturan readvoid indeks UV maks(){ pinMode(UVOUT, INPUT); pinMode(REF_3V3, INPUT); pinMode(VBATT, INPUT); u8g2.begin();}void loop(){ u8g2.firstPage(); lakukan { int uvLevel =averageAnalogRead(UVOUT); int refLevel =averageAnalogRead(REF_3V3); //Gunakan pin daya 3.3V sebagai referensi untuk mendapatkan nilai output yang sangat akurat dari sensor float outputVoltage =3.3 / refLevel * uvLevel; float uvIntensity =mapfloat(voltase keluaran, 0.99, 2.6, 0.0, 15.0); //Mengubah tegangan ke tingkat intensitas UV readBattery(); if (maxUV =0) &&(kategori <3)) { strcpy(strCat, "RENDAH"); } else if ((kategori>=3) &&(kategori <6)) { strcpy(strCat, "MODERATE"); } else if ((kategori>=6) &&(kategori <8)) { strcpy(strCat, "TINGGI !"); } else if ((kategori>=8) &&(kategori <10)) { strcpy(strCat, "SANGAT TINGGI!"); } else if (kategori>=11) { strcpy(strCat, "EKSTREM!"); } u8g2.setCursor(0,64); u8g2.print(strCat); }//Mengambil rata-rata pembacaan pada pin tertentu//Mengembalikan rata-rataint averageAnalogRead(int pinToRead){ byte numberOfReadings =16; unsigned int runningValue =0; for(int x =0; x   

Proses manufaktur

  1. Pembagi Tegangan
  2. Baterai Kentang
  3. Apa itu Pengukur?
  4. Multimeter
  5. Konstruksi Baterai
  6. Apa itu Mesin Las Spot Portabel?
  7. Mesin CMM Portabel – Tetap atau Portabel?
  8. Memahami baterai yang digunakan dalam mobil
  9. Berbagai cara menguji alternator
  10. 7 tanda alternator rusak atau rusak