ARM
A31G123ML + Keil uVision10ํธ: DHT11 ์ผ์๋ก ์จ๋/์ต๋ ์ธก์ → LCD์ ์ถ๋ ฅํ๊ธฐ
๊ฒ์๊ต์
2025. 4. 18. 07:55
๋ฐ์ํ
๐ก๏ธ A31G123ML + Keil uVision โ DHT11 ์จ์ต๋ ์ผ์ ์ถ๋ ฅํ๊ธฐ
์ด๋ฒ ํธ์์๋ DHT11 ๋์งํธ ์จ์ต๋ ์ผ์๋ฅผ ์ด์ฉํด ์จ๋์ ์ต๋ ๋ฐ์ดํฐ๋ฅผ ์ธก์ ํ๊ณ , LCD์ ์ค์๊ฐ์ผ๋ก ์ถ๋ ฅ
๐งฐ ์ค๋น๋ฌผ
- ABOV A31G123ML ๋ณด๋
- DHT11 ์จ์ต๋ ์ผ์
- 16x2 HD44780 ์บ๋ฆญํฐ LCD
- 10kฮฉ ํ์ ์ ํญ
๐ ํ๋ก ์ฐ๊ฒฐ
- DHT11 DATA โ P2.2
- VCC โ 5V / GND โ GND
- LCD โ P1.0~P1.5 (4-bit ๋ชจ๋)
๐ป ์ฝ๋ ์์: DHT11 ์ฝ๊ณ LCD์ ์ถ๋ ฅ
// dht11.h, lcd.h ํฌํจ #include "A31G123.h" #include "dht11.h" #include "lcd.h" #includechar buffer[20]; int main(void) { lcd_init(); dht11_init(); while (1) { uint8_t temp = 0, hum = 0; if (dht11_read(&temp, &hum) == 0) { lcd_gotoxy(0, 0); sprintf(buffer, "Temp: %d C", temp); lcd_puts(buffer); lcd_gotoxy(0, 1); sprintf(buffer, "Humi: %d %%", hum); lcd_puts(buffer); } else { lcd_gotoxy(0, 0); lcd_puts("DHT11 Error "); } for (volatile int i = 0; i < 1000000; i++); } }
dht11.c ํ์ผ์ ํ์ด๋ฐ ์ ์ด ๊ธฐ๋ฐ์ผ๋ก 1-wire ํ๋กํ ์ฝ์ ๊ตฌํํด์ค์ผ ํด์. ํ์ด๋จธ/๋นํธ ์ฒ๋ฆฌ ํ์.
โ ํ์ธ ํฌ์ธํธ
- DHT11 ๊ฐ ์ ์ ์์ ์, LCD์ ์จ๋/์ต๋ ์ถ๋ ฅ
- ์์ ์คํจ ์ "DHT11 Error" ์ถ๋ ฅ
- 1์ด ๊ฐ๊ฒฉ์ผ๋ก ํ๋ฉด ๊ฐฑ์
๐ ๋ง๋ฌด๋ฆฌ
์ด๋ฒ ํธ์์๋ ๋์งํธ ํ๊ฒฝ ์ผ์(DHT11)๋ฅผ MCU์ ์ฐ๋ํ๊ณ ,
LCD๋ก ์ค์๊ฐ ์ํ๋ฅผ ์๊ฐํํ๋ ์ค์ต์ ํด๋ณด์์ต๋๋ค.
๋ค์์ ์ด ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด์ ๋ฐ๋ผ ์๋ฆผ/์ ์ดUART, ๋ธ๋ฃจํฌ์ค, WiFi ์ฐ๋
๋ฐ์ํ