Bagaimana saya bisa menghubungkan analog ke digital converter (ADC)?

22

Saya mencari opsi untuk ADC pada Rasbperry Pi. Saya bertanya-tanya apa yang mungkin sejauh ini. Tentu saja mudah dan murah itu bagus.

John La Rooy
sumber
Untuk apa Anda membutuhkannya?
Jivings
@ Jivings, saya sedang memikirkan beberapa proyek yang dapat dilakukan dengan laju sampel yang relatif rendah.
John La Rooy

Jawaban:

15

Adafruit memiliki tutorial yang baik tentang penggunaan MCP3008 ($ 3,75) - ADC 8-Bit 10-Bit Dengan Antarmuka SPI untuk mengontrol volume file mp3, tetapi harus memberi Anda titik awal yang baik untuk proyek analog ke digital.

Steve Robillard
sumber
1
Baik Arduino dan PICAXE adalah solusi yang salah di sini.
Alex Chamberlain
Saya tidak setuju bahwa Arduino adalah solusi yang salah di sini. Arduino menggunakan USB sedangkan MCP3008 menggunakan SPI. Arduino sudah siap dipasang dan siap digunakan di luar kotak sementara MCP3008 akan membutuhkan beberapa aksesori dan pekerjaan untuk memulai. MCP3008 lebih murah, tetapi pada saat Anda menambahkan semua hal yang Anda butuhkan (GPIO keluar, memasang papan tempat memotong roti ..) kesenjangan biaya tidak sebesar yang terlihat. Secara keseluruhan, jika Anda ingin bereksperimen dan membalikkan Arduino dengan cepat adalah opsi yang unggul, tetapi jika Anda mencari instalasi permanen, saya akan setuju bahwa MCP3008 berfungsi paling baik.
Dan B
8

ADS1115

ADS1113, ADS1114, dan ADS1115 adalah konverter analog-ke-digital (ADC) presisi dengan resolusi 16 bit yang ditawarkan dalam paket QFN-10 ultra kecil, tanpa timbal atau paket MSOP-10. ADS1113 / 4/5 dirancang dengan presisi, kekuatan, dan kemudahan implementasi. ADS1113 / 4/5 menampilkan referensi onboard dan osilator. Data ditransfer melalui antarmuka serial yang kompatibel dengan I²C; empat alamat slave I²C dapat dipilih. ADS1113 / 4/5 beroperasi dari catu daya tunggal mulai dari 2.0V hingga 5.5V.

Pertama, Anda perlu memastikan modul I²C dimuat . Selanjutnya hubungkan ADS1115 seperti yang ditunjukkan di bawah ini. Ada 4 alamat berbeda yang mungkin bergantung pada pin ADDR yang terhubung. Ini berarti Anda dapat menghubungkan total 16 saluran ke satu bus I²C.

GND = 0x48, VDD = 0x49, SDA = 0x4A, SCL = 0X4B

masukkan deskripsi gambar di sini

Anda dapat melihat hasil konversi terakhir seperti ini

# i2cget -y 0 0x49 0 w
0x0000

Default 0x0000 dikembalikan di sini karena belum ada konversi yang dilakukan. Sekarang mari kita lihat register konfigurasi

# i2cget -y 0 0x49 1 w
0x8385

LSB adalah yang pertama, jadi ini setara dengan 0b1000010110000011

Saya ingin melakukan konversi satu akhir pada AIN0, jadi saya perlu menulis bit [14:12] sebagai 0b100. yaitu0b1100010110000011

# i2cset -y 0 0x49 1 0xC385 w
# i2cget -y 0 0x49 0 w
0xa30b

LSB adalah yang pertama, jadi ini sama dengan 2979 desimal

John La Rooy
sumber
1
bukankah tipe paket ini sedikit lebih sulit untuk dikerjakan karena ukuran / jarak pin? Terutama bagi mereka yang menderita artritis (yang membatasi ketangkasan manual saya.
Steve Robillard
@SteveRobillard, ya mereka lebih sulit untuk diajak bekerja sama, tapi jelas lebih mudah daripada yang terlihat. Untuk MSOP membantu memperbesar, fluks, sumbu solder dan stasiun solder yang baik. Anda dapat memiliki beberapa langkah untuk memakukan satu sudut MSOP dengan beberapa solder sampai Anda puas dengan penentuan posisi. Ukurannya yang kecil memang membantu mengurangi kebisingan di sirkuit sehingga layak dicoba, Anda mungkin akan terkejut.
John La Rooy
1

Baik selama penggunaan yang Anda inginkan tidak menuntut bitrate atau resolusi super tinggi, Anda mungkin bisa menggunakan Arduino. Arduino bagus karena mereka memiliki komunitas besar untuk dukungan, mereka sudah ada untuk sementara waktu, dan komunikasi melalui USB tanpa GPIO!

Berikut ini tautan ke posting blog Simon Monk dengan instruksi tentang bagaimana ia berkomunikasi dengan Arduino dari Raspberry Pi dengan python.

Juga untuk berjaga-jaga jika Anda belum pernah mendengar Arduino sebelumnya (mungkin Anda pernah hidup di bawah batu) di sini adalah tautan ke halaman Pendahuluan mereka dan contoh input analog tingkat pemula .

Dan B
sumber
0

Mirip dengan menggunakan Arduino tetapi bagaimana dengan perangkat PICAXE, terhubung ke RPi UART? Ini akan lebih kecil dan jauh lebih murah. Bagi saya, Arduino tampaknya di atas tergantung pada kebutuhan Anda yang sebenarnya.

Orang
sumber
0

Dalam satu atau dua bulan, (karena pengiriman ke Afrika) saya akan mendapatkan papan I2C PCF8591 yang telah wiringpi mendukung situs WiringPi dan papan menggunakan 3.3v (biasanya) saya mendapat versi WaveShare di amazon Amazon link Dari apa yang saya ' Sudah membaca, PCF8591 cukup bagus tetapi sampai saya benar-benar memiliki papan di depan saya, saya tidak bisa mengatakan apakah itu baik atau tidak

linuxgnuru
sumber