Проблема с bmp280
- Войдите на сайт для отправки комментариев
Сб, 02/10/2021 - 12:32
Вывожу в порт значения высоты и, допустим, показывает 100 метров, а потом раз и подпрыгнуло до 20000, потом так же 100 метров, а потом раз и опять до 20000 подпрыгнуло и так несколько раз и потом программа как будто останавливается, а потом если еще раз открыть порт, то пишет что модуль не подключен.
Код из примера
/*************************************************************************** This is a library for the BMP280 humidity, temperature & pressure sensor Designed specifically to work with the Adafruit BMP280 Breakout ----> http://www.adafruit.com/products/2651 These sensors use I2C or SPI to communicate, 2 or 4 pins are required to interface. Adafruit invests time and resources providing this open source code, please support Adafruit andopen-source hardware by purchasing products from Adafruit! Written by Limor Fried & Kevin Townsend for Adafruit Industries. BSD license, all text above must be included in any redistribution ***************************************************************************/ #include <Wire.h> #include <SPI.h> #include <Adafruit_BMP280.h> #define BMP_SCK (13) #define BMP_MISO (12) #define BMP_MOSI (11) #define BMP_CS (10) Adafruit_BMP280 bmp; // I2C //Adafruit_BMP280 bmp(BMP_CS); // hardware SPI //Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); void setup() { Serial.begin(9600); Serial.println(F("BMP280 test")); //if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) { if (!bmp.begin()) { Serial.println(F("Could not find a valid BMP280 sensor, check wiring or " "try a different address!")); while (1) delay(10); } /* Default settings from datasheet. */ bmp.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() { Serial.print(F("Temperature = ")); Serial.print(bmp.readTemperature()); Serial.println(" *C"); Serial.print(F("Pressure = ")); Serial.print(bmp.readPressure()); Serial.println(" Pa"); Serial.print(F("Approx altitude = ")); Serial.print(bmp.readAltitude(1013.25)); /* Adjusted to local forecast! */ Serial.println(" m"); Serial.println(); delay(2000); }
Прицепил трехвольтовый модуль к пятивольтовому МК?
на 3.3V контакт
а сигнальные сопряг?
а сигнальные сопряг?
как понять?
а сигнальные сопряг?
как понять?
перевести уровни сигналов с 3.3 вольта до 5 требуемые ардуине и обратно
перевести уровни сигналов с 3.3 вольта до 5 требуемые ардуине и обратно
Ардуина не требует уровни сигналов строго 5В, там и 3.3В будет достаточно. А вот для модуля могут быть варианты...
У меня 2 BME280 и так работают, без level converters. На тот момент CD4050 еще не приехали, я попробовал, всё заработало. Потом забил.
По SPI?
нет, по I2C
А у TC по SPI. Не знаю, что там у боша внутрях, но китайцы не зря левелшифтеры ставят. Могли бы и сыканомить.