- ADC0804 dan Raspberry Pi:
- Komponen yang Dibutuhkan:
- Penjelasan Sirkuit:
- Penjelasan Pemrograman:
- Kerja:
Raspberry Pi adalah papan berbasis prosesor arsitektur ARM yang dirancang untuk insinyur elektronik dan penghobi. PI adalah salah satu platform pengembangan proyek paling tepercaya saat ini. Dengan kecepatan prosesor yang lebih tinggi dan RAM 1 GB, PI dapat digunakan untuk banyak proyek profil tinggi seperti Pemrosesan gambar dan Internet of Things.
Untuk melakukan salah satu proyek profil tinggi, seseorang perlu memahami fungsi dasar PI. Kami akan membahas semua fungsi dasar Raspberry Pi dalam tutorial ini. Dalam setiap tutorial kita akan membahas salah satu fungsi PI. Pada akhir Seri Tutorial Raspberry Pi ini, Anda akan dapat melakukan proyek profil tinggi sendiri. Pergi melalui tutorial di bawah ini:
- Memulai dengan Raspberry Pi
- Konfigurasi Raspberry Pi
- LED Blinky
- Antarmuka Tombol Raspberry Pi
- Generasi Raspberry Pi PWM
- Mengontrol Motor DC menggunakan Raspberry Pi
- Kontrol Motor Stepper dengan Raspberry Pi
- Interfacing Shift Register dengan Raspberry Pi
Dalam tutorial ini, kita akan Menghubungkan chip ADC (Konversi Analog ke Digital) ke Raspberry Pi. Kita tahu semua parameter analog, artinya ada yang berubah terus menerus dari waktu ke waktu. Misalnya suhu ruangan, suhu ruangan bervariasi dengan waktu terus menerus. Suhu ini diberikan dengan angka desimal. Namun dalam dunia digital tidak terdapat angka desimal, sehingga kita perlu mengubah nilai Analog menjadi nilai Digital. Proses konversi ini dilakukan dengan teknik ADC. Pelajari lebih lanjut tentang ADC di sini: Pengantar ADC0804
ADC0804 dan Raspberry Pi:
Kontroler normal memiliki saluran ADC tetapi untuk PI tidak ada saluran ADC yang disediakan secara internal. Jadi jika kita ingin menghubungkan sensor analog kita membutuhkan unit konversi ADC. Jadi untuk tujuan itu kita akan Antarmuka ADC0804 dengan Raspberry Pi.
ADC0804 adalah chip yang dirancang untuk mengubah sinyal analog menjadi data digital 8 bit. Chip ini merupakan salah satu seri ADC yang populer. Ini adalah unit konversi 8bit, jadi kami memiliki nilai atau nilai 0 hingga 255. Dengan pengukuran tegangan maksimum 5V, kami akan memiliki perubahan untuk setiap 19,5mV. Di bawah ini adalah Pinout dari ADC0804:
Sekarang hal penting lainnya di sini adalah, ADC0804 beroperasi pada 5V dan memberikan output dalam sinyal logika 5V. Dalam output 8 pin (mewakili 8 bit), setiap pin menyediakan output + 5V untuk mewakili logic'1 '. Jadi masalahnya adalah logika PI adalah + 3.3v, jadi Anda tidak dapat memberikan logika + 5V ke pin GPIO + 3.3V dari PI. Jika Anda memberikan + 5V ke pin GPIO PI mana pun, papan akan rusak.
Jadi untuk menurunkan level logika dari + 5V, kita akan menggunakan rangkaian pembagi tegangan. Kami telah membahas Rangkaian Pembagi Tegangan sebelumnya melihat ke dalamnya untuk klarifikasi lebih lanjut. Yang akan kita lakukan adalah, kita menggunakan dua resistor untuk membagi logika + 5V menjadi logika 2 * 2.5V. Jadi setelah pembagian kami akan memberikan logika + 2.5v ke PI. Jadi, setiap kali logika '1' disajikan oleh ADC0804, kita akan melihat + 2.5V pada Pin PI GPIO, bukan + 5V.
Pelajari lebih lanjut tentang GPIO Pin dari Raspberry Pi di sini dan ikuti tutorial kami sebelumnya.
Komponen yang Dibutuhkan:
Di sini kami menggunakan Raspberry Pi 2 Model B dengan Raspbian Jessie OS. Semua persyaratan dasar Perangkat Keras dan Perangkat Lunak telah dibahas sebelumnya, Anda dapat mencarinya di Pengenalan Raspberry Pi, selain itu yang kami butuhkan:
- Menghubungkan pin
- 220Ω atau 1KΩresistor (17 buah)
- Pot 10K
- 0.1µF kapasitor (2 buah)
- IC ADC0804
- Papan Roti
Penjelasan Sirkuit:
Ia bekerja pada tegangan suplai + 5v dan dapat mengukur rentang tegangan variabel dalam kisaran 0-5V.
The koneksi untuk interfacing ADC0804 untuk Raspberry PI, ditunjukkan dalam diagram rangkaian di atas.
ADC selalu memiliki banyak noise, noise ini dapat sangat memengaruhi performa, jadi kami menggunakan kapasitor 0.1uF untuk Noise Filtration. Tanpa ini akan ada banyak fluktuasi pada output.
Chip tersebut bekerja pada jam osilator RC (Resistor-Capacitor). Seperti yang ditunjukkan pada diagram sirkuit, C2 dan R20 membentuk Jam. Hal penting yang perlu diingat di sini adalah kapasitor C2 dapat diubah ke nilai yang lebih rendah untuk tingkat konversi ADC yang lebih tinggi. Namun dengan kecepatan yang lebih tinggi akan terjadi penurunan akurasi. Jadi jika aplikasinya membutuhkan akurasi yang lebih tinggi, pilih kapasitor dengan nilai yang lebih tinggi dan untuk kecepatan yang lebih tinggi pilih kapasitor dengan nilai yang lebih rendah.
Penjelasan Pemrograman:
Setelah semuanya terhubung sesuai diagram rangkaian, kita dapat MENGAKTIFKAN PI untuk menulis program di PYHTON.
Kami akan berbicara tentang beberapa perintah yang akan kami gunakan dalam program PYHTON, Kami akan mengimpor file GPIO dari perpustakaan, fungsi di bawah ini memungkinkan kami untuk memprogram pin GPIO PI. Kami juga mengganti nama "GPIO" menjadi "IO", jadi dalam program kapan pun kami ingin merujuk ke pin GPIO, kami akan menggunakan kata 'IO'.
impor RPi.GPIO sebagai IO
Terkadang, ketika pin GPIO, yang kami coba gunakan, mungkin melakukan beberapa fungsi lain. Dalam hal ini, kami akan menerima peringatan saat menjalankan program. Perintah di bawah ini memberi tahu PI untuk mengabaikan peringatan dan melanjutkan program.
IO.setwarnings (Salah)
Kita dapat merujuk pin GPIO PI, baik dengan nomor pin di papan atau dengan nomor fungsinya. Seperti 'PIN 29' di papan tulis adalah 'GPIO5'. Jadi kami beri tahu di sini apakah kami akan mewakili pin di sini dengan '29' atau '5'.
IO.setmode (IO.BCM)
Kami menetapkan 8 pin sebagai pin input. Kami akan mendeteksi 8 bit data ADC dengan pin ini.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
Jika kondisi di dalam kurung benar, pernyataan di dalam loop akan dieksekusi satu kali. Jadi jika pin GPIO 19 menjadi tinggi, maka pernyataan di dalam loop IF akan dijalankan satu kali. Jika pin GPIO 19 tidak tinggi, maka pernyataan di dalam loop IF tidak akan dijalankan.
jika (IO.input (19) == Benar):
Perintah di bawah ini digunakan sebagai perulangan selamanya, dengan perintah ini pernyataan di dalam perulangan ini akan dijalankan terus menerus.
Sedangkan 1:
Penjelasan lebih lanjut tentang Program diberikan dalam Bagian Kode Di Bawah Ini.
Kerja:
Setelah program ditulis dan dijalankan, Anda akan melihat '0' di layar. '0' berarti 0 volt pada input.
Jika kita menyesuaikan pot 10K yang terhubung ke chip, kita akan melihat perubahan nilai di layar. Nilai di layar terus bergulir, ini adalah nilai digital yang dibaca oleh PI.
Katakanlah jika kita mendapatkan pot ke titik tengah, kita memiliki + 2.5V pada input ADC0804. Jadi kami melihat 128 di layar seperti yang ditunjukkan di bawah ini.
Untuk nilai analog + 5V, kami akan memiliki 255.
Jadi, dengan memvariasikan pot, kami memvariasikan tegangan dari 0 hingga + 5V pada input ADC0804. Dengan PI ini membaca nilai 0-255. Nilainya dicetak di layar.
Jadi kami telah Interfaced ADC0804 ke Raspberry Pi.