Dalam tutorial ini kita akan merancang Sistem Pengukuran Tekanan Barometrik menggunakan BMP180 dan ARDUINO. Pertama sekali untuk menginterface BMP180 ke ARDUINO, kita perlu memuat turun perpustakaan yang direka khas untuk BMP180. Perpustakaan ini boleh didapati di: https://github.com/adafruit/Adafruit-BMP085-Perpustakaan Setelah melampirkan perpustakaan itu, kami dapat memanggil fungsi khas yang akan memudahkan kerja dengan sensor BMP180.
Komponen Diperlukan
Perkakasan: Arduino uno board, pin penghubung, 220Ω perintang, BMP180 Barometric Pressure Sensor, 16x2 LCD, papan roti.
Perisian: Arduino setiap malam
Diagram Litar & Penjelasan Kerja
Setelah meminta header, kami tidak perlu risau untuk menjalin komunikasi antara Arduino Uno dan sensor BMP180. Kita hanya boleh memanggil fungsi khas yang akan melakukannya untuk kita. Kita hanya perlu Memulakan LCD dan menunjukkan nilai yang disebut dari SENSOR di atasnya.
Dalam LCD 16x2 terdapat 16 pin di atas semua jika ada lampu belakang, jika tidak ada lampu belakang akan ada jumlah 14 pin. Seseorang boleh menghidupkan atau meninggalkan pin lampu belakang. Sekarang dalam 14 pin terdapat 8 data pin (7-14 atau D0-D7), 2 pin bekalan kuasa (1 & 2 atau VSS & VDD atau GND & + 5V), 3 rd pin untuk kawalan kontras (VEE-kawalan berapa tebal watak-watak perlu ditunjukkan) dan 3 pin kawalan (RS & RW & E).
Di litar, anda dapat melihat bahawa saya hanya mengambil dua pin kawalan, bit kontras dan BACA / MENULIS tidak sering digunakan sehingga ia dapat dipendekkan ke tanah. Ini meletakkan LCD dalam mod kontras dan baca tertinggi. Kita hanya perlu mengawal pin ENABLE dan RS untuk menghantar watak dan data yang sesuai.
Sambungan yang dilakukan untuk LCD diberikan di bawah:
PIN1 atau VSS ke pembumian
PIN2 atau VDD atau VCC untuk +5v kuasa
PIN3 atau VEE ke ground (memberikan kontras maksimum terbaik untuk pemula)
PIN4 atau RS (Daftar Pilihan) ke PIN8 dari ARDUINO UNO
PIN5 atau RW (Baca / Tulis) ke tanah (meletakkan LCD dalam mod baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Aktifkan) kePIN9 dari ARDUINO UNO
PIN11 atau D4 hingga PIN10 dari ARDUINO UNO
PIN12 atau D5 hingga PIN11 dari ARDUINO UNO
PIN13 atau D6 hingga PIN12 dari ARDUINO UNO
PIN14 atau D7 hingga PIN13 dari ARDUINO UNO
ARDUINO IDE membolehkan pengguna menggunakan LCD dalam mod 4 bit. Jenis komunikasi ini membolehkan pengguna mengurangkan penggunaan pin pada ARDUINO, tidak seperti ARDUINO yang lain tidak perlu diprogramkan secara berasingan untuk menggunakannya dalam mod 4 it kerana secara lalai ARDUINO disiapkan untuk berkomunikasi dalam mod 4 bit. Di litar anda dapat melihat kita menggunakan komunikasi 4bit (D4-D7).
Oleh itu, dari pemerhatian dari jadual di atas, kita menyambungkan 6 pin LCD ke pengawal di mana 4 pin adalah pin data dan 2 pin untuk kawalan.
Untuk menghubungkan BMP180 ke Arduino Uno, kami perlu melakukan perkara berikut:
|
Mula-mula kita perlu memanggil fail header untuk mengaktifkan fungsi khas "#include".
Dengan fail header ini kita dapat memanggil fungsi yang dapat membaca nilai dari Sensor secara langsung tanpa kabur.
Sekarang kita perlu mengaktifkan komunikasi C, ini dilakukan dengan memanggil "#include
Kita dapat membaca tekanan dengan memanggil "String PRESSUREVALUE = String (bmp.readPressure ());". Di sini nilai tekanan akan dibaca dari sensor dan disimpan dalam rentetan "PRESSUREVALUE".
Kita boleh membaca suhu dengan memanggil "String TEMPARATUREVALUE = String (bmp.readTemperature ());". Di sini nilai tekanan akan dibaca dari sensor dan disimpan dalam rentetan "TEMPARATUREVALUE".
Mula-mula kita perlu mengaktifkan fail tajuk ('#include
Kedua, kita perlu memberitahu papan jenis LCD yang kita gunakan di sini. Oleh kerana kita mempunyai begitu banyak jenis LCD (seperti 20 * 4, 16 * 2, 16 * 1 dll). Di sini kita akan menghubungkan LCD 16 * 2 ke UNO sehingga kita mendapat 'lcd.begin (16,2);'. Untuk 16 * 1 kita mendapat 'lcd.begin (16,1);'.
Dalam instruksi ini kita akan memberitahu papan di mana kita menyambungkan pin, Pin yang disambungkan harus ditunjukkan dalam urutan sebagai "RS, En, D4, D5, D6, D7". Pin ini dilambangkan dengan betul. Oleh kerana kami menghubungkan RS ke PIN0 dan seterusnya seperti yang ditunjukkan dalam gambarajah litar, kami mewakili nombor pin untuk naik sebagai "LiquidCrystallcd (0,1,8,9,10,11);".
Setelah di atas sana yang tinggal hanyalah mengirim data, data yang perlu dipaparkan dalam LCD harus ditulis sebagai "cd.print (" hello, world! ");". Dengan arahan ini LCD memaparkan 'hello, world!'.
Seperti yang anda lihat, kita tidak perlu bimbang tentang perkara lain, kita hanya perlu memulakan dan UNO akan bersedia untuk memaparkan data. Kami tidak perlu menulis gelung program untuk menghantar data BYTE oleh BYTE di sini. Setelah membaca nilai dari sensor kita akan memaparkannya pada LCD 16x2.