collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: BMP085 e DHT11 no mesmo sketch  (Lida 2481 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 335
BMP085 e DHT11 no mesmo sketch
« em: 29 de Agosto de 2012, 22:11 »
tentei juntar o output de 2 sensores no mesmo sketch:
- DHT11 - temperatura e humidade do ar;
- BMP085 (temperatura, pressão atmosférica e altitude);
mas deparei-me com um problema... quando executo o serial monitor só aparece o output de um dos sensores, se desligar qualquer um deles o outro funciona perfeitamente.
O DHT11 está ligado nos +5V e o BMP nos +3.3V e os grounds estão em pinos diferentes.
O código que usei foi o seguinte (basicamente juntei os exemplos das 2 libs):
Código: [Seleccione]
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
Adafruit_BMP085 bmp;

void setup() {
  Serial.begin(9600);
  bmp.begin();
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print("Temperature BMP = ");
  Serial.print(bmp.readTemperature());
  Serial.println(" *C");
  Serial.print("Temperature DHT11 = ");
  Serial.print(t);
  Serial.println(" *C");
  Serial.print("Pressure = ");
  Serial.print(bmp.readPressure());
  Serial.println(" Pa");
  Serial.print("Altitude = ");
  Serial.print(bmp.readAltitude());
  Serial.println(" meters");
  Serial.print("Real altitude = ");
  Serial.print(bmp.readAltitude(101500));
  Serial.println(" meters");
  Serial.println();
  delay(500);
}
Agradeço qualquer dica.

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: BMP085 e DHT11 no mesmo sketch
« Responder #1 em: 30 de Agosto de 2012, 01:10 »
Se calhar o problema é das bibliotecas, podem outras bibliotecas em comum e por isso não são compatíveis juntas. Porque é que não tentas fazer isso sem as bibliotecas? Há exemplos sobre o DHT11 e o BMP085 é por I2C, basta usares a biblioteca Wire.h.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: BMP085 e DHT11 no mesmo sketch
« Responder #2 em: 30 de Agosto de 2012, 01:16 »
O BMP não tolera 5v e se estás a usar i2c com pull-ups internos estás a dar 5v ao sensor, tens de usar pull-ups externos alimentados por 3.3v
Avr fanboy

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 335
Re: BMP085 e DHT11 no mesmo sketch
« Responder #3 em: 30 de Agosto de 2012, 11:05 »
como disse no 1º post, o bmp está ligado aos 3,3V

Offline Marvin

  • Mini Robot
  • *
  • Mensagens: 677
    • The scientist and the geek
Re: BMP085 e DHT11 no mesmo sketch
« Responder #4 em: 30 de Agosto de 2012, 11:11 »
como disse no 1º post, o bmp está ligado aos 3,3V

O que o Senso quer dizer é a nivel logico, o bus I2C esta a trabalhar a 5V e o Bmp não tolera 5V nos pinos I2C. (n vi a datasheet mas suponho que seja isso)

Podes precisar de utilizar um logic level converter para esse componente.
Dronetech BlogThe Scientist and the Geek