Pinouts
Power Pins:
- Vin - this is the power pin. Since the chip uses 3 VDC, we have included a voltage regulator on board that will take 3-5VDC and safely convert it down. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V
-
3Vo - this is the 3.3V output from the voltage regulator, you can grab up to 100mA from this if you like
- GND - common ground for power and logic
SPI Logic pins:
All pins going into the breakout have level shifting circuitry to make them 3-5V logic level safe. Use whatever logic level is on Vin!
- SCK - This is the SPI Clock pin, its an input to the chip
- SDO - this is the Serial Data Out / Microcontroller In Sensor Out pin, for data sent from the BMP183 to your processor
- SDI - this is the Serial Data In / Microcontroller Out Sensor In pin, for data sent from your processor to the BMP183
- CS - this is the Chip Select pin, drop it low to start an SPI transaction. Its an input to the chip
Assembly
Prepare the header strip:
Cut the strip to length if necessary. It will be easier to solder if you insert it into a breadboard - long pins downAdd the breakout board:
Place the breakout board over the pins so that the short pins poke through the breakout padsAnd Solder!
Be sure to solder all pins for reliable electrical contact.(For tips on soldering, be sure to check out our Guide to Excellent Soldering).
Wiring and Test
-
Connect Vin to the power supply, 3V or 5V is fine. Use the same
voltage that the microcontroller logic is based off of. For most
Arduinos, that is 5V
- Connect GND to common power/data ground
- Connect the SCK pin to Digital #13 but any pin can be used later
- Connect the SDO pin to Digital #12 but any pin can be used later
- Connect the SDI pin to Digital #11 but any pin can be used later
- Connect the CS pin Digital #10 but any pin can be used later
Download Adafruit_BMP183 library
To begin reading sensor data, you will need to download the Adafruit BMP183 library from the Arduino library manager.
Open up the Arduino library manager:
Search for the Adafruit BMP183 library and install it
We also have a great tutorial on Arduino library installation at:
http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use
Load Demo
Open up File->Examples->Adafruit_BMP183->BMP183test and upload to your Arduino wired up to the sensorTemperature is calculated in degrees C, you can convert this to F by using the classic F = C * 9/5 + 32 equation.
Pressure is returned in the SI units of Pascals. 100 Pascals = 1 hPa = 1 millibar. Often times barometric pressure is reported in millibar or inches-mercury. For future reference 1 pascal =0.000295333727 inches of mercury, or 1 inch Hg = 3386.39 Pascal. So if you take the pascal value of say 100734 and divide by 3389.39 you'll get 29.72 inches-Hg.
You can also calculate Altitude. However, you can only really do a good accurate job of calculating altitude if you know the hPa pressure at sea level for your location and day! The sensor is quite precise but if you do not have the data updated for the current day then it can be difficult to get more accurate than 10 meters.
Adafruit_BMP183 bmp = Adafruit_BMP183(BMP183_CLK, BMP183_SDO, BMP183_SDI, BMP183_CS);
In this case, you can use any CS pin, but the other three pins are fixed
Adafruit_BMP183 bmp = Adafruit_BMP183(BMP183_CS);
bmp.begin()
bmp.getTemperature() bmp.getPressure()
bmp.getAltitude(seaLevelPressure)
Pass in the current sea level pressure in hPa - so the value will be somewhere around ~1000. You can also test with the generic 1013.25 value.
Using BMP183 Unified
Download Adafruit_BMP183_Unified library
To begin reading sensor data, you will need to download both the Adafruit BMP183 Unified library and the Adafruit Unified Sensor library from the Arduino library manager.
Open up the Arduino library manager:
Search for the Adafruit BMP183 Unified library and install it
Search for the Adafruit Sensor library and install it
We also have a great tutorial on Arduino library installation at:
http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use
Load Demo
Open up File->Examples->Adafruit_BMP180_Unified->BMP183test and upload to your Arduino wired up to the sensorF.A.Q.s
No, your sensor is likely just fine. The altitude calculation depends on knowing the barometric pressure at sea level
If you do not set the correct sea level pressure for your location FOR THE CURRENT DAY it will not be able to calculate the altitude accurately
Barometric pressure at sea level changes daily based on the weather!
Downloads
Datasheets & Files
This guide was first published on Jun 04, 2014. It was last updated on Jun 04, 2014.