Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
- Committer:
- kaliczp
- Date:
- 2015-01-06
- Revision:
- 7:5b0793a2b391
- Parent:
- 5:76a9332af64c
- Child:
- 8:01e3281451e2
File content as of revision 7:5b0793a2b391:
#include "mbed.h"
DigitalOut myled(LED1); // Activate LED
DigitalIn mybutton(USER_BUTTON); // Activate button
DigitalInOut data_pin(A0); // Activate digital in
Serial pc(SERIAL_TX, SERIAL_RX); // Initialize UART connection
// Use a terminal program (eg. TeraTerm).
Timer tmr; //initialize timer
char adat[40]; // Array for data
int i;
// Function to initialize DHT11
void dht_read(void) {
data_pin.output(); // Set A0 as output
// Initialize measurement > 18 ms low
data_pin = 0;
wait_ms(20);
// After high and release the pin switch input mode
data_pin = 1;
data_pin.input();
// Wait until the end of 80 us low
while(!data_pin.read()) {}
// Wait until end of 80 us high
while(data_pin.read()) {}
// 40 bit, 40 read out cycle
for(i=0; i<40; i++) {
tmr.stop(); // Stop timer if runs
tmr.reset(); // Reset timer
// Wait until pin
while(!data_pin.read()) {}
tmr.start();
while(data_pin.read()) {}
// If DHT11 HIGH longer than 40 micro seconds (hopefully 70 us)
if(tmr.read_us() > 40) {
// bit is 1
adat[i] = 1;
}
}
}
int main() {
pc.printf("Read the DHT11 temperature and humidity sensor!\n"); //Welcome message
while(1) {
if (mybutton == 0) { // Button is pressed
// Reset character array
for(i=0; i < 40; i++){
adat[i] = 0;
}
myled = 1; // LED is ON
dht_read(); // Call the function
// Send result through UART result
for(i=0; i < 40; i++){
pc.printf("%d",adat[i]);
}
pc.printf("\n\r"); // Send a new line and carriage return.
wait_ms(200); // Wait 0.2 sec till continue.
} else {
myled = 0; // LED is OFF
}
}
}