• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
BMP280- kod
#1
Witam,
Męczę się już od dłuższego czasu z poprawnym działaniem czujnika BMP280. Podłączyłem go normalnie- VCC (3.3 V), GND, SCL, SDA. Po wgraniu przykładu z biblioteki I2C-BMP280 nie dzieje się dosłownie nic. W monitorze portu szeregowego nic się nie wyświetla.


#include <Wire.h>
#include "i2c.h"

#include "i2c_BMP280.h"
BMP280 bmp280;

void setup()
{
    Serial.begin(115200);

    Serial.print("Probe BMP280: ");
    if (bmp280.initialize()) Serial.println("Sensor found");
    else
    {
        Serial.println("Sensor missing");
        while (1) {}
    }

    // onetime-measure:
    bmp280.setEnabled(0);
    bmp280.triggerMeasurement();
}

void loop()
{
    bmp280.awaitMeasurement();

    float temperature;
    bmp280.getTemperature(temperature);

    float pascal;
    bmp280.getPressure(pascal);

    static float meters, metersold;
    bmp280.getAltitude(meters);
    metersold = (metersold * 10 + meters)/11;

    bmp280.triggerMeasurement();

    Serial.print(" HeightPT1: ");
    Serial.print(metersold);
    Serial.print(" m; Height: ");
    Serial.print(meters);
    Serial.print(" Pressure: ");
    Serial.print(pascal);
    Serial.print(" Pa; T: ");
    Serial.print(temperature);
    Serial.println(" C");
}

/**<

Program size:
A1.0.5:
A1.5.7: 9680b
A1.6.3: 9664b / 561b

*/
 
Odpowiedź
#2
Jak nic nie wyświetla to znaczy masz uwalone Ardunio ale to przeczy ze sobą bo byś nie wgrał szkicu...

Wiec jak ci pomóc jak twój kod nie działa od pozycji "setup" w monitorze powinno wypluć czy zainicjowało czujnik czy nie.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
(22-06-2019, 23:46)Jarewa0606 napisał(a): Jak nic nie wyświetla to znaczy masz uwalone  Ardunio  ale to przeczy ze sobą  bo byś nie wgrał szkicu...

Wiec jak ci pomóc jak  twój kod nie działa od pozycji  "setup"  w monitorze powinno wypluć czy zainicjowało czujnik czy nie.
Arduino nie jest uszkodzone bo inne projekty działają bez zarzutu.
 
Odpowiedź
#4
(22-06-2019, 21:57)dominoday napisał(a): W monitorze portu szeregowego nic się nie wyświetla.
Sprawdź przy użyciu oscyloskopu lub analizatora logicznego czy, jeśli tak to czy poprawnie, przebiega komunikacja

(22-06-2019, 21:57)dominoday napisał(a): Podłączyłem go normalnie- VCC (3.3 V), GND, SCL, SDA. Po wgraniu przykładu z biblioteki I2C-BMP280 nie dzieje się dosłownie nic.
Tego pewnym być nie można bez sprawdzenia komunikacji oscyloskopem. Stykówki, chińskie kabelki, błąd czai się wszędzie.


Co do programu, wskaż mi fragmenty sprawdzające i komunikujące o błędach w komunikacji przez TWI, bo ja ich nie widzę..
Nie używasz WDG, więc skąd wiesz, czy program nie wisi na "statusie F8 TWI"? Nie widziałem jeszcze softu na Arduino, który byłby odporny na F8 wiec wszystko możliwe.
 
Odpowiedź
#5
Wciśnij dodatkowo w kod obsługę diody wbudowanej w płytkę PIN13 i niech sobie w pętli miga.

A jeszcze zapominałem się zapytać co z diodami RX,TX podczas włączenia zasilania płytki z tym kodem?
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#6
(22-06-2019, 21:57)dominoday napisał(a): W monitorze portu szeregowego nic się nie wyświetla.
To oznacza, ze nawet funkcja setup się nie wykonuje. W jakim stanie jest linia reset? Jak w niskim, to jakie napięcie zasilania uC (może BOD trzyma uC w resecie). Jeśli wgrywasz używając bootloader, to uC nie jest trzymany w resecie ale gdy ISP przez SPI to może tak być. Konwerter USB-UART raczej ok, chyba, że po wgrani szkicu masz błąd a nie napisałeś o tym o ile używasz bootloadera a nie ISP vs SPI.
Jakiej płytki Arduino używasz? Może ja się produkuję o bootloaderach, SPI a używasz STM32 i ST-link z SWD, albo Segger i JTAG?
 
Odpowiedź
#7
Na początek jak masz ustawiony monitor, szkic jest skompilowany na 115200, domyślnie Arduino ma 9600.
Czujniki są na 3.3V lub 5V. Jaką masz wersję, jak podłączyłeś?
Wgraj szkic I2CScanner, sprawdź jaki adres ma czujnik. Przy okazji w ogóle się dowiesz czy jeszcze żyje (3.3V/5V).
Jeśli adres nie będzie się zgadzał z tym w bibliotece szkic nie ruszy, musisz sobie wyedytować plik biblioteki i ustawić taki jak masz.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#8
No wiesz chyba ta podstawowa wiedzę ma jak sie używa monitora portu szeregowego.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#9
Można mieć wiedzę i zrobić głupi błąd. Gdyby czujnik był odłączony/uszkodzony to przynajmniej wydrukowałoby jedną linijkę tekstu zaraz po inicjalizacji UART - "Probe BMP280: ".
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#10
Dwie linijki

Dodatkowo "Sensor found" lub "Sensor missing"
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości