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.
Revision 0:fbcee9f83f42, committed 2020-06-06
- Comitter:
- cloudywinnie
- Date:
- Sat Jun 06 13:42:26 2020 +0000
- Commit message:
- Tu_Yawen Automatic fan
Changed in this revision
diff -r 000000000000 -r fbcee9f83f42 TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Sat Jun 06 13:42:26 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
diff -r 000000000000 -r fbcee9f83f42 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Jun 06 13:42:26 2020 +0000 @@ -0,0 +1,87 @@ +#include "mbed.h" +#include "TextLCD.h" + +PwmOut motor(p21); //Control the speed of the fan +DigitalInOut DHT11(p5); // Activate digital in as dht11 Pin +TextLCD lcd(p6, p7, p14, p15, p16, p17); // rs, e, d4-d7 + + +Timer tmr; //initialize timer +uint64_t adat; // 64 bit variable for temporary data +int i; +void dht_read(void) { + DHT11.output(); // Set p5 as output + // Initialize measurement > 18 ms low + DHT11 = 0; + wait_ms(20); + // After high and release the pin switch input mode + DHT11 = 1; + DHT11.input(); + // Wait until the end of 80 us low + while(!DHT11.read()) {} + // Wait until end of 80 us high + while(DHT11.read()) {} + // 40 bit, 40 read out cycle + for(i=0; i<40; i++) { + adat = adat << 1; // Shift for new number + tmr.stop(); // Stop timer if runs + tmr.reset(); // Reset timer + // Wait until pin + while(!DHT11.read()) {} + tmr.start(); + while(DHT11.read()) {} + // If DHT11 HIGH longer than 40 micro seconds (hopefully 70 us) + if(tmr.read_us() > 40) { + // bit is 1 + adat++; + } + } +} + +int main() { + while(1) { + adat = 0; + motor.period(0.010); + dht_read(); // Call the function + int tem = (adat & 0x0000000000ff0000) >> 16; + lcd.printf("Temperature:"); + lcd.printf("%d\n",tem); // Temperature + if(tem <= 20){ + motor = 0; + lcd.locate(4,1); + lcd.printf("Fan OFF"); + } + else if(tem > 20 && tem <= 22) { + motor = 0.2; + lcd.printf("Fan Speed:"); + lcd.locate(12,1); + lcd.printf("20%"); + } + else if(tem > 22 && tem <= 24) { + motor = 0.4; + lcd.printf("Fan Speed:"); + lcd.locate(12,1); + lcd.printf("40%"); + } + else if(tem > 24 && tem <= 26) { + motor = 0.6; + lcd.printf("Fan Speed:"); + lcd.locate(12,1); + lcd.printf("60%"); + } + else if(tem > 26 && tem <= 28) { + motor = 0.8; + lcd.printf("Fan Speed:"); + lcd.locate(12,1); + lcd.printf("80%"); + } + else { + motor = 1; + lcd.printf("Fan Speed:"); + lcd.locate(12,1); + lcd.printf("100%"); + } + wait(2); // Wait 2 sec till continue. + lcd.cls(); // Clear the screen + } +} \ No newline at end of file
diff -r 000000000000 -r fbcee9f83f42 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sat Jun 06 13:42:26 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file