collapse

* Posts Recentes

[Tutorial] Faz a tua própria PCB por KammutierSpule
[Ontem às 09:47]


Impedância (ou porque é que eu não percebo nada disto). por dvdt
[Ontem às 07:45]


Maneira correta de ler o ADC do Arduino ? por jm_araujo
[Ontem às 00:20]


Gearbox por josecarlos
[21 de Outubro de 2018, 23:10]


BostonDynamics - Vai uma mãozinha? por josecarlos
[20 de Outubro de 2018, 11:57]


Tipos de "fontes de energia" por Njay
[20 de Outubro de 2018, 01:53]


HX711 por senso
[17 de Outubro de 2018, 23:36]


LR, passado, presente e futuro por beirao
[17 de Outubro de 2018, 22:54]


PCB de passadeira por beirao
[17 de Outubro de 2018, 22:51]


Proteções gerais de um circuito por KammutierSpule
[17 de Outubro de 2018, 17:33]

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

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

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 334
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.563
  • 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: 334
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