DHT 11 und DHT 22 an einen Arduino?

Ja .. geht das? Mit

#define DHTPIN 50
#define DHTTYPE DHT22
#define DHTPIN 48
#define DHTTYPE DHT11

lässt sich sicher nicht arbeiten. Kann ich #define mit in den loop schreiben? Oder sich #define`s aufeinander beziehen lassen?

Danke. Lg Jim

define ist ein Prä-Prozessor Makro. Keine Variable. Das ersetzt vor dem Kompilieren einfach den Text. Und befolgt daher keinerlei Scope Regeln. Lokale defines machen daher nicht was du vielleicht denkst. Die sind überall im Code gültig nachdem sie definiert wurden.

Du kannst vielleicht #undef machen um das define rückgängig zu machen und anderweitig zu belegen: http://www.cprogramming.com/reference/preprocessor/undef.html

Das kommt aber darauf an wie du DHTTYPE verwendest. Wird das an eine Funktion oder einen Konstruktor übergeben? In diesem Fall kannst du auch einfach zwei unterschiedliche Namen verwenden.

It depends on the library that you are using.
When you use a library that can do both, and uses a class for each sensor, it should be okay.

http://playground.arduino.cc/Main/DHTLib

#include <dht.h>

#define DHT11_PIN 50
#define DHT22_PIN 48

// create a class for each sensor.
dht dht11;
dht dht22;

// in the loop function you could have this:
int chk11 = dht11.read11(DHT11_PIN);
int chk22 = dht22.read22(DHT22_PIN);

I’m not sure that it will work, but I checked the code and I think it will.