Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Muhammad Luthfi Ariandri

EK-3D
2105042042
LAPORAN SENSOR TEKANAN DENGAN PROTEUS DAN
ARDUINO SENSOR MPX4115 DAN BMP180

Sensor tekanan adalah sebuah alat yang digunakan untuk mengukur besaran suatu
tekanan. Caranya yaitu dengan mengubah tegangan mekanis menjadi sinyal listrik.

I. Data Sensor MPX4115 dana Sensor BMP180


Spesifikasi Sensor BMP180 :
Tegangan kerja:1.8V to 6V Supply
Spesifikasi Sensor MPX4115 : Voltage (On Board 3.3V
- Tipe Tekanan : Absolut regulator)
- Sensitivitas : 45.9mV/kPa ++ Ukuran : 21mm x 18mm
- Tekanan Kerja : 15 - 115 kPa ++ Max I2C Speed: 3.5Mhz
- Catu Daya : 5 V ++ Full calibrated
- Temperatur Kerja : -25 - 125°C ++ Pressure Range: 300hPa to
- Tingkat Kesalahan : 1.5% 1100hPa (+9000m to -500m)
(maks) ++ Low power consumption -
- Respon Waktu : 1 ms 0.5uA at 1Hz
- Jumlah Pin : 6 Pin ++ I2C interface (I2C address:
0x77)
++ Very low noise - up to 0.02hPa
(17cm)

II. Rangkaian Sensor MPX4115 Dan Sensor BMP180


MPX4115 BMP180
III. Program Arduino
Coding Sensor MPX4115
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define kpa2atm 0.00986923267

Adafruit_SSD1306 display (128, 64, &Wire, -1);

// pin defs
int pressurePin = A0;

// variables
int val;
float pkPa; // pressure in kPa
float pAtm; // pressure in Atm

unsigned long time;

void setup()
{
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(100);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);

void loop()
{
display.clearDisplay();

/* get the pressure */


val = analogRead(pressurePin);
pkPa = ((float)val/(float)1023+0.095)/0.009;
pAtm = kpa2atm*pkPa;

/* send pressure to serial port */


//display.clearDisplay();
display.setCursor(0,0);
display.setTextSize(1);
display.print("Tekanan(kPa) = ");
display.print(pkPa);
display.setCursor(0,10);
display.setTextSize(1);
display.print("Tekanan(Atm) = ");
display.print(pAtm);

display.display();
/*Serial.print(pkPa);
Serial.print("kPa ");
Serial.print(pAtm);
Serial.println("Atm ");*/
delay(100);
}

Coding Sensor BMP180


//import all required libraries
#include <SFE_BMP180.h>
#include <Wire.h>
#include <LiquidCrystal.h>

const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;


LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// You will need to create an SFE_BMP180 object, here called "pressure":

SFE_BMP180 pressure;

#define ALTITUDE 1655.0 // Altitude of SparkFun's HQ in Boulder, CO. in meters

void setup()
{
Serial.begin(9600);

lcd.begin(16, 2);
// Print a message to the LCD.
lcd.setCursor(5,0);
lcd.print("BMP180");
delay(100);
lcd.clear();

lcd.setCursor(5,0);
lcd.print("EK-3D");
delay(100);
lcd.clear();

Serial.println("MICRODIGISOFT");

// Initialize the sensor (it is important to get calibration values stored on the device).

if (pressure.begin())
Serial.println("BMP180 Sensor");
else
{

Serial.println("BMP180 init fail\n\n");


while(1); // Pause forever.
}
}

void loop()
{
char status;
double T,P,p0,a;

Serial.println();
Serial.print("provided altitude: ");
Serial.print(ALTITUDE,0);
Serial.println(" meters, ");
Serial.print(" : ");
Serial.print(ALTITUDE*3.28084,0);
Serial.println(" feet");

status = pressure.startTemperature();
if (status != 0)
{
// Wait for the measurement to complete:
delay(status);

status = pressure.getTemperature(T);
if (status != 0)
{
// Print out the measurement:
Serial.print("temperature: ");
Serial.print(T,2);
Serial.println(" deg C, ");
Serial.print(" : ");
Serial.print((9.0/5.0)*T+32.0,2);
Serial.println(" deg F");

status = pressure.startPressure(3);
if (status != 0)
{
// Wait for the measurement to complete:
delay(status);
status = pressure.getPressure(P,T);
if (status != 0)
{
// Print out the measurement:
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tekanan Absolut: ");
lcd.setCursor(0,1);
lcd.print(P,2);
lcd.println(" mb, ");
lcd.print(" : ");
lcd.print(P*0.0295333727,2);
lcd.println(" inHg");

p0 = pressure.sealevel(P,ALTITUDE); // we're at 1655 meters (Boulder, CO)


Serial.print("relative (sea-level) pressure: ");
Serial.print(p0,2);
Serial.println(" mb, ");
Serial.print(" : ");
Serial.print(p0*0.0295333727,2);
Serial.println(" inHg");

a = pressure.altitude(P,p0);
Serial.print("computed altitude: ");
Serial.print(a,0);
Serial.println(" meters, ");
Serial.print(" : ");
Serial.print(a*3.28084,0);
Serial.println(" feet");
}
else Serial.println("error retrieving pressure measurement\n");
}
else Serial.println("error starting pressure measurement\n");
}
else Serial.println("error retrieving temperature measurement\n");
}
else Serial.println("error starting temperature measurement\n");

delay(1000); // Pause for 1 seconds.


}
IV. Hasil Percobaan
Sensor MPX4115

Sensor BMP180

You might also like