Änderungen

KY-015 Kombi-Sensor Temperatur+Feuchtigkeit

2.231 Byte hinzugefügt, 15:22, 11. Feb. 2016
Die Seite wurde neu angelegt: „==Bild== [[Datei:ky-015.jpg|358x358px|none]] ==Technische Daten / Kurzbeschreibung== Chipsatz: DHT11 | Kommunikationsprotokoll: 1-Wire Messbereich Luftfeuchti…“
==Bild==
[[Datei:ky-015.jpg|358x358px|none]]

==Technische Daten / Kurzbeschreibung==
Chipsatz: DHT11 | Kommunikationsprotokoll: 1-Wire Messbereich Luftfeuchtigkeit: 20-90%RH Messbereich Temperatur: 0-50°C

==Pin-Belegung==
[[Datei:3_G_V_S.png|none]]

==Codebeispiel Arduino==
<pre class="brush:cpp">//KY015 DHT11 Temperature and humidity sensor
int DHpin = 8;
byte dat [5];
byte read_data () {
byte data;
for (int i = 0; i <8; i ++) {
if (digitalRead (DHpin) == LOW) {
while (digitalRead (DHpin) == LOW); // wait for 50us
delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'
if (digitalRead (DHpin) == HIGH)
data |= (1 <<(7-i)); // high front and low in the post
while (digitalRead (DHpin) == HIGH); // data '1 ', wait for the next one receiver
}
}
return data;
}

void start_test () {
digitalWrite (DHpin, LOW); // bus down, send start signal
delay (30); // delay greater than 18ms, so DHT11 start signal can be detected

digitalWrite (DHpin, HIGH);
delayMicroseconds (40); // Wait for DHT11 response

pinMode (DHpin, INPUT);
while (digitalRead (DHpin) == HIGH);
delayMicroseconds (80); // DHT11 response, pulled the bus 80us
if (digitalRead (DHpin) == LOW);
delayMicroseconds (80); // DHT11 80us after the bus pulled to start sending data

for (int i = 0; i <4; i ++) // receive temperature and humidity data, the parity bit is not considered
dat[i] = read_data ();

pinMode (DHpin, OUTPUT);
digitalWrite (DHpin, HIGH); // send data once after releasing the bus, wait for the host to open the next Start signal
}

void setup () {
Serial.begin (9600);
pinMode (DHpin, OUTPUT);
}

void loop () {
start_test ();
Serial.print ("Current humdity =");
Serial.print (dat [0], DEC); // display the humidity-bit integer;
Serial.print ('.');
Serial.print (dat [1], DEC); // display the humidity decimal places;
Serial.println ('%');
Serial.print ("Current temperature =");
Serial.print (dat [2], DEC); // display the temperature of integer bits;
Serial.print ('.');
Serial.print (dat [3], DEC); // display the temperature of decimal places;
Serial.println ('C');
delay (700);
}
</pre>
Bürokrat, Administrator
611
Bearbeitungen