Bekerja dengan chip Cina ADC Hx711

Alasan untuk menulis posting ini adalah keinginan untuk berurusan dengan modul 24 bit delta sigma ADC converter berdasarkan chip Hx711. Konverter itu sendiri dirakit dalam bentuk modul yang sudah jadi sesuai dengan sirkuit switching yang direkomendasikan oleh pabrikan (????). Ada juga komentar tentang pengoperasian modul ini di situs web ini di blog Andrey Gerasimenko "ADC 711 dari 3.3V- tidak percaya pada dokumentasi berbahasa Mandarin dan tidak hanya ..." .

Untuk menguji modul ini, sebuah sirkuit berbasis mikrokontroler ATmega16, modul ADC, LCD dua jalur BC1602, berdasarkan pada pengontrol HD44780, empat tombol telah dipasang. Sebagai lingkungan pengembangan, kami menggunakan program AVR Code Vision, versi 1.25.9 profesional, AVR Studio 4, Versi 4.09.0.338, programmer USB AVR JTAG, yang memungkinkan tidak hanya pemrograman kristal, tetapi juga melacak langkah demi langkah, jika perlu, pelaksanaan program dalam mikrokontroler, hampir secara real time.



Sel beban buatan Tiongkok dengan batas berat maksimum 40 kg dipilih sebagai sumber sinyal untuk ADC. dan unit penyisipan sensor standar. Perlu dicatat bahwa penggunaan unit integrasi "asli" memungkinkan Anda untuk mendapatkan semua data output yang didalilkan dari tipe sel beban Single Point, model CZL A6. Jadi, pengukur regangan tipe Single Point, ketika menggunakan ukuran yang ditentukan dalam spesifikasi teknis platform untuk lokasi kargo yang ditimbang, dirancang sedemikian rupa sehingga sinyal ketidakseimbangan strain gage tidak tergantung pada posisi beban pada platform. Ini adalah sifat MEKANIK dari badan sensor: dimensi geometris, lokasi film pengukur regangan yang direkatkan, khususnya potongan “tulang” di tengah badan sensor, ukuran platform yang mempengaruhi torsi yang diterapkan pada badan sensor menentukan independensi ini.



Nah, sumber terakhir adalah "GOST 29329-92. Timbangan untuk penimbangan statis. Persyaratan teknis umum. " GOST ini mendefinisikan sifat instrumen pengukur berat badan. Penting juga untuk bekerja dengan program kantor EXCEL. Saya menggunakan EXCEL 2003 XP3. Ini memungkinkan Anda untuk dengan cepat memproses hasil menggunakan metode yang sudah jadi.

Saya harap semua informasi yang diperlukan untuk mengulangi eksperimen saya diberikan sepenuhnya.

Sekarang program itu sendiri yang saya gunakan untuk bekerja dengan modul. Program ini difokuskan pada PERIKSA, dan hampir tidak secara langsung, yaitu tanpa perubahan, itu dapat diterapkan untuk beberapa kebutuhan yang diterapkan. Meskipun, seperti yang mereka katakan, "tergantung di mana harus melamar."

Program itu sendiri adalah struktur blok. Ini terdiri dari 4 rutinitas dan utama utama kelima. Subrutin pertama: ReadCount, membaca data dari modul ADC dan membuatnya menjadi variabel Count.

CreatInput, menghasilkan array input data konversi dari 32 nilai.

CreatOutput, menghasilkan array output data konversi ADC dengan mengatur rata-rata bergerak dengan ukuran jendela 16 data.

Keys, program sederhana untuk merespons penekanan tombol.

Jadi itu saja. Variabel pada dasarnya semua global, terutama karena sumber daya mega diperbolehkan.



Program utama dimulai dengan membuat array input CreatInput, kemudian data input disaring menggunakan metode moving average. Pemilihan filter ini didasarkan pada yang berikut ini. Ketika program sedang berjalan, data pada tampilan mengubah nilainya dalam rentang yang cukup besar. Saya telah mengambil nilai-nilai ADC pada upaya nol pada platform dan ditabulasi. Nilai tersebut diperoleh dengan menggunakan JATAG USB debugger di lingkungan AVR Studio.



