KAmod BMP280 (PL): Difference between revisions
From Kamamilabs.com - Wiki
Created page with "__jzpdf__ ====== Opis ====== <b>KAmod BMP280 - Precyzyjny czujnik ciśnienia i temperatury z interfejsem SPI oraz I2C</b><br> KAmod BMP280 zawiera precyzyjny czujnik BMP280 produkcji Bosch Sensortec, który umożliwia pomiar ciśnienia atmosferycznego oraz temperatury. Na płytce modułu zostały wyprowadzone wszystkie kluczowe sygnały miniaturowego sensora BMP280, co ułatwia jego użycie w aplikacjach modułowych. Komunikacja odbywa się poprzez interfejsy SPI lub I2C..." |
|||
(15 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
KAmod BMP280 zawiera precyzyjny czujnik BMP280 produkcji Bosch Sensortec, który umożliwia pomiar ciśnienia atmosferycznego oraz temperatury. Na płytce modułu zostały wyprowadzone wszystkie kluczowe sygnały miniaturowego sensora BMP280, co ułatwia jego użycie w aplikacjach modułowych. Komunikacja odbywa się poprzez interfejsy SPI lub I2C wyposażone w obwody translacji napięć sterujących. | KAmod BMP280 zawiera precyzyjny czujnik BMP280 produkcji Bosch Sensortec, który umożliwia pomiar ciśnienia atmosferycznego oraz temperatury. Na płytce modułu zostały wyprowadzone wszystkie kluczowe sygnały miniaturowego sensora BMP280, co ułatwia jego użycie w aplikacjach modułowych. Komunikacja odbywa się poprzez interfejsy SPI lub I2C wyposażone w obwody translacji napięć sterujących. | ||
<center> | <center> | ||
[[File: | [[File:KAmod_BMP280_3d.png|none|800px|thumb|center]] | ||
</center> | </center> | ||
<br><br> | <br><br> | ||
Line 33: | Line 33: | ||
<br><br> | <br><br> | ||
===== Schemat elektryczny ===== | ===== Schemat elektryczny ===== | ||
<center> | |||
[[File:KAmod_BMP280_sch.png|none|800px|thumb|center]] | |||
</center> | |||
<br><br> | |||
===== Rozmieszczenie sygnałów na płytce ===== | ===== Rozmieszczenie sygnałów na płytce ===== | ||
<center> | |||
{| class="wikitable" style="width: 1000px;" | |||
! style="text-align: center;"|<b>Oznaczenie</b> | |||
! style="text-align: center;"|<b>Funkcja</b> | |||
|- | |||
| style="text-align: center;"|<b>VIN</b> | |||
| style="text-align: left;"| Wejście zasilania 2...5 V, biegun dodatni | |||
|- | |||
| style="text-align: center;"|<b>VDD</b> | |||
| style="text-align: left;"| Wyjście napięcia zasilającego czujnik | |||
|- | |||
| style="text-align: center;"|<b>SI/GND</b> | |||
| style="text-align: left;"| Masa zasilania – biegun ujemny | |||
|- | |||
| style="text-align: center;"|<b>SC/SI/SDA</b> | |||
| style="text-align: left;"| Wejście szeregowe danych SPI lub linia danych SDA dla I2C | |||
|- | |||
| style="text-align: center;"|<b>SC/SCL</b> | |||
| style="text-align: left;"| Sygnał taktujący SPI oraz I2C | |||
|- | |||
| style="text-align: center;"|<b>SDO</b> | |||
| style="text-align: left;"| Wyjście szeregowe danych SPI lub wybór adresu dla I2C | |||
|- | |||
| style="text-align: center;"|<b>CSB</b> | |||
| style="text-align: left;"| Sygnał CS - Chip Select dla SPI lub wybór interfejsu I2C jeśli połączony do VDD | |||
|} | |||
</center> | |||
<br> | |||
Wszystkie sygnały modułu są wyprowadzone na 1-rzędowym złączu J1 o rastrze 2,54 mm. Rozmieszczenie poszczególnych sygnałów zostało opisane na dolnej stronie płytki modułu (Bottom) oraz na rysunku: | |||
<center> | |||
[[File:KAmod_BMP280_syg.png|none|600px|thumb|center]] | |||
</center> | |||
<br><br> | |||
===== Interfejsy komunikacyjne ===== | ===== Interfejsy komunikacyjne ===== | ||
Czujnik BMP280 udostępnia dwa interfejsy komunikacyjne: SPI lub I2C. Interfejs SPI może działać w konfiguracji 4-przewodowej lub 3-przewodowej. Dokładne informacje dotyczące komunikacji są zawarte w dokumentacji układu BMP280. | |||
<br><br> | |||
Wszystkie sygnały sterujące modułu KAmod BMP280 są wyposażone w obwody translacji napięć i mogą współpracować z systemami, których interfejsy pracują z napięciem o wartości 2...5 V. | |||
<br><br> | |||
<center> | |||
{| class="wikitable" style="width: 1000px;" | |||
! style="background-color:#82CAFF; text-align: center;" colspan="2"|<b>Interfejs SPI 4-przewodowy</b> | |||
|- | |||
! style="text-align: center;"|<b>Oznaczenie</b> | |||
! style="text-align: center;"|<b>Funkcja, sposób podłączenia</b> | |||
|- | |||
| style="text-align: center;"|<b>VIN</b> | |||
| style="text-align: left;"| Wejście zasilania 2...5 V, biegun dodatni | |||
|- | |||
| style="text-align: center;"|<b>GND</b> | |||
| style="text-align: left;"| Masa zasilania – biegun ujemny | |||
|- | |||
| style="text-align: center;"|<b>SI/SDA</b> | |||
| style="text-align: left;"| Wejście danych, podłączyć do <b>MOSI</b> interfejsu SPI uC | |||
|- | |||
| style="text-align: center;"|<b>SC/SCL</b> | |||
| style="text-align: left;"| Wejście sygnału taktującego, podłączyć do <b>SCLK</b> SPI uC | |||
|- | |||
| style="text-align: center;"|<b>SDO</b> | |||
| style="text-align: left;"| Wyjście danych, podłączyć do <b>MISO</b> interfejsu SPI uC | |||
|- | |||
| style="text-align: center;"|<b>CSB</b> | |||
| style="text-align: left;"| Wejście sygnału CS - Chip Select, podłączyć do <b>CE</b> interfejsu SPI uC | |||
|} | |||
</center> | |||
<br><br> | |||
<center> | |||
{| class="wikitable" style="width: 1000px;" | |||
! style="background-color:#D891EF; text-align: center;" colspan="2"|<b>Interfejs SPI 3-przewodowy</b> | |||
|- | |||
! style="text-align: center;"|<b>Oznaczenie</b> | |||
! style="text-align: center;"|<b>Sposób podłączenia</b> | |||
|- | |||
| style="text-align: center;"|<b>VIN</b> | |||
| style="text-align: left;"| Wejście zasilania 2...5 V, biegun dodatni | |||
|- | |||
| style="text-align: center;"|<b>GND</b> | |||
| style="text-align: left;"| Masa zasilania – biegun ujemny | |||
|- | |||
| style="text-align: center;"|<b>SI/SDA</b> | |||
| style="text-align: left;"| Wejście/wyjście danych, podłączyć do <b>SDI/SDO</b> (<b>DI/DO</b>) interfejsu SPI uC | |||
|- | |||
| style="text-align: center;"|<b>SC/SCL</b> | |||
| style="text-align: left;"| Wejście sygnału taktującego, podłączyć do <b>SCK</b> SPI uC | |||
|- | |||
| style="text-align: center;"|<b>SDO</b> | |||
| style="text-align: left;"| Niepodłączony | |||
|- | |||
| style="text-align: center;"|<b>CSB</b> | |||
| style="text-align: left;"| Wejście sygnału CS - Chip Select, podłączyć do <b>CE</b> interfejsu SPI uC | |||
|} | |||
</center> | |||
<br><br> | |||
<center> | |||
{| class="wikitable" style="width: 1000px;" | |||
! style="background-color:#6AFB92; text-align: center;" colspan="2"|<b>Interfejs I2C</b> | |||
|- | |||
! style="text-align: center;"|<b>Oznaczenie</b> | |||
! style="text-align: center;"|<b>Sposób podłączenia</b> | |||
|- | |||
| style="text-align: center;"|<b>VIN</b> | |||
| style="text-align: left;"| Wejście zasilania 2...5 V, biegun dodatni | |||
|- | |||
| style="text-align: center;"|<b>GND</b> | |||
| style="text-align: left;"| Masa zasilania – biegun ujemny | |||
|- | |||
| style="text-align: center;"|<b>SI/SDA</b> | |||
| style="text-align: left;"| Wejście/wyjście danych, podłączyć do <b>SDA</b> interfejsu I2C uC | |||
|- | |||
| style="text-align: center;"|<b>SC/SCL</b> | |||
| style="text-align: left;"| Wejście sygnału taktującego, podłączyć do <b>SCL</b> I2C uC | |||
|- | |||
| style="text-align: center;"|<b>SDO</b> | |||
| style="text-align: left;"| Wejście, wybór adresu: | |||
: podłączony do GND – adres I2C = <b>0x76</b> | |||
: podłączony do VDD – adres I2C = <b>0x77</b> | |||
|- | |||
| style="text-align: center;"|<b>CSB</b> | |||
| style="text-align: left;"| Wejście, wybór interfejsu, dla I2C należy podłączyć do VDD | |||
|} | |||
</center> | |||
<br> | |||
===== Zasilanie ===== | ===== Zasilanie ===== | ||
Moduł KAmod BMP280 może być zasilany napięciem stałym o wartości 2...5 V. | |||
<br> | |||
Na wyprowadzeniu VDD dostępne jest napięcie z wyjścia stabilizatora napięcia 3,3 V umieszczonego na płytce. Jego wartość wynosi 3,3 V przy zasilaniu dołączonym do wyprowadzenia VIN o wartości 3,5…5 V. Natomiast przy niższym zasilaniu, napięcie na wyjściu VDD będzie miało wartość zbliżoną do napięcia na VIN. | |||
<center> | |||
[[File:KAmod_BMP280_pwr.png|none|500px|thumb|center]] | |||
</center> | |||
<br><br> | |||
===== Wymiary ===== | ===== Wymiary ===== | ||
Wymiary płytki KAmod BMP280 to 24x15 mm. Na płytce znajdują się 2 otwory montażowe o średnicy 3,2 mm. | |||
<br> | |||
<center> | |||
[[File:KAmod_BMP280_wym.png|none|600px|thumb|center]] | |||
</center> | |||
<br><br> | |||
===== Program testowy ===== | ===== Program testowy ===== | ||
Program testowy został napisany w środowisku Arduino dla płytki KAmodESP32 POW RS485. Moduł czujnika KAmod BMP280 został podłączony poprzez interfejs I2C.<br><br> | |||
<syntaxhighlight lang="arduino" line> | |||
//example code for KAmodESP32 POW RS485 and KAmod BMP280 | |||
//ino board: ESP32-WROOM-DA Module | |||
//additional wires: | |||
//BMP280 SDO -> GND | |||
//BMP280 CSB -> VDD (3,3V) | |||
#include <Wire.h> | |||
#include <SPI.h> | |||
#include <Adafruit_BMP280.h> | |||
//LED | |||
#define LED_PIN 2 | |||
#define MY_DELAY 2000 | |||
//I2C | |||
#define I2C_SDA 33 | |||
#define I2C_SCL 32 | |||
//SPI | |||
#define SPI_MOSI 13 | |||
#define SPI_MISO 12 | |||
#define SPI_SCK 14 | |||
#define SPI_CS 15 | |||
TwoWire I2CBMP = TwoWire(0); | |||
Adafruit_BMP280 bmp280(&I2CBMP); | |||
int status; | |||
int i; | |||
void setup() { | |||
Serial.begin(115200); | |||
Serial.println("\r\r\rHello. KAmod BMP280 test start"); | |||
pinMode(LED_PIN, OUTPUT); | |||
digitalWrite(LED_PIN, HIGH); | |||
I2CBMP.begin(I2C_SDA, I2C_SCL, 100000); | |||
status = 0; | |||
while (status == 0){ | |||
status = bmp280.begin(0x76); | |||
Serial.print("SensorID was: 0x"); Serial.println(bmp280.sensorID(),16); | |||
if (!status) { | |||
Serial.println(F("Something wrong...")); | |||
delay(3000); | |||
} | |||
} | |||
bmp280.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ | |||
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ | |||
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ | |||
Adafruit_BMP280::FILTER_X16, /* Filtering. */ | |||
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ | |||
} | |||
void loop() { | |||
i++; | |||
digitalWrite(LED_PIN, (i&1)); | |||
Serial.print(F("Temperature = ")); | |||
Serial.print(bmp280.readTemperature()); | |||
Serial.print(" *C; "); | |||
Serial.print(F("Pressure = ")); | |||
Serial.print(bmp280.readPressure()); | |||
Serial.println(" Pa"); | |||
Serial.println(); | |||
delay(MY_DELAY); | |||
} | |||
</syntaxhighlight> | |||
<br><br> | |||
===== Linki ===== | ===== Linki ===== | ||
*[https://wiki.kamamilabs.com/images/d/d9/BMP280-BMP280-DS001-12_Datasheet.pdf Karta katalogowa BMP280] | |||
*[https://github.com/KAMAMI-Labs/KAmod-BMP280.git Przykładowe programy] |
Latest revision as of 11:12, 3 January 2025
Opis
KAmod BMP280 - Precyzyjny czujnik ciśnienia i temperatury z interfejsem SPI oraz I2C
KAmod BMP280 zawiera precyzyjny czujnik BMP280 produkcji Bosch Sensortec, który umożliwia pomiar ciśnienia atmosferycznego oraz temperatury. Na płytce modułu zostały wyprowadzone wszystkie kluczowe sygnały miniaturowego sensora BMP280, co ułatwia jego użycie w aplikacjach modułowych. Komunikacja odbywa się poprzez interfejsy SPI lub I2C wyposażone w obwody translacji napięć sterujących.
Podstawowe parametry
- Zasilanie 2...5 V
- Zawiera precyzyjny czujnik BMP280 produkcji Bosch Sensortec
- Zakres pomiaru ciśnienia: 300...1100 hPa
- Zakres pomiaru temperatury: -40...+85°C
- Umożliwia pomiar ciśnienia atmosferycznego oraz temperatury
- Komunikacja odbywa się poprzez interfejsy SPI lub I2C
- Interfejsy komunikacyjne wyposażone w obwody translacji napięć
Wyposażenie standardowe
Kod | Opis |
---|---|
KAmod BMP280 |
|
Schemat elektryczny
Rozmieszczenie sygnałów na płytce
Oznaczenie | Funkcja |
---|---|
VIN | Wejście zasilania 2...5 V, biegun dodatni |
VDD | Wyjście napięcia zasilającego czujnik |
SI/GND | Masa zasilania – biegun ujemny |
SC/SI/SDA | Wejście szeregowe danych SPI lub linia danych SDA dla I2C |
SC/SCL | Sygnał taktujący SPI oraz I2C |
SDO | Wyjście szeregowe danych SPI lub wybór adresu dla I2C |
CSB | Sygnał CS - Chip Select dla SPI lub wybór interfejsu I2C jeśli połączony do VDD |
Wszystkie sygnały modułu są wyprowadzone na 1-rzędowym złączu J1 o rastrze 2,54 mm. Rozmieszczenie poszczególnych sygnałów zostało opisane na dolnej stronie płytki modułu (Bottom) oraz na rysunku:
Interfejsy komunikacyjne
Czujnik BMP280 udostępnia dwa interfejsy komunikacyjne: SPI lub I2C. Interfejs SPI może działać w konfiguracji 4-przewodowej lub 3-przewodowej. Dokładne informacje dotyczące komunikacji są zawarte w dokumentacji układu BMP280.
Wszystkie sygnały sterujące modułu KAmod BMP280 są wyposażone w obwody translacji napięć i mogą współpracować z systemami, których interfejsy pracują z napięciem o wartości 2...5 V.
Interfejs SPI 4-przewodowy | |
---|---|
Oznaczenie | Funkcja, sposób podłączenia |
VIN | Wejście zasilania 2...5 V, biegun dodatni |
GND | Masa zasilania – biegun ujemny |
SI/SDA | Wejście danych, podłączyć do MOSI interfejsu SPI uC |
SC/SCL | Wejście sygnału taktującego, podłączyć do SCLK SPI uC |
SDO | Wyjście danych, podłączyć do MISO interfejsu SPI uC |
CSB | Wejście sygnału CS - Chip Select, podłączyć do CE interfejsu SPI uC |
Interfejs SPI 3-przewodowy | |
---|---|
Oznaczenie | Sposób podłączenia |
VIN | Wejście zasilania 2...5 V, biegun dodatni |
GND | Masa zasilania – biegun ujemny |
SI/SDA | Wejście/wyjście danych, podłączyć do SDI/SDO (DI/DO) interfejsu SPI uC |
SC/SCL | Wejście sygnału taktującego, podłączyć do SCK SPI uC |
SDO | Niepodłączony |
CSB | Wejście sygnału CS - Chip Select, podłączyć do CE interfejsu SPI uC |
Interfejs I2C | |
---|---|
Oznaczenie | Sposób podłączenia |
VIN | Wejście zasilania 2...5 V, biegun dodatni |
GND | Masa zasilania – biegun ujemny |
SI/SDA | Wejście/wyjście danych, podłączyć do SDA interfejsu I2C uC |
SC/SCL | Wejście sygnału taktującego, podłączyć do SCL I2C uC |
SDO | Wejście, wybór adresu:
|
CSB | Wejście, wybór interfejsu, dla I2C należy podłączyć do VDD |
Zasilanie
Moduł KAmod BMP280 może być zasilany napięciem stałym o wartości 2...5 V.
Na wyprowadzeniu VDD dostępne jest napięcie z wyjścia stabilizatora napięcia 3,3 V umieszczonego na płytce. Jego wartość wynosi 3,3 V przy zasilaniu dołączonym do wyprowadzenia VIN o wartości 3,5…5 V. Natomiast przy niższym zasilaniu, napięcie na wyjściu VDD będzie miało wartość zbliżoną do napięcia na VIN.
Wymiary
Wymiary płytki KAmod BMP280 to 24x15 mm. Na płytce znajdują się 2 otwory montażowe o średnicy 3,2 mm.
Program testowy
Program testowy został napisany w środowisku Arduino dla płytki KAmodESP32 POW RS485. Moduł czujnika KAmod BMP280 został podłączony poprzez interfejs I2C.
//example code for KAmodESP32 POW RS485 and KAmod BMP280
//ino board: ESP32-WROOM-DA Module
//additional wires:
//BMP280 SDO -> GND
//BMP280 CSB -> VDD (3,3V)
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
//LED
#define LED_PIN 2
#define MY_DELAY 2000
//I2C
#define I2C_SDA 33
#define I2C_SCL 32
//SPI
#define SPI_MOSI 13
#define SPI_MISO 12
#define SPI_SCK 14
#define SPI_CS 15
TwoWire I2CBMP = TwoWire(0);
Adafruit_BMP280 bmp280(&I2CBMP);
int status;
int i;
void setup() {
Serial.begin(115200);
Serial.println("\r\r\rHello. KAmod BMP280 test start");
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, HIGH);
I2CBMP.begin(I2C_SDA, I2C_SCL, 100000);
status = 0;
while (status == 0){
status = bmp280.begin(0x76);
Serial.print("SensorID was: 0x"); Serial.println(bmp280.sensorID(),16);
if (!status) {
Serial.println(F("Something wrong..."));
delay(3000);
}
}
bmp280.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
}
void loop() {
i++;
digitalWrite(LED_PIN, (i&1));
Serial.print(F("Temperature = "));
Serial.print(bmp280.readTemperature());
Serial.print(" *C; ");
Serial.print(F("Pressure = "));
Serial.print(bmp280.readPressure());
Serial.println(" Pa");
Serial.println();
delay(MY_DELAY);
}