Video: Texnologiya PT: 3 qadam
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Sensorli BMP180 sensorli LCD displeyi, shuningdek, LCD displeylar va qurilmalar bilan bir qatorda, bir vaqtning o'zida bir nechta ma'lumotlarni o'z ichiga oladi. Espero que les sea útil
1 -qadam: Materiallar
Boshqaruv panelida LCD displey va BMP180 datchiklari mavjud bo'lganda, siz materiallarni ishlatishingiz mumkin:
1. Protoboard
2. Arduino Uno
3. LCD
4. BMP180 sensori
5. Kabellar (19)
6. Potentsiometro
7. Kutubxonalar oldindan o'rnatiladi (3 (LiquidCrystal, Wire, SFE_BMP180))
*BMP180 kutubxonasi sparkfun.com saytida yuklangan
2 -qadam: Montaje
Tavsiya etiladi: eng yaxshi LCD displey, BMP180 va undan yuqori darajadagi potentsiometro qurilmalari.
3 -qadam: Codigo
BMP balandligi misolida, masalan, kutubxonani o'rnatish (BMP180) va Arduino -ning asosiy bazasi. Bu LiquidCristal Helloworld kompaniyasi, shuningdek, Arduino -dagi eng yaxshi displey va sensorli sensorli sensorli sensorli displeylar yordamida amalga oshiriladi. Qo'llanma es -siguiente:
V10 Mayk Grusin, SparkFun Electronics 2013-24-10 V1.1.2 Arduino 1.6.4 uchun yangilanishlar *
BMP180, Wire y LiquidCrystal kitob kutubxonalari o'z ichiga oladi.
// (Arduino standartidagi Wire y LiquidCrystal son kutubxonalari)
#qo'shing
#qo'shing #qo'shing
// Interfeysning kutubxonasi
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// "SFE_BM0180" objektiga tegishli emas, "bosim":
SFE_BMP180 bosimi;
ikki tomonlama asosiy chiziq;
bo'sh o'rnatish ()
{Serial.begin (9600); lcd.println ("Qayta yuklash"); lcd.begin (16, 2); // Xabarni LCD displeyga chop eting. lcd.print ("");
// Sensorni tekshirish
agar (bosim.begin ())
Serial.println ("BMP180 boshlang'ich muvaffaqiyati"); else {// si tiene problemas o errores en el codigo, consulte la parte de arriba del codigo.
lcd.println ("BMP180 tashabbusi bajarilmadi (uzildi?) n / n");
vaqt (1); // Pausa infinita}
// Asosiy bosimni oling:
boshlang'ich = getPressure (); lcd.print ("asosiy bosim:"); lcd.print (boshlang'ich); lcd.println ("mb"); }
bo'sh halqa ()
{juftlik a, P; // Consigue nuevos valores de presion
P = getPressure ();
// Muestra la balandlikdagi nisbiylik
a = bosim balandligi (P, boshlang'ich);
lcd.print ("nisbiy balandlik:"); agar (a> = 0,0) Serial.print (""); // musbat sonlar uchun bo'sh joy qo'shing lcd.print (a, 1); lcd.print ("metr"); agar (a> = 0,0) Serial.print (""); // musbat sonlar uchun bo'sh joy qo'shing lcd.print (a*3.28084, 0); lcd.println ("oyoqlar"); kechikish (500); }
er -xotin getPressure ()
{char holati; er -xotin T, P, p0, a;
// Bosim ko'rsatkichini o'qish uchun siz avval harorat o'lchovini olishingiz kerak. Debes tena una medida de temperatura antes de tener una lektura de presion
// Haroratni o'lchashni boshlang: temperaturali empieza // Xato yo'q, masalan, xatoliklar aniqlanmagan. // Xato xatolari, 0 ga teng
holat = bosim.startTemperature ();
if (status! = 0) {// Espere a que se termine la medicion de la temperatura
kechikish (holat);
// Recupera la medida de completa de temperatura
// Esta medida esta Guardada eng o'zgaruvchan T // Utiliza & T para dar la direccion de T a la funcion. // Sifatida hech qanday xato yo'q, marcara 0
holat = bosim.getTemperature (T);
if (status! = 0) {// Bosim o'lchovini boshlang: Comienza la medicion de la presion // Parametr - bu ortiqcha namuna olish sozlamasi, 0 dan 3 gacha (eng yuqori aniqlik, eng uzoq kutish). Bu konfiguratsiyani sozlashda, 0 dan 3 gacha // hech qanday xatolikka yo'l qo'ymaydi, masalan, bu raqamlar. // Xato xatolari, 0 ga teng
status = bosim.start Bosim (3);
if (status! = 0) {// Espere a que termine la medicion de la presion delay (status);
// Recupere la medicion completa de la presion
// Notes que la medida esta almacenada en la variable P // "& P" tugmachasidan foydalanib P. Utilice & P para dar la direccion de P // Notes tambien que la funcion Requiere una medida previa de temperatura // (Si la temperatura es estable, puedes hacer una medicion de temperatura para las medidas de presion) // Si la ffuncion muestra 1 pichan xatolari yo'q, qarama -qarshi marcara 0
status = bosim.get Bosim (P, T);
if (status! = 0) {qaytish (P); } else Serial.println ("bosim o'lchovini olishda xato / n"); } else Serial.println ("bosimni o'lchashda xato / n"); } else Serial.println ("haroratni o'lchashda xato / n"); } else Serial.println ("haroratni o'lchashda xato / n"); }