Stránka 1 z 2

Arduino sensor BMP280 kontra BMP 180

Napsal: 27 črc 2017, 07:48
od Celeron
Vážení, podařilo se vám někomu zprovoznit teploměr, tlakoměr, výškoměr a vario pomocí BMP280? Proti BMP180 by měl už mít k dispozici spočítanou výšku a není třeba se patlat s výpočtama. Zkusil jsem ho vyčítat prográmkem pro BMP180, hodnoty se podle teploty a tlaku mění ale jsou nesmyslný, takže mám asi BMP280-ku dobrou a komunikuje. Jakmile ale spustím příklad z knihovny Adafruit_BME280 tak se senzor nenajde. Zkusil jsem I2C scanerem projet adresaci 0-127 a najde se na adrese 76h. Je to divný, v knihovnách Adafruit má adresu 77h. Na Trubce jsem našel video i příklad, kde maník změní adresu v testovacím programu na BMP280 i v Ardafruit knihovně. Udělal jsem to stejně a stále se BMP nenajde. I když ten maník používá stejnou čínskou destičku s BMP280 jako mám já https://www.youtube.com/watch?v=dF2E9IUYfks, Ardafruit má jinou na který jsou nejspíš převodníky úrovně z 3V3 na 5Vhttps://www.adafruit.com/product/2651. Myslím si, že ty převodníky s tranzistory musí mít inverzní signály a proto mi to s čínou nemaká. Tomu maníkovi z Trubky to sice maká, ale nejspíš na to musí být upravená knihovna ale tu se mi nikde nedaří stáhnout.
Nevíte prosím někdo jak to zprovoznit?
Díky!

Napsal: 27 črc 2017, 10:06
od Zaky
Uchopil jsem procesor, datasheet a osciloskop a zadrátoval a napsal jsem si to celé sám. Ne pro Arduino, ale pro ARMa. Nebyl s tím žádný větší problém. Pokud máš v úmyslu použít nějakou hotovou knihovnu, bude nutné ji pochopit a porovnat komunikaci s datasheetem. Z toho vyplyne, co s tím. Každopádně to nejde dělat naslepo, minimálně bez osciloskopu a debuggeru bych to řešit opravdu nechtěl. Čtu jen tlak a teplotu, zbytek je ale už jen počítání.

Napsal: 27 črc 2017, 13:41
od Celeron
A o který píšeš, že ti chodí BMP180 nebo BMP280? U BMP280 přeci není potřeba nic počítat, algoritmy na přepočet tlaku na nadmořskou výšku již obsahuje v sobě.

Napsal: 27 črc 2017, 14:32
od Zaky
BMP280, je třeba vyčíst kalibrační data a prohnat je vzorcem na výpočet tlaku z raw hodnoty, co přečteš ze senzoru, viz strana 22 datasheetu. Jak jsem psal, nadmořskou výšku neřeším, nepotřebuji jí. Že by ale výšku nějak dával rovnou senzor, to pochybuji, datasheet nic takového neříká.

Napsal: 27 črc 2017, 16:38
od Celeron
Aha, koukal jsem do knihovny BMP 280.ccp a on je výpočet nadmořský z tlaku v ní. Zmátlo mě, že v BMP180 knihovně to nebylo a výpočet se musel dělat až ve void.
Nemám čas se s tím patlat, asi je nesoulad mezi knihovnou a deskou BMP280 co mám. A nebo je BMP280 co mám nějaká divná. Scaner jí sice na I2C najde s adresou 76h ale s knihovnama a u nich přiloženejma příkladama od BME280 to nechodí. A abych bádal nad knihovnama, na to moje znalosti a zkušenosti s C nestačí. Zkusím si sehnat buď BMP180 na kterou mám staženej funkční výškoměr a nebo jinou BMP280 jestli ta moje není vadná.
Asi je v tom taky nějakej bordel, kromě BMP280 je taky BME280 a podle fotek není mezi nima rozdíl akorát BME umí navíc vlhkost. Taky je divný, proč všechny testovací programy mají I2C adresu v knihovně 77h a ten můj má podle scaneru 76h. Na netu to pár lidí řešilo přepisem adresy ale to mi nepomohlo.
Jdu dělat něco užitečnějšího. :wink:

Napsal: 27 črc 2017, 16:58
od Zaky
I2C jsem nezkoumal, s BMP280 komunikuji po SPI.

Napsal: 27 črc 2017, 23:30
od Celeron
A ty máš samostatnej čip a nebo už je na fabrickým modulu jako v odkazech v mým prvním příspěvku?
V datašítu jsem narazil na tohle:
The I²C interface uses the following pins:
 SCK: serial clock (SCL)
 SDI: data (SDA)
 SDO: Slave address LSB (GND = ‘0’, VDDIO = ‘1’)
