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

Menggunakan ADC MCP3008 untuk Membaca Sensor Analog dengan Raspberry Pi

Menghubungkan sensor analog ke Raspberry Pi dapat menantang karena pin GPIO Pi hanya digital. Solusi hemat biaya adalah MCP3008, konverter analog-ke-digital 8 saluran 10-bit yang colok langsung ke bus SPI Pi dan tidak memerlukan komponen tambahan.

Dalam panduan ini kami akan memandu Anda melalui pemasangan MCP3008 ke Raspberry Pi, menghubungkan resistor bergantung cahaya (LDR) dan sensor suhu TMP36, dan membaca data dengan skrip Python sederhana.

Yang Dibutuhkan

Aktifkan SPI pada Pi

Antarmuka SPI dinonaktifkan secara default. Ikuti langkah-langkah di Mengaktifkan Antarmuka SPI pada Raspberry Pi untuk mengaktifkan SPI dan menginstal perpustakaan Python spidev.

Koneksi Sirkuit

MCP3008 memerlukan empat pin GPIO pada header 40 pin Pi. Sambungkan pin berikut (nomor pin merujuk pada penomoran header P1):

VDD 3.3V VREF 3.3V AGND GROUND CLK GPIO11 (P1-23) DOUT GPIO9 (P1-21) DIN GPIO10 (P1-19) CS GPIO8 (P1-24) DGND GROUND 

Setiap pin CH0–CH7 pada MCP3008 menjadi input analog. Dalam contoh di bawah kami menggunakan CH0 untuk LDR dan CH1 untuk TMP36; enam saluran yang tersisa dibiarkan bebas untuk sensor masa depan.

Resistor Bergantung Cahaya (LDR)

Resistansi LDR menurun menjadi sekitar 10 kΩ dalam cahaya terang dan naik menjadi beberapa megaohm dalam kegelapan. Dengan membentuk pembagi tegangan dengan resistor 10 kΩ, MCP3008 membaca tegangan yang jatuh ke 0 V saat terang dan naik ke 3,3 V dalam kegelapan.

Sensor Suhu TMP36

TMP36 adalah sensor suhu analog 3 pin. Sediakan daya dengan 3,3 V dan baca pin VOUT. Sensor mengeluarkan 0,750 V pada 25 °C, dengan kemiringan linier 10 mV per °C. Jadi 0 °C menghasilkan 0,500 V dan 100 °C menghasilkan 1,500 V.

Membaca Data dengan Python

MCP3008 mengeluarkan nilai 10-bit yang berkisar dari 0 hingga 1023, memetakan secara linier ke 0 V–3,3 V. Untuk TMP36, ini sesuai dengan rentang suhu sekitar –50 °C hingga +280 °C.

Di bawah ini adalah contoh minimal menggunakan perpustakaan spidev untuk membaca saluran 0 dan 1:

import spidev import time spi = spidev.SpiDev() spi.open(0, 0) # bus 0, device 0 spi.max_speed_hz = 1350000 def read_channel(channel): # Protokol MCP3008: start bit, single/diff, channel (3 bit), 5 dummy bit adc = spi.xfer2([1, (8 + channel) & 0x0F << 4, 0]) data = ((adc[1] & 3) << 8) + adc[2] return data while True: ldr_val = read_channel(0) temp_val = read_channel(1) temp_c = (temp_val * 3.3 / 1023) * 100 - 50 # Konversi ke °C print(f'LDR: {ldr_val}, Temp: {temp_c:.2f}°C') time.sleep(1)

Ganti nomor saluran sesuai kebutuhan untuk tata letak sensor Anda. Skrip secara terus-menerus mencetak nilai ADC mentah untuk LDR dan suhu yang dihitung dalam derajat Celsius.

Dengan pengaturan ini Anda dapat menambahkan sensor analog tambahan—seperti fotodioda, transmuder tekanan, atau probe kelembaban—dengan merangkainya ke pin CH2–CH7 yang tersisa dan memperluas kode Python sesuai kebutuhan.

Selamat mencoba!

Proses manufaktur

  1. Membangun Pencatat Suhu Raspberry Pi dengan Sensor I2C $5
  2. Profiling Suhu Raspberry Pi yang Akurat dengan Python, SQLite, dan LabVIEW
  3. Menghubungkan Beberapa Sensor DS18B20 1-Wire ke Raspberry Pi untuk Pemantauan Suhu yang Akurat
  4. Cara Membaca Suhu dengan DS18B20 pada Raspberry Pi 2
  5. Pemantauan Suhu Raspberry Pi Profesional dengan DS18B20
  6. Pengukuran Suhu Raspberry Pi dengan Sensor 1-Wire Maxim dan Jembatan I2C DS2482
  7. Sensor Suhu Infra Merah TMP006 dengan Raspberry Pi: Panduan Library Python & Pengaturan
  8. Membuat Sensor Suhu Jarak Jauh dengan Raspberry Pi dan Python – Panduan Langkah demi Langkah
  9. Pemantauan Suhu Akurat di Lemari Server dengan Raspberry Pi
  10. Pemantauan Cuaca Jarak Jauh dengan Raspberry Pi 3 dan PubNub