Bu eğitimde, BMP180 ve ARDUINO kullanarak bir Barometrik Basınç Ölçüm Sistemi tasarlayacağız. Öncelikle BMP180 ile ARDUINO arasında arayüz oluşturmak için, BMP180 için özel olarak tasarlanmış bir kitaplık indirmemiz gerekiyor. Bu kitaplığa şu adresten ulaşabilirsiniz: https://github.com/adafruit/Adafruit-BMP085-Library Bu kitaplığı ekledikten sonra, BMP180 sensörü ile çalışmayı kolaylaştıracak özel fonksiyonları çağırabiliriz.
Gerekli Bileşenler
Donanım: Arduino uno kartı, bağlantı pimleri, 220Ω direnç, BMP180 Barometrik Basınç Sensörü, 16x2 LCD, ekmek tahtası.
Yazılım: Arduino nightly
Devre Şeması ve Çalışma Açıklaması
Başlık çağırdıktan sonra Arduino Uno ve BMP180 sensörü arasında iletişim kurmak için endişelenmemize gerek yok. Bunu bizim için yapacak özel fonksiyonları çağırabiliriz. Sadece bir LCD'yi başlatmamız ve SENSOR'dan aranan değerleri üzerinde göstermemiz gerekiyor.
16x2 LCD'de arka ışık varsa 16 pim vardır, arka ışık yoksa toplam 14 pim olacaktır. Arka ışık pimlerine güç verebilir veya bırakabilirsiniz. Şimdi 14 pimde 8 veri pini (7-14 veya D0-D7), 2 güç kaynağı pini (1 ve 2 veya VSS ve VDD veya GND ve + 5v), kontrast kontrolü için 3. pim (karakterlerin ne kadar kalın olması gerektiğini VEE kontrol eder) gösterilmektedir) ve 3 kontrol pini (RS & RW & E).
Devrede, sadece iki kontrol pini aldığımı gözlemleyebilirsiniz, kontrast biti ve READ / WRITE sık sık kullanılmadığından toprağa kısa devre yapabilirler. Bu, LCD'yi en yüksek kontrast ve okuma moduna getirir. Karakterleri ve verileri buna göre göndermek için sadece ENABLE ve RS pinlerini kontrol etmemiz gerekiyor.
LCD için yapılan bağlantılar aşağıda verilmiştir:
PIN1 veya VSS toprağa
PIN2 veya VDD veya VCC ila + 5v güç
Zemine PIN3 veya VEE (yeni başlayanlar için en iyi maksimum kontrastı verir)
ARDUINO UNO'nun PIN8'ine PIN4 veya RS (Kayıt Seçimi)
PIN5 veya RW (Okuma / Yazma) zemine (LCD'yi okuma moduna geçirerek kullanıcı için iletişimi kolaylaştırır)
ARDUINO UNO'nun PIN6'sına PIN6 veya E (Etkinleştir)
ARDUINO UNO'nun PIN11 veya D4'ü
ARDUINO UNO'nun PIN12 veya D5'ten PIN11'e
ARDUINO UNO'nun PIN13 veya D6'sı
ARDUINO UNO'nun PIN13'üne PIN14 veya D7
ARDUINO IDE, kullanıcının LCD'yi 4 bit modunda kullanmasına izin verir. Bu tür bir iletişim, kullanıcının ARDUINO'daki pin kullanımını azaltmasını sağlar, diğerlerinin aksine, ARDUINO'nun 4 it modunda kullanılması için ayrı olarak programlanması gerekmez, çünkü varsayılan olarak ARDUINO, 4 bit modunda iletişim kuracak şekilde ayarlanmıştır. Devrede 4 bit iletişim kullandığımızı görebilirsiniz (D4-D7).
Bu nedenle, yukarıdaki tablodan sadece gözlemden, 6 pin LCD'yi, 4 pinin veri pini ve kontrol için 2 pini olan denetleyiciye bağlıyoruz.
BMP180'i Arduino Uno'ya bağlamak için aşağıdakileri yapmamız gerekiyor:
|
Öncelikle, "#include" özel işlevlerini etkinleştirmek için başlık dosyasını çağırmamız gerekir.
Bu başlık dosyasıyla, sensörden değerleri herhangi bir bulanıklık olmadan doğrudan okuyabilen işlevleri çağırabiliriz.
Şimdi C iletişimini etkinleştirmemiz gerekiyor, bu "#include"
Basıncı "String PRESSUREVALUE = String (bmp.readPressure ());" çağırarak okuyabiliriz. Burada basınç değeri sensörden okunacak ve "BASINÇ DEĞERİ" dizisinde saklanacaktır.
”String TEMPARATUREVALUE = String (bmp.readTemperature ());” çağırarak sıcaklığı okuyabiliriz. Burada basınç değeri sensörden okunacak ve "TEMPARATUREVALUE" dizisinde saklanacaktır.
İlk önce başlık dosyasını etkinleştirmemiz gerekiyor ('#include
İkinci olarak, burada hangi tip LCD kullandığımızı panoya söylememiz gerekiyor. Çok farklı LCD türlerimiz olduğundan (20 * 4, 16 * 2, 16 * 1 vb.) Burada 16 * 2 LCD'yi UNO'ya bağlayacağız, böylece 'lcd.begin (16,2);' elde ederiz. 16 * 1 için 'lcd.begin (16,1);' alıyoruz.
Bu talimatta panele pinleri nereye bağladığımızı anlatacağız. Bağlanan pinler sırasıyla “RS, En, D4, D5, D6, D7” olarak gösterilecektir. Bu pimler doğru şekilde gösterilmelidir. RS'yi PIN0'a bağladığımız ve benzer şekilde devre şemasında gösterildiği gibi, pin numarasını karta “LiquidCrystallcd (0,1,8,9,10,11);” olarak gösteriyoruz.
Yukarıdakilerden sonra geriye sadece veri göndermek kalıyor, LCD'de görüntülenmesi gereken veriler “cd.print (" merhaba, dünya! ");” Şeklinde yazılmalıdır. Bu komutla LCD'de 'merhaba, dünya!' Görüntülenir.
Gördüğünüz gibi başka herhangi bir şey için endişelenmemize gerek yok, sadece başlatmamız gerekiyor ve UNO verileri göstermeye hazır olacak. BYTE tarafından buraya veri BYTE göndermek için bir program döngüsü yazmak zorunda değiliz. Sensörden gelen değeri okuduktan sonra bunları 16x2 LCD ekranda göstereceğiz.