Arduino sensor BMP280 kontra BMP 180
Moderátor: Moderátoři
Arduino sensor BMP280 kontra BMP 180
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!
Nevíte prosím někdo jak to zprovoznit?
Díky!
Jirka
Proč mi nemůže všechno chodit hned ?!!
Proč mi nemůže všechno chodit hned ?!!
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í.
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 :wink:](./images/smilies/icon_wink.gif)
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 :wink:](./images/smilies/icon_wink.gif)
Jirka
Proč mi nemůže všechno chodit hned ?!!
Proč mi nemůže všechno chodit hned ?!!
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...
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 ?!!
Proč mi nemůže všechno chodit hned ?!!
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.
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.
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 ?!!
Proč mi nemůže všechno chodit hned ?!!
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.
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?
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.
![Shocked 8O](./images/smilies/icon_eek.gif)
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 ?!!
Proč mi nemůže všechno chodit hned ?!!