Liczba postów: 2
Liczba wątków: 1
Dołączył: Jun 2019
Reputacja:
0
22-06-2019, 21:57
(Ten post był ostatnio modyfikowany: 22-06-2019, 21:58 przez dominoday.)
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
*/
Liczba postów: 883
Liczba wątków: 19
Dołączył: Jun 2018
Reputacja:
43
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ą.
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
23-06-2019, 07:55
(Ten post był ostatnio modyfikowany: 23-06-2019, 07:59 przez es2.)
(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.
Liczba postów: 883
Liczba wątków: 19
Dołączył: Jun 2018
Reputacja:
43
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ą.
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
23-06-2019, 13:29
(Ten post był ostatnio modyfikowany: 23-06-2019, 21:01 przez es2.)
(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?
Liczba postów: 2,371
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
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.
Liczba postów: 883
Liczba wątków: 19
Dołączył: Jun 2018
Reputacja:
43
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ą.
Liczba postów: 2,371
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
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: ".
Liczba postów: 883
Liczba wątków: 19
Dołączył: Jun 2018
Reputacja:
43
Dwie linijki
Dodatkowo "Sensor found" lub "Sensor missing"
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą.