- ADC0804 dan Raspberry Pi:
- Sensor Suhu LM35:
- Komponen yang Dibutuhkan:
- Sirkuit dan Penjelasan Kerja:
- Penjelasan Pemrograman:
Kami sebagian besar telah membahas semua Komponen Dasar yang berinteraksi dengan Raspberry Pi di Seri Tutorial Raspberry Pi kami. Kami telah membahas semua Tutorial secara sederhana dan terperinci, sehingga siapa pun, apakah dia telah bekerja dengan Raspberry Pi atau tidak, dapat belajar dari Seri ini dengan mudah. Dan setelah melalui semua tutorial Anda akan dapat membangun beberapa proyek Tingkat Tinggi menggunakan Raspberry Pi.
Jadi disini kami merancang aplikasi pertama berdasarkan tutorial sebelumnya. Aplikasi dasar pertama adalah Suhu Ruang Baca oleh Raspberry Pi. Dan Anda dapat memantau Bacaan di komputer.
Seperti yang dibahas di tutorial sebelumnya, tidak ada saluran ADC yang disediakan secara internal di Raspberry Pi. Jadi jika kita ingin menghubungkan sensor analog kita membutuhkan unit konversi ADC. Dan di salah satu tutorial kami, kami memiliki chip ADC0804 Interfaced ke Raspberry Pi untuk membaca nilai analog. Jadi telusuri sebelum membangun Termometer Suhu Kamar ini.
ADC0804 dan 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. Resolusi chip ini berubah berdasarkan tegangan referensi yang kita pilih, kita akan membicarakannya lebih lanjut nanti. 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.
Sensor Suhu LM35:
Sekarang untuk Membaca Temperatur Ruangan, kita membutuhkan sebuah sensor. Di sini kita akan menggunakan Sensor Suhu LM35. Suhu biasanya diukur dalam "Celcius" atau "Fahrenheit". Sensor “LM35” memberikan keluaran dalam derajat Celcius.
Seperti yang ditunjukkan pada gambar, LM35 adalah perangkat seperti transistor tiga pin. Pin diberi nomor sebagai, PIN1 = Vcc - Power (Terhubung ke + 5V)
PIN2 = Signal atau Output (terhubung ke chip ADC)
PIN3 = Ground (Terhubung ke ground)
Sensor ini memberikan tegangan variabel pada keluaran, berdasarkan suhu. Untuk setiap kenaikan suhu +1 celcius akan ada tegangan + 10mV yang lebih tinggi pada pin keluaran. Jadi jika suhu 0◦ celcius keluaran sensor akan 0V, jika suhu 10◦ celcius keluaran sensor akan + 100mV, jika suhu 25◦ celcius keluaran sensor akan + 250mV.
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
- Resistor 1KΩ (17 buah)
- Pot 10K
- Kapasitor 0.1µF
- Kapasitor 100µF
- Kapasitor 1000µF
- IC ADC0804
- Sensor Suhu LM35
- Papan Roti
Sirkuit dan Penjelasan Kerja:
Koneksi yang dilakukan untuk Menghubungkan Raspberry ke ADC0804 dan LM35, ditunjukkan pada diagram rangkaian di bawah ini.
Output LM35 memiliki banyak fluktuasi tegangan; jadi kapasitor 100uF digunakan untuk memperlancar keluaran, seperti yang ditunjukkan pada gambar.
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.
Seperti yang diceritakan sebelumnya, LM35 menyediakan + 10mV untuk setiap celcius. Suhu maksimum yang dapat diukur oleh LM35 adalah 150º celcius. Jadi kita akan memiliki maksimum 1.5V pada terminal keluaran LM35. Tetapi tegangan referensi default ADC0804 adalah + 5V. Jadi jika kita menggunakan nilai referensi tersebut, resolusi keluaran akan rendah karena kita akan menggunakan maksimum (5 / 1.5) 34% dari jangkauan keluaran digital.
Untungnya ADC0804 memiliki pin Vref yang dapat disesuaikan (PIN9) seperti yang ditunjukkan di Diagram Pin di atas. Jadi kami akan mengatur Vref chip ke + 2V. Untuk mengatur Vref + 2V, kita perlu memberikan tegangan + 1V (VREF / 2) pada PIN9. Di sini kami menggunakan pot 10K untuk mengatur voltase pada PIN9 ke + 1V. Gunakan voltmeter untuk mendapatkan voltase yang akurat.
Sebelumnya kita telah menggunakan Sensor Suhu LM35 untuk Membaca Suhu Ruangan dengan Arduino dan Mikrokontroler AVR. Periksa juga Pengukuran Kelembaban dan Suhu menggunakan Arduino
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 Kode diberikan dalam Bagian Kode Di Bawah Ini.
Setelah program ditulis, saatnya untuk menjalankannya. Sebelum menjalankan program, mari kita bahas apa yang terjadi di sirkuit sebagai Ringkasan. Sensor LM35 pertama mendeteksi suhu ruangan dan memberikan tegangan analog pada outputnya. Tegangan variabel ini merepresentasikan suhu secara linier dengan + 10mV per ºC. Sinyal ini diumpankan ke chip ADC0804, chip ini mengubah nilai Analog menjadi nilai digital dengan 255/200 = 1,275 hitungan per10mv atau 1,275 hitungan untuk 1 derajat. Hitungan ini diambil oleh PI GPIO. Program ini mengubah hitungan ke nilai suhu dan menampilkannya di layar. Suhu tipikal yang dibaca oleh PI ditunjukkan di bawah ini, Makanya kami monitor suhu Raspberry Pi ini.