Daftar Isi:
- Langkah 1:
- Langkah 2: Daftar Konfigurasi
- Langkah 3: Daftar Data
- Langkah 4: Mode ADC ujung tunggal
- Langkah 5:
- Langkah 6: Mode ADC Diferensial
Video: Arduino dan TI ADS1110 16-bit ADC: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Dalam tutorial ini kami memeriksa penggunaan Arduino untuk bekerja dengan Texas Instruments ADS1110 – IC konverter analog-ke-digital 16-bit yang sangat kecil namun berguna.
Ini dapat beroperasi antara 2,7 dan 5,5 V sehingga juga baik untuk Arduino Due dan papan pengembangan tegangan rendah lainnya. Sebelum melanjutkan lebih jauh, silakan unduh lembar data (pdf) karena akan berguna dan dirujuk selama tutorial ini. ADS1110 memberi Anda pilihan ADC yang lebih akurat daripada yang ditawarkan oleh ADC 10-bit Arduino – dan itu relatif mudah digunakan. Namun itu hanya tersedia sebagai bagian kosong di SOT23-6.
Langkah 1:
Kabar baiknya adalah Anda dapat memesan ADS1110 yang dipasang pada papan breakout yang sangat nyaman. ADS1110 menggunakan bus I2C untuk komunikasi. Dan karena hanya ada enam pin, Anda tidak dapat mengatur alamat bus – sebagai gantinya, Anda dapat memilih dari enam varian ADS1110 – masing-masing dengan alamatnya sendiri (lihat halaman dua lembar data).
Seperti yang Anda lihat pada foto di atas, milik kami bertanda “EDO” yang cocok dengan alamat bus 1001000 atau 0x48h. Dan dengan contoh rangkaian kami telah menggunakan resistor pull-up 10kΩ pada bus I2C.
Anda dapat menggunakan ADS1110 sebagai ADC ujung tunggal atau diferensial – Tetapi pertama-tama kita perlu memeriksa register konfigurasi yang digunakan untuk mengontrol berbagai atribut, dan register data.
Langkah 2: Daftar Konfigurasi
Buka halaman sebelas lembar data. Register konfigurasi berukuran satu byte, dan saat ADS1110 direset pada siklus daya – Anda perlu mereset register jika kebutuhan Anda berbeda dengan default. Lembar data menjelaskannya dengan cukup rapi… bit 0 dan 1 menentukan pengaturan penguatan untuk PGA (penguat gain yang dapat diprogram).
Jika Anda hanya mengukur tegangan atau bereksperimen, biarkan ini sebagai nol untuk penguatan 1V/V. Selanjutnya, kecepatan data untuk ADS1110 dikontrol dengan bit 2 dan 3. Jika pengambilan sampel kontinu diaktifkan, ini menentukan jumlah sampel per detik yang diambil oleh ADC.
Setelah beberapa percobaan dengan Arduino Uno, kami menemukan bahwa nilai yang dikembalikan dari ADC sedikit berbeda saat menggunakan kecepatan tercepat, jadi biarkan sebagai 15 SPS kecuali diperlukan sebaliknya. Bit 4 menetapkan pengambilan sampel kontinu (0) atau pengambilan sampel satu kali (1). Abaikan bit 5 dan 6, namun selalu disetel sebagai 0.
Akhirnya bit 7 – jika Anda berada dalam mode pengambilan sampel satu kali, menyetelnya ke 1 meminta sampel – dan membacanya akan memberi tahu Anda apakah data yang dikembalikan baru (0) atau lama (1). Anda dapat memeriksa apakah nilai yang diukur adalah nilai baru – jika bit pertama dari byte konfigurasi yang muncul setelah data adalah 0, itu baru. Jika mengembalikan 1 konversi ADC belum selesai.
Langkah 3: Daftar Data
Karena ADS1110 adalah ADC 16-bit, ia mengembalikan data lebih dari dua byte – dan kemudian mengikuti nilai register konfigurasi. Jadi jika Anda meminta tiga byte, semuanya akan kembali. Data dalam bentuk “pelengkap dua”, yaitu metode menggunakan bilangan bertanda dengan biner.
Mengonversi dua byte itu dilakukan dengan beberapa matematika sederhana. Saat pengambilan sampel pada 15 SPS, nilai yang dikembalikan oleh ADS1110 (bukan tegangan) turun antara -32768 dan 32767. Nilai byte yang lebih tinggi dikalikan dengan 256, kemudian ditambahkan ke byte yang lebih rendah – yang kemudian dikalikan dengan 2,048 dan terakhir dibagi 32768. Jangan panik, seperti yang kita lakukan dalam sketsa contoh yang akan datang.
Langkah 4: Mode ADC ujung tunggal
Dalam mode ini Anda dapat membaca tegangan yang turun antara nol dan 2,048 V (yang juga merupakan tegangan referensi bawaan untuk ADS1110). Contoh rangkaian sederhana (dari lembar data).
Jangan lupa resistor pull-up 10kΩ pada bus I2C. Sketsa berikut menggunakan ADS1110 dalam mode default, dan hanya mengembalikan tegangan yang diukur:
// Contoh 53.1 - voltmeter satu sisi ADS1110 (0~2.048VDC) #include "Wire.h" #define ads1110 0x48 tegangan float, data; byte byte tinggi, byte rendah, configRegister; void setup() { Serial.begin(9600); Kawat.mulai(); } void loop() { Wire.requestFrom(ads1110, 3); while(Wire.available()) // memastikan semua data masuk { highbyte = Wire.read(); // byte tinggi * B11111111 byte rendah = Wire.read(); // byte rendah configRegister = Wire.read(); }
data = byte tinggi * 256;
data = data + byte rendah; Serial.print("Data>>"); Serial.println(data, DES); Serial.print("Tegangan >> "); tegangan = data * 2,048; tegangan = tegangan / 32768.0; Serial.print (tegangan, DEC); Serial.println("V"); penundaan (1000); }
Langkah 5:
Setelah diunggah, sambungkan sinyal untuk mengukur dan membuka monitor serial – Anda akan disajikan sesuatu yang mirip dengan gambar monitor serial yang ditunjukkan pada langkah ini.
Jika Anda perlu mengubah penguatan penguat penguatan internal yang dapat diprogram dari ADC – Anda harus menulis byte baru ke dalam register konfigurasi menggunakan:
Wire.beginTransmission(ads1110);Wire.write(byte konfigurasi); Kawat.endTransmisi();
sebelum meminta data ADC. Ini akan menjadi 0x8D, 0x8E atau 0x8F untuk nilai gain masing-masing 2, 4 dan 8 – dan gunakan 0x8C untuk mereset ADS1110 kembali ke default.
Langkah 6: Mode ADC Diferensial
Dalam mode ini Anda dapat membaca perbedaan antara dua tegangan yang masing-masing jatuh antara nol dan 5 V. Contoh rangkaian sederhana (dari lembar data).
Kami harus mencatat di sini (dan di lembar data) bahwa ADS1110 tidak dapat menerima tegangan negatif pada salah satu input. Anda dapat menggunakan sketsa sebelumnya untuk hasil yang sama – dan tegangan yang dihasilkan akan menjadi nilai Vin- dikurangi dari Vin+. Misalnya, jika Anda memiliki 2 V pada Vin+ dan 1 V pada Vin- tegangan yang dihasilkan akan menjadi 1 V (dengan penguatan disetel ke 1).
Sekali lagi kami harap Anda menemukan ini menarik, dan mungkin berguna. Posting ini dipersembahkan oleh pmdway.com - semuanya untuk pembuat dan penggemar elektronik, dengan pengiriman gratis ke seluruh dunia.
Direkomendasikan:
Cara Membuat dan Menyisipkan Tabel dan Menambahkan Kolom Dan/atau Baris Tambahan ke Tabel Itu di Microsoft Office Word 2007: 11 Langkah
Cara Membuat dan Menyisipkan Tabel dan Menambahkan Kolom Dan/atau Baris Tambahan ke Tabel Itu di Microsoft Office Word 2007: Pernahkah Anda memiliki banyak data yang sedang Anda kerjakan dan pikirkan sendiri…"bagaimana saya bisa membuat semua dari data ini terlihat lebih baik dan lebih mudah dipahami?" Jika demikian, maka tabel di Microsoft Office Word 2007 mungkin bisa menjadi jawaban Anda
Menghubungkan Pemrosesan dan Arduino dan Membuat Pengontrol GUI 7 Segmen dan Servo: 4 Langkah
Menghubungkan Pemrosesan dan Arduino dan Membuat 7 Segmen dan Pengontrol GUI Servo: Untuk beberapa proyek yang Anda buat perlu menggunakan Arduino karena menyediakan platform prototyping yang mudah tetapi menampilkan grafik di monitor serial Arduino bisa memakan waktu cukup lama dan bahkan sulit dilakukan. Anda dapat menampilkan grafik pada Arduino Serial Monitor bu
Arduino dan PCF8591 ADC DAC IC: 7 Langkah
Arduino dan PCF8591 ADC DAC IC: Pernahkah Anda menginginkan lebih banyak pin input analog pada proyek Arduino Anda, tetapi tidak ingin membayar untuk Mega? Atau apakah Anda ingin menghasilkan sinyal analog? Kemudian lihat subjek tutorial kami – IC NXP PCF8591. Ini memecahkan kedua masalah ini
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: 5 Langkah (dengan Gambar)
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: Mengontrol 8 sakelar relai menggunakan nodemcu dan penerima ir melalui wifi dan ir remote dan aplikasi android.Remote ir bekerja terlepas dari koneksi wifi.INI VERSI TERBARU KLIK DI SINI
Tampilan Suhu dan Kelembaban dan Pengumpulan Data Dengan Arduino dan Pemrosesan: 13 Langkah (dengan Gambar)
Tampilan Suhu dan Kelembaban dan Pengumpulan Data Dengan Arduino dan Pemrosesan: Pendahuluan: Ini adalah Proyek yang menggunakan papan Arduino, Sensor (DHT11), komputer Windows dan program Pemrosesan (dapat diunduh gratis) untuk menampilkan data Suhu, Kelembaban dalam format digital dan bentuk grafik batang, menampilkan waktu dan tanggal dan menjalankan hitungan waktu