Dalam file Excel "Akuisisi Data", pada tab "Moving Average", hasil pemfilteran data InputBuff berosilasi (amplitudo osilasi 436 unit) dengan jendela rata-rata interval 3,12,16 ditampilkan. Hasilnya ditunjukkan dalam sel A37-A40. Dari sini terlihat bahwa yang paling efektif, dalam hal ini, adalah rata-rata bergerak dengan jendela 16 sampel.

Grafik yang dibuat menunjukkan ini dengan jelas. Data diambil dari pengontrol yang berfungsi, dihentikan pada saat transisi ke prosedur tampilan data. Contoh-contoh ilustrasi dari pengambilan data tersebut ditunjukkan dalam gambar.



Tidak ada metode penyaringan data, melalui penggunaan berbagai filter digital, dengan cara apa pun dapat “menjinakkan” fluktuasi input. Jika Anda melihat grafik dari data input, maka distribusi Gaussian di sini bahkan tidak "berbau". Sebagaimana dikonfirmasi oleh pengguna Nikopol_86 di blog "... jangan percaya dokumentasi China"

Nikopol_86 5 Februari 2019 pada 09:27 0


Sejujurnya, ia memiliki cukup banyak rasio sama sekali. Saya melakukan riset pada distribusi kepadatan kode ADC yang dikeluarkan dengan sirkuit input yang disingkat, sehingga ada penyebaran hingga 1000 1_5V dan nifiga bukan hukum distribusi normal, yang menunjukkan bahwa kabel papan bermasalah, atau dengan ADC, atau semuanya diambil bersamaan . Saya juga memperhatikan bahwa dia juga tidak memiliki stabilisasi suhu, dan kisaran suhu operasi yang diklaim tidak sesuai dengan kenyataan. Jika hanya karena ketika Anda menghubungkan pengukur regangan 5 kg ke ADC, mengubah suhu di ruangan sebesar 1 derajat akan membawa pembacaan sebesar 2 gram, dan jika Anda menghangatkan sirkuit mikro dengan jari Anda, bacaan akan terbang hingga 5-7 gram. Secara umum, saya membuat kesimpulan sendiri bahwa hanya dispenser makanan kucing yang dapat dibuat pada perangkat ini,di mana akurasi dalam satu perhentian trem akan lebih dari cukup. Dan sayangnya, solusi normal tidak murah, karena Anda harus menggunakan ADC berkualitas tinggi dari AO atau T1.

Seperti yang Anda lihat, kesimpulannya dikonfirmasi. Benar, hal yang sama berlaku:
jushabrauser 4 Februari 2019 pada 12:52 hal.
Dengan rasio sinyal-ke-noise <1, ini tidak akan pernah membantu.
Bahkan dengan rangkaian jembatan.

Oleh karena itu, dalam kondisi normal (tanpa matematika dan / atau sirkuit khusus) setidaknya 8 bit orde rendah memberikan omong kosong (kemungkinan besar).

24 bit Cina jujur ​​untuk 350 rubel? Jangan katakan sandal saya.
Jika setrika itu sendiri "berbohong" - apa yang dapat Anda lakukan?
Di sini, bahkan filter nonlinear orde ketiga tidak akan membantu, karena data sumber bukan kue.

Dari tempat inilah saya ingin melihat kemampuan modul ini dalam komposisi timbangan. Mencari masalah pada jaringan dengan jitter dari bit terakhir ADC, dibawa ke forum kazus.ru/forums/showthread.php?t=105320&page=4. Inilah keseluruhan diskusi tentang menstabilkan bacaan. Namun, tidak ada metode matematika yang diusulkan "menenangkan" input data yang saya terima. Dari "perangkat keras" itu sendiri, untuk menstabilkan pembacaan, diperkenalkan: koneksi ground digital dan analog, serta hubungan pendek input B ke ground. Kami menggunakan perisai penuh dan memberi daya modul dari baterai 6v (diikuti oleh stabilizer 7805) secara terpisah dari sirkuit pengontrol. Tidak ada hasil, data input berayun ...