CSB must be connected to VDDIO to select I²C interface.

Sice jsem nikde na netu neviděl, že by CSB někam připojovali ale kdoví jaká úroveň tam je. Zítra zkusím připojit CSB přes odpor na 3V3, možná kvůli tomu nejde I2C.

SPI bych mohl taky zkusit, v knihovnách je odkomentovaný jako varianta propojení. Na ty mý destičce je SLC, SDA, CSB a SDO (a GND a 3V3).
Podle datašítu BMP280
SPI - I2C - Mini Pro
-------------------------
CSB - CSB - SS (pin 10)
SDI - SDA - MOSI (pin 11)
SCK - SCL - SCK (pin 13)
SDO - SDO - MISO (pin 12)

Doufám, že to přiřazení SPI k MiniPro mám dobře...

Napsal: 28 črc 2017, 01:11
od mtajovsky
To je nějaké divné I²C. I²C má přece 2 dráty pro SCL a SDA. Už jsem se setkal u jednoho displeje s rozhraním SPI, které bylo chybně nazýváno I²C.

Napsal: 28 črc 2017, 06:46
od Atlan
Skor by som povedal ze mu tam cinan osadil 180 a predal ako 280. Uz podla adresy cipu ktora zodpoveda 180.

Napsal: 28 črc 2017, 08:21
od rnbw
Kolko expertov sa tu zase vyrojilo...a pritom staci otvorit datasheety:

BMP180 ma len I2C zbernicu, adresa je prevna 77h.
BMP280 ma SPI aj I2C zbernicu, prepina sa pinom CSB. V I2C su dve mozne adresy: 76h a 77h, prepinaju sa pinom SDO.

Napsal: 28 črc 2017, 08:50
od Zaky
Mám tenhle modul: http://www.ebay.com/itm/BMP280-Pressure ... SwNuxXcS~X , co se konfigurace týče, máš to o příspěvek výš, nebo komplet v datasheetu. Opakuje se to pořád dokola, datasheety je potřeba číst, alespoň za předpokladu, že je pravda, co je v nich psáno, u čínských součástek to nebývá pravidlem, pak tepve začíná ta pravá legrace. Tlakoměr je Bosch a na žádný nesoulad s datasheetem jsem nenarazil.

Napsal: 28 črc 2017, 11:01
od Celeron
Takže ta moje deska BMP280 je navlas stejná jako tvoje BMP180.

to rnbw: Ale kdyť jo, v tom mým předchozím příspěvku jsem se k tomu zapínání I2C v datašítu dopracoval a přepínání adresy jsem věděl už před dvěma dny. Akorát je divný, že to adresování a volbu sběrnice nikdo v příkladech na Trubce nezapojuje.

to Atlan: Na tý desce je určitě BMP280, protože podle I2C scaneru reaguje na úroveň SDO adresou 76 nebo 77. BMP182 přepnout nejde.

to mtajovsky: Co se ti na tom I2C zdá divný? SLC a SDA tam jsou a navíc je SDO a CSB na zapnutí I2C a volbu adresy.

Napsal: 28 črc 2017, 11:04
od Zaky
Moje deska je taky s BMP280, píšu to furt dokola, nemám BMP180, mám BMP280 :-)

Napsal: 28 črc 2017, 11:21
od mtajovsky
Celeron píše:to mtajovsky: Co se ti na tom I2C zdá divný? SLC a SDA tam jsou a navíc je SDO a CSB na zapnutí I2C a volbu adresy.
Sorry, blbě jsem si přečetl popis o přepínání mezi I²C a SPI.

Napsal: 28 črc 2017, 15:45
od Celeron
Tak vyřešíno! Nefunkční knihovna Adafruit_BMP280! Se Sparkfun_BME280 to jelo na první šlápnutí.
Akorát tam jsou dvě zvláštnosti. Pin CSB, kterej by měl navolit I2C zběrnici je úplně vuřt, jestli je na GND nebo na Vcc.
A ještě větší zvláštnost je, že to měří vlhkost. 8O Když na senzor dejchnu vyletí vlhkost skoro na 100% a pak zase klesne na cca 50%. Přitom teplota a tlak zůstanou stejný. BMP280 by neměl mít měření vlhkosti ale jen teplotu a tlak. Že by se číňan spletl a dal tam dražší BME280? A nebo nejsou BMP280 nějaký vlhkostně nepovedený BME280?
Teplota ukazuje o 1,5 st víc a nadmořská výška je na metr přesně. Vlhkost nemám zkontrolovat čím. Kolik může být nyní v běžný obytný místnosti v 1. patře?