collapse

* Links de Robótica

* Posts Recentes

Palavras Cruzadas por Hugu
[Hoje às 00:54]


[Projecto] Bomba Airsoft por jm_araujo
[Ontem às 16:54]


Apresentação por Tech_JA
[Ontem às 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]

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

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

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 331
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: 526
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.390
  • 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: 331
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