collapse

* Links de Robótica

* Posts Recentes

Power_OK Enermax por almamater
[Hoje às 12:10]


Feira de electricidade e eletrónica por edeweld
[Hoje às 02:02]


Recomendação de um opamp para um DAC r2r por jm_araujo
[Ontem às 10:48]


RN42 e TP-Link MR3020 por doiga
[22 de Novembro de 2017, 19:22]


Ajuda Projecto IR / RF por senso
[22 de Novembro de 2017, 13:15]


Ideias para construir um quadrúpede simples por dropes
[21 de Novembro de 2017, 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]

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

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

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 333
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.402
  • 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: 333
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