• 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
Prośba o sprawdzenie kodu i BMP280
#1
Tongue 
Witam,

Mój projekt to "stacja pogodowa" oparta na BMP280(czujnik zew.) oraz wew. DS18B20. Dopiero kupiłem Arduino i ucze się je programować dlatego zależy mi aby ustabilizować cały układ w początkowej fazie zanim zacznę dokładać następne gadżety..

Po wgraniu kodu wyświetlają się wszystkie wartości z czujników , LCD działa ale gdy dotknę BMP280 lub sam wyświetlacz - LCD zaczyna "wariować" zmienia się kontrast lub czasami zawiesza się odczyt. Pytanie czy podłączenie czujnika oraz wyświetlacza pod te same piny (I2C) może powodować problemy z odczytem danych oraz w jaki sposób należy je podłączyć aby się nie zakłócały. Dodatkowo prosiłbym o opinie fachowca czy kod nadaje się do użytku.

(wszystkie informacje poniżej.)


Pozdrawiam


Działam na Pro Mini 3.3V

"Schemat"(opis) podłączenia

BMP280     (I2C)                  -----> piny A4,A5
Wyświetlacz LCD 2x16 I2C  -----> A4,A5
DS18B20  + rezystor 4.7k -----> standardowo GND i VCC , DATA po GPIO 3



Kod:
#include <Wire.h>
#include "i2c.h"
#include <LiquidCrystal_I2C.h>
#include "i2c_BMP280.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

BMP280 bmp280;
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup()
{
// Inicjacja czujnika(DSB18)
sensors.begin();

Serial.begin(9600);

//START LCD
lcd.begin(16, 2);
lcd.clear();

Serial.println("Probe BMP280: ");
Serial.println(" ");
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();

lcd.setCursor(0, 0);
lcd.print("T1:");
lcd.print(temperature);
lcd.setCursor(0, 1);

lcd.setCursor(0,1);
lcd.print("Cis: ");
lcd.print(pascal/100);
lcd.println(" hPa");

lcd.setCursor(9,0);
lcd.print("T2:");
lcd.print(sensors.getTempCByIndex(0));
lcd.setCursor(14,0);

sensors.requestTemperatures();

delay(5000);
}
 
Odpowiedź
  


Wiadomości w tym wątku
Prośba o sprawdzenie kodu i BMP280 - przez Damianpl - 23-02-2019, 16:07
RE: Prośba o sprawdzenie kodu i BMP280 - przez es2 - 26-02-2019, 20:58
RE: Prośba o sprawdzenie kodu i BMP280 - przez semi - 26-10-2019, 16:46

Skocz do:


Przeglądający: 1 gości