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

Sensor Air Sensitivitas Tinggi pada MCP3008

Gunakan Sensitivitas Tinggi Phantom YoYo Sensor Air pada ADC 8-Channel 10-Bit MCP3008 dengan antarmuka SPI.

Pengantar

Latar belakang

Dalam proyek mendatang, saya menggunakan MCP3008 untuk memantau beberapa sensor. Dalam proyek ini saya ingin membahas detail penggunaan Sensor Air Sensitivitas Tinggi Phantom YoYo pada ADC 8-Channel 10-Bit MCP3008 dengan antarmuka SPI dengan Raspberry Pi 2, Windows 10 IoT Core, dan C#.

Menggunakan MCP3008

Sebuah ADC adalah konverter analog ke digital. Sinyal analog diubah menjadi angka dan dibaca ke dalam aplikasi Anda. MCP3008 adalah ADC 10 bit yang berarti menggunakan 10 bit untuk mewakili nilai pada saluran. Nilai akan direpresentasikan sebagai angka dari 0 hingga 1023 (untuk total 1024 nilai yang mungkin). Angka ini kemudian diubah menjadi nilai yang berarti. Sebagai contoh, katakanlah saya ingin mengukur tegangan pada salah satu saluran dan nilai yang terbaca dari saluran tersebut adalah 523. Saya tahu bahwa tegangan maksimum adalah 3.3V. Tegangan pada saluran dihitung menggunakan rumus

Nilai / Nilai Maks * Vref

menyelesaikan voltase yang saya dapatkan

523 / 1023 * 3.3

yang memberikan nilai 1.687V . Saya menghitung nilai ini dengan terlebih dahulu menormalkan pembacaan dan kemudian mengalikan nilai pembacaan yang dinormalisasi dengan nilai maksimum 3.3V yang diketahui.

Ketika mendapatkan pengukuran tegangan yang akurat itu penting, saya sangat menyarankan untuk mengukur tegangan sebenarnya dari Raspberry Pi dan menggunakan nilai ini dalam perhitungan Anda untuk mendapatkan konversi yang lebih akurat dari ADC. Ketika saya mengukur milik saya, saya menemukan bahwa keluarannya adalah 3.301V (nilai yang ditemukan dalam kode sumber). Tidak jauh dari yang sebenarnya, namun, jenis papan lain mungkin lebih bervariasi.

Tentu saja, ini masuk akal ketika saya ingin menghitung tegangan, tetapi setiap sensor memiliki arti yang berbeda. Untuk setiap sensor yang terhubung ke saluran pada MCP3008, saya perlu mengetahui detail spesifik dan menafsirkan pembacaan dengan tepat.

Pengkabelan MCP3008 sangat mudah. Chip itu sendiri ditandai dengan takik di salah satu ujungnya yang mewakili pin 1 dan 16 (lihat lembar data di sini).

Pin 1 hingga 8 adalah delapan pin input dan disebut sebagai saluran 0 hingga 7. Saluran 0 adalah pin 1. Pin 16 adalah Vdd dan terhubung ke sumber tegangan (baik 3.3V atau 5V pada Raspberry Pi). Pin 9 terhubung ke pin ground pada Raspberry Pi. Pin 15 dan 14 digunakan untuk referensi rangkaian analog. Pin 15 adalah Vref dan digunakan oleh MCP3008 untuk menentukan tegangan maksimum pada salah satu saluran. Dalam contoh saya, saya menghubungkan pin ini ke sumber 3.3V pada Raspberry Pi. Ketika tegangan diterapkan ke salah satu saluran, MCP menyesuaikan pembacaan sehingga 1023 mewakili 3.3V dan 0 mewakili 0V. Ini memungkinkan perhitungan yang saya gunakan di atas berfungsi. Pin 14 adalah pin ground analog. Dalam contoh saya, saya menghubungkannya ke pin ground pada Raspberry Pi. Jika ada kebutuhan untuk menjaga agar rangkaian analog tetap terisolasi dari rangkaian digital maka pin ini akan dihubungkan ke ground pada rangkaian analog. Empat pin yang tersisa, 10 hingga 13, adalah pin Antarmuka Serial SPI yang digunakan untuk berkomunikasi dengan Raspberry Pi. Diagram pengkabelan yang saya sertakan dengan proyek ini menunjukkan cara menghubungkan pin ini ke Raspberry Pi.

Dalam proyek ini, saya telah menyertakan pengukuran tegangan sederhana untuk mendemonstrasikan konsep ini. Pembacaan sensor air akan menunjukkan interpretasi alternatif dari nilai yang dibaca dari saluran.

Ikhtisar Proyek

Sensor

Dalam proyek ini saya telah menghubungkan dua sirkuit menjadi satu. Yang pertama adalah potensiometer sederhana yang memungkinkan tegangan divariasikan pada salah satu pin MCP3008 (saluran 0). Ini hanya untuk mendemonstrasikan cara kerja MCP3008. Sirkuit kedua adalah sensor air yang terhubung ke saluran kedua (saluran 1) pada MCP3008.

Sensor Air Phantom YoYo memiliki tiga pin. Pin pertama adalah ground (berlabel '-' pada perangkat) yang akan terhubung ke pin ground pada Raspberry Pi. Pin berikutnya adalah daya (berlabel '+' pada perangkat) dan akan terhubung ke pin 3.3V pada Raspberry Pi (perangkat juga dapat dihubungkan ke 5V). Pin ketiga dan terakhir adalah sinyal (berlabel pada perangkat. Pin ini memiliki sinyal tegangan yang akan bervariasi berdasarkan jumlah air pada perangkat. Perhatikan bahwa perangkat ini BUKAN sensor ketinggian air. Ini hanya mendeteksi variasi jumlah air yang bersentuhan dengan perangkat. Pin sumber akan terhubung ke salah satu input pada MCP3008.

Sirkuit

Rangkaian untuk mendukung sensor sangat sederhana. Perangkat terhubung langsung ke board Raspberry Pi tanpa memerlukan komponen tambahan apa pun.


Perangkat Lunak Proyek

Aplikasi

Aplikasi yang saya buat untuk proyek ini adalah Aplikasi Windows Universal dan menunjukkan dua meter di tampilan utama. Meter pertama menunjukkan tegangan arus yang diukur pada rangkaian potensiometer. Yang kedua menunjukkan pembacaan dari sensor air yang dinormalisasi ke nilai 0 hingga 100. Perangkat lunak ini juga memungkinkan kalibrasi sensor air. Tautan ke kode sumber dapat ditemukan di dekat bagian bawah halaman.

Perpustakaan MCP3008

Proyek perangkat lunak juga berisi proyek terpisah untuk berinteraksi dengan MCP3008. Kode ini dapat digunakan dalam aplikasi Anda untuk mengintegrasikan chip MCP3008 dengan mudah ke dalam proyek Anda.

Untuk menggunakannya, pertama-tama deklarasikan objek kelas sebagai berikut:

Mcp3008 pribadi _mcp3008 =null;

Di OnNavigatedTo acara tambahkan kode berikut:

_mcp3008 =Mcp3008 baru(0);

await_mcp3008.Initialize();

Untuk membaca tegangan dari saluran 0 gunakan baris kode berikut:

tegangan mengambang =_mcp3008.Read(Mcp3008.Channels.Single0).AsScaledValue(3.3f);

Perhatikan penggunaan Channel.Single0 yang menunjukkan bahwa nilai dibaca dari satu saluran. Dimungkinkan untuk menentukan bahwa perangkat membaca perbedaan antara dua pin. Ini dapat ditetapkan sebagai Mcp3008.Channels.Differential0 yang akan menunjukkan bahwa pengukuran harus diambil sebagai perbedaan antara saluran 0 dan saluran 1 di mana saluran 0 positif dan saluran 1 negatif. Kode sumber adalah dokumen dan akan memberikan tooltips yang menjelaskan setiap nilai.

Setelah Anda selesai menggunakan objek, biasanya di OnNavigatedFrom Anda acara membuang objek.

_mcp3008.Dispose();

_mcp3008 =null;

Memulai

Merakit Sirkuit

Gunakan panduan ini untuk merakit sirkuit saat menggunakan diagram yang terletak di dekat bagian bawah halaman sebagai panduan (perhatikan warna kabel opsional dan telah dipilih untuk membantu membuat sirkuit mudah diikuti saat dibangun).

Catatan: proyek ini menggunakan multimeter opsional untuk mengukur tegangan melintasi potensiometer. Hal ini dilakukan untuk membandingkan nilai dengan nilai yang dibaca oleh MCP3008. Perhatikan ini opsional. Jika Anda tidak memiliki multimeter maka Anda tidak akan dapat membandingkan tegangan ini. Hal ini dilakukan untuk menunjukkan bahwa nilai yang dibaca oleh MCP3008 sama dengan nilai yang dibaca oleh multimeter. Atur multimeter untuk mengukur tegangan DC seperti yang ditunjukkan pada gambar di bawah (multimeter Anda mungkin terlihat berbeda).

Fluke 87 Multimeter


Memulai Aplikasi

Pilih DebugLENGAN  konfigurasi dan Mesin Jarak Jauh . Sekarang klik kanan proyek, dan pilih Properti lalu  klik Debug menandai. Selanjutnya, masukkan alamat IP Raspberry Pi 2 di kolom Mesin jarak jauh, dan hapus centang Gunakan autentikasi .

Tekan F5 . Aplikasi akan diterapkan ke perangkat yang mungkin memakan waktu beberapa menit untuk pertama kalinya.

Video di bawah ini adalah demonstrasi aplikasi:

Catatan: Aplikasi ini menggunakan pengukur 360° linier untuk menampilkan jumlah air. Saya harus mencatat bahwa sensor ini tidak memiliki korelasi linier atau korelasi lain yang saya ketahui antara jumlah air dan pembacaan dari sensor. Itu menghasilkan nilai yang lebih kecil ketika ada beberapa tetes versus nilai yang lebih tinggi ketika lebih banyak air hadir. Saya menggunakan pengukur linier lebih untuk membantu memahami konsep ADC. Dimungkinkan untuk memasang sensor air mirip dengan cara saya menyambungkan Sensor Tegangan AC Opto-Isolated untuk menghasilkan sinyal tinggi atau rendah yang dapat ditangkap oleh pin GPIO. Perangkat ini dapat disambungkan untuk memberikan sinyal basah atau kering. Karena itu, saya memasang sensor air ini ke ADC karena saya ingin mendeteksi perbedaan antara sedikit air dan banyak air dan pendekatan yang diuraikan dalam proyek ini mencapai tujuan ini.

Sumber:   Sensor Air Sensitivitas Tinggi pada MCP3008


Proses manufaktur

  1. Penyemprot Rumput
  2. Rolling Pin
  3. Sensor gambar memiliki fitur daya rendah, kecepatan bingkai tinggi
  4. Raspberry Pi 1- Sensor Termometer Digital Kawat (DS18B20)
  5. Sensor analog memasukkan raspberry pi menggunakan MCP3008:wiring/installing/basic program
  6. Sensor Air Sensitivitas Tinggi pada MCP3008
  7. Sensor Lembut Meningkatkan Sensitivitas Ujung Jari untuk Robot
  8. ToughMet® 3TS Tabung TS105 (C72900)
  9. Pompa Tekanan Air Tinggi untuk Irigasi
  10. Apa itu Pompa Air Otomatis?