Arduino sensor BMP280 kontra BMP 180

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

Arduino sensor BMP280 kontra BMP 180

#1 Příspěvek 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!
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#2 Příspěvek 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í.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#3 Příspěvek 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ě.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#4 Příspěvek 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á.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#5 Příspěvek 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:
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#6 Příspěvek od Zaky »

I2C jsem nezkoumal, s BMP280 komunikuji po SPI.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#7 Příspěvek 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...
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#8 Příspěvek 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.

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#9 Příspěvek od Atlan »

Skor by som povedal ze mu tam cinan osadil 180 a predal ako 280. Uz podla adresy cipu ktora zodpoveda 180.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#10 Příspěvek 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.

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#11 Příspěvek 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.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#12 Příspěvek 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.
Jirka

Proč mi nemůže všechno chodit hned ?!!

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#13 Příspěvek od Zaky »

Moje deska je taky s BMP280, píšu to furt dokola, nemám BMP180, mám BMP280 :-)

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#14 Příspěvek 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.

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#15 Příspěvek 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?
Jirka

Proč mi nemůže všechno chodit hned ?!!

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“