Jadi, kategori 24 "bersih" tidak dapat diperoleh dan alasannya di sini menurut saya adalah sirkuit / kualitas rendah. Jadi, Anda perlu memangkas rentang konversi yang dihasilkan. Untuk ini, dalam program ReadCount, garis diperkenalkan dengan membagi data dengan 100. 100 sedikit kurang dari 2 hingga 8 derajat. UNTUK. Konversi AD datang dalam 16 bit. Namun, bahkan batasan seperti itu tidak membuat kesaksian itu dapat diandalkan. Dan alasannya di sini adalah sifat strain gauge.

Jadi, setelah menerapkan proses kalibrasi (menghubungkan nilai ADC dan berat pada platform), berat ditampilkan dalam gram. Ia menampilkan 500 gram sebagai angka 500, satu kg sebagai 1000. Harga pembagian adalah 1 gram. Itu kami dapatkan dengan sensor 40 kg 40.000 divisi. Menurut data teknis untuk load cell, kita bisa dapatkan dari sensor hanya 3.000 divisi (simbol C3 atas nama sensor). Jadi harga pembagian harus (40000/3000) = 13,3 gram. Namun, menurut GOST 29329, metrologi berat tidak beroperasi dengan angka 3. Digit harus digunakan:

2.1.3 Nilai nilai divisi kalibrasi (e), harga pembagian skala (d) dan resolusi pembacaan (dd) dalam satuan massa harus dipilih dari yang berikut: 1X10a; 2X10a; 5X10a, di mana a adalah bilangan bulat positif, negatif atau nol.

UNTUK. harga pembagian untuk sensor ini, dijamin oleh pabrik 10 gram. Artinya, format output harus 0,0x kg. di mana x = 1,2,3, ... .0. Mari kita coba membuat pembagian harga 5 gram. Tindakan programatik yang relevan dicantumkan. Setelah pembatasan seperti itu, kami "mengambil" dari sensor 40.000 / 5 = 8.000 divisi, yang 2,6 kali lebih banyak dari yang diizinkan. Setelah asumsi ini, timbangan yang dihasilkan bekerja cukup mantap.

Pernyataan di atas tentang load cell yang diterapkan dan "resolusinya" tidak memungkinkan kami untuk menyatakan secara meyakinkan bahwa modul ini tidak dapat menghasilkan konversi 24-bit. Namun, saya telah menguji sensor ini untuk operasi dengan resolusi 1 gram, pada perangkat lain, dengan konverter AD yang berbeda. Pada perangkat ini, pengoperasian sensor dan konversi dapat dianggap memuaskan, karena fluktuasi bobotnya tidak lebih dari 3 gram.

Apa yang tidak memungkinkan penggunaan ADC ini dalam perdagangan? Nah, hal pertama dan terpenting adalah ketergantungan pengukuran pada suhu. Kedua, menggunakan operasi pembagian dan multiplikasi yang dibangun di dalam ATMEGA, terutama untuk 8 bit, sulit untuk mengkalibrasi timbangan pada seluruh rentang berat pada kondisi ini. Harus diingat bahwa program tidak bereaksi dengan cara apa pun terhadap kelebihan sensor.

Bagaimana cara mengatasi ketidaknyamanan ini. Pertama, masukkan sensor suhu dan sesuaikan pembacaan bobot dari nilai suhu. Yang cukup rumit. "Lebih murah" adalah untuk memperkenalkan opsi kalibrasi, untuk beban yang berbeda dan tergantung pada kesalahan yang disebabkan oleh suhu, kalibrasi berat yang digunakan dalam pekerjaan.

Yang kedua lebih sulit. Ganti prosedur perkalian dan pembagian dengan operasi tabular dan geser. Saya pikir ini adalah cara terbaik untuk menggunakan modul ini dalam praktik membangun bobot.

Untuk melengkapi deskripsi persyaratan untuk membuat program untuk timbangan, perlu menggunakan "Program kalibrasi timbangan metrologi (sertifikasi)" yang dilampirkan pada setiap saldo.

Kesimpulan:Pembuatan skala berdasarkan m / s Hx711 dimungkinkan untuk semua persyaratan metrologi untuk skala tersebut. Pengenalan koreksi untuk ketergantungan suhu konversi harus disediakan dalam prosedur terpisah. Menggunakan modul dengan resolusi lebih dari 16 bit memerlukan pendekatan dan kontrol terpisah.

Source: https://habr.com/ru/post/undefined/


All Articles