Mündəricat:
Video: Texnologiya PT: 3 addım
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Təlimatçılar BMP180 -in LCD və LCD -lərlə əlaqəli bütün məlumatları bir -birinə bağladıqdan sonra, montaj və quraşdırma işlərinin ən yüksək səviyyəsini təmin edəcəklər. Dəniz sahilinə qədər
Addım 1: Materiallar
Məlumat üçün BMP180 -dən istifadə etmək üçün bütün lazımi məlumatları əldə edə bilərsiniz:
1. Protoboard
2. Arduino Uno
3. LCD
4. BMP180 sensoru
5. Kabellər (19)
6. Potensiometro
7. Kitabxanalar əvvəlcədən quraşdırılmışdır (3 (LiquidCrystal, Wire, SFE_BMP180))
*BMP180 kitabxanası, sparkfun.com saytından yüklənir
Addım 2: Montaje
Tövsiyələr: cihazları ayırmaq (məsələn, LCD, BMP180 və ya Potenciometro)
Addım 3: Codigo
BMP hündürlüyünə nümunə olaraq kitabxananın quraşdırılması (BMP180) və Arduino -nun əsas baza nümunələri göstərilir. LiquidCristal Helloworld və ya Arduino ilə əlaqə qurarkən, LCD ekranda ən böyük sensoru tapacaqsınız. Əlavə məlumat:
V10 Mike Grusin, SparkFun Electronics 2013-24-10V1.1.2 Arduino 1.6.4 üçün Güncellemeler *
/ BMP180, Wire y LiquidCrystal kitabxana kitabxanaları da daxil olmaqla
// (Wire y LiquidCrystal son kitabxanaları standart Arduino)
#daxil edin
#daxil edin #daxil edin
// İnterfeys kitabxanası
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// SFE_BM0180, "təzyiq" lövhəsi:
SFE_BMP180 təzyiqi;
ikiqat təməl;
boş quraşdırma ()
{Serial.begin (9600); lcd.println ("Yenidən Başla"); lcd.begin (16, 2); // LCD -yə mesaj yazın. lcd.print ("");
// Məlumat sensoru
əgər (təzyiq.başla ())
Serial.println ("BMP180 başlanğıc uğuru"); başqa { / si ən böyük səhvlər isə codigo ilə əlaqəli problemlərlə əlaqədardır.
lcd.println ("BMP180 init uğursuz oldu (əlaqəsi kəsildi?) n / n");
isə (1); // Pausa sonsuz}
// Əsas təzyiqi alın:
baza = getPressure (); lcd.print ("əsas təzyiq:"); lcd.print (əsas xətt); lcd.println ("mb"); }
boşluq döngəsi ()
{ikiqat a, P; // Consue nuevos valores de presion
P = getPressure ();
// Muestra la yükseklik relativiyası
a = təzyiq hündürlüyü (P, başlanğıc);
lcd.print ("nisbi yüksəklik:"); əgər (a> = 0.0) Serial.print (""); // müsbət ədədlər üçün boşluq əlavə edin lcd.print (a, 1); lcd.print ("metr,"); əgər (a> = 0.0) Serial.print (""); // pozitiv ədədlər üçün boşluq əlavə edin lcd.print (a*3.28084, 0); lcd.println ("ayaqlar"); gecikmə (500); }
ikiqat getPressure ()
{char statusu; ikiqat T, P, p0, a;
// Bir təzyiq oxunuşunu yerinə yetirmək üçün əvvəlcə bir temperatur ölçüsü almalısınız. Mövzular və mövzular haqqında danışmaq üçün heç bir səbəb yoxdur
// Temperaturun ölçülməsinə başlayın: Temperaturun ölçülməsi // Əməliyyat səhvləri yoxlanıldıqda, heç bir problem yoxdur. // Səmən səhvlər, 0 -a baxın
status = təzyiq.startTemperatur ();
if (status! = 0) {// Espere a que se termine la medicion de la temperatura
gecikmə (vəziyyət);
// Temperaturun tamamlanması
// Dəyişən T -nin ən böyük dəyişikliyi T // Faydalı funksiyalar. // Sifarişdən əvvəl 1 səhv yoxdur, əksinə marcara 0
status = təzyiq.getTemperature (T);
if (status! = 0) {// Təzyiq ölçməsinə başlayın: Comienza la medicion de la presion // Parametr, 0 -dan 3 -ə qədər olan həddindən artıq nümunə götürmə parametridir (ən yüksək res, ən uzun gözləmə). Konfiqurasiya parametrləri, 0 və ya 3 -dən çox olmayan / səhvlər yoxlanıldıqda, bu məlumatların sayını təyin edin. // Səmə səhvlər, 0 -a baxın
status = təzyiq.başlama təzyiqi (3);
if (status! = 0) {// Espere a que termine la medicion de la presion delay (status);
// Tibbi müalicə tamamlandı
// Notes que la medida esta almacenada en la variable P // P. & U ünvanını təmin etmək üçün '& P' istifadə edin. la temperatura es estable, puedes hacer una medicion de temperatura para las medidas de presion) // Si la ffuncion muestra 1 saman səhvləri yoxdur, de lo contrario marcara 0
status = təzyiq.get təzyiq (P, T);
if (status! = 0) {qayıt (P); } else Serial.println ("təzyiq ölçümü alınarkən səhv / n"); } else Serial.println ("təzyiqin ölçülməsi xətası / n"); } else Serial.println ("temperaturun ölçülməsi xətası / n"); } else Serial.println ("temperaturun ölçülməsi zamanı səhv / n"); }