Mundarija:

Texnologiya PT: 3 qadam
Texnologiya PT: 3 qadam

Video: Texnologiya PT: 3 qadam

Video: Texnologiya PT: 3 qadam
Video: Как сделать Веб Шутер Человека Паука 4 2024, Iyul
Anonim
Texnologiya PT
Texnologiya PT

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

Montaje
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"); }

Tavsiya: