Hỏi Xin Code DHT11 Hien Thi LCD - Dien Tu Viet Nam

  • Đăng ký hoặc đăng nhập
    • Logging in... Ghi Nhớ? Ðăng Nhập Forgot password or user name? hoặc Đăng ký
    • Log in with Facebook
  • Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Thông báo Collapse No announcement yet. Hỏi xin Code DHT11 hien thi LCD Collapse X Collapse
  • Bài viết
  • Hoạt động gần đây
  • Tìm kiếm
  • Trang of 1
  • Lọc
  • Giờ All Time hôm nay Last Week Last Month
  • Show All Discussions only Photos only Videos only Links only Polls only Events only
Filtered by: Clear All new posts Trước template Next
  • buitrongthie buitrongthie Thành viên chính thức
    • Tham gia: May 2013
    • Bài viết: 69
    • Share
    • Tweet
    #1

    Hỏi xin Code DHT11 hien thi LCD

    11-07-2013, 11:54 Mình đang muốn sử dụng con DHT11 nhưng code bên box Cảm biến không dùng được. Ai đã dùng con này thì cho mình xin cái code or chỉ mình cách lập trình với. CUNG CẤP LINH KIỆN ĐIỆN TỬ. DỤNG CỤ LÀM MẠCH. CUNG CẤP LED, MẠCH CÔNG SUẤT. CUNG CẤP MODULE LED (TRÁI TIM, CUBE) ------------TẠI HẠ LONG------------------ LIÊN HỆ: 0936524718 Tags: None
  • hohoanganhfu hohoanganhfu Thành viên chính thức
    • Tham gia: Jan 2012
    • Bài viết: 99
    • Share
    • Tweet
    #2 12-07-2013, 20:13 bạn xem ở dây DHT11 - Cảm Biến Độ Ẩm | Diễn Đàn Vi Điều Khiển

    Comment

    Gửi bài viết Huỷ bỏ
  • buitrongthie buitrongthie Thành viên chính thức
    • Tham gia: May 2013
    • Bài viết: 69
    • Share
    • Tweet
    #3 13-07-2013, 13:45 Vấn đề này mình đã giải quyết được rồi + chủ đề post rồi không xoá được với cả chẳng biết sao lại không sửa được nữa nên mình sửa lại để giúp bạn nào cần thì dùng. Sau đay là code và file hex. PHP Code: Project : Do nhiet do va do am bang DHT11 Version : 1 Date : 11/07/2013 Author : Bui Trong Thien Company : ThienTrang-TEC Comments: Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 16,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega8.h> #include <delay.h> #include <delay.h> // Alphanumeric LCD Module functions #include <alcd.h> #define DHT_DATA_IN PINC.2 #define DHT_DATA_OUT PORTC.2 #define DHT_DDR_DATA DDRC.2 #define DDROUT 1 #define DDRIN 0 #define DHT_ER 0 #define DHT_OK 1 #define DHT_Temp 0 #define DHT_RH 1 #define ADC_VREF_TYPE 0xE0 //----------------------------------------------------------// typedef signed char int8_t; typedef signed int int16_t; typedef signed long int int32_t; /* Kieu So Nguyen Khong Dau */ typedef unsigned char uint8_t; typedef unsigned int uint16_t; typedef unsigned long int uint32_t; /* Kieu So Thuc */ typedef float float32_t; //------------------------------------------------------// uint8_t DHT_GetTemHumi (uint8_t select); uint8_t nhiet=0, am=0; unsigned char vin; //--------------------------------------------------------// unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCH; } //_-----------------------------------------------------// Lay du lieu tu DHT11 uint8_t DHT_GetTemHumi (uint8_t select) { uint8_t buffer[5]={0,0,0,0,0}; uint8_t ii,i,checksum; DHT_DDR_DATA=DDROUT; // set la cong ra DHT_DATA_OUT=1; delay_us(60); DHT_DATA_OUT=0; delay_ms(25); // it nhat 18ms DHT_DATA_OUT=1; DHT_DDR_DATA=DDRIN; delay_us(60); if(DHT_DATA_IN)return DHT_ER ; else while(!(DHT_DATA_IN)); //Doi DaTa len 1 delay_us(60); if(!DHT_DATA_IN)return DHT_ER; else while((DHT_DATA_IN)); //Doi Data ve 0 //Bat dau doc du lieu for(i=0;i<5;i++) { for(ii=0;ii<8;ii++) { while((!DHT_DATA_IN));//Doi Data len 1 delay_us(50); if(DHT_DATA_IN) { buffer[i]|=(1<<(7-ii)); while((DHT_DATA_IN));//Doi Data xuong 0 } } } //Tinh toan check sum checksum=buffer[0]+buffer[1]+buffer[2]+buffer[3]; //Kiem tra check sum if((checksum)!=buffer[4])return DHT_ER; //Lay du lieu if (select==DHT_Temp) { //Return the value has been choosen return(buffer[2]); } else if(select==DHT_RH) { return(buffer[0]); } return DHT_OK; } //--------------------------------------------------------------// static void nhietdovadoam() { vin=(read_adc(0)*256)/255; // Nhiet do do bang LM35 nhiet= DHT_GetTemHumi (DHT_Temp); // Nhiet do do bang DHT11 am= DHT_GetTemHumi (DHT_RH); // Do am do bang DHT11 //Nhiet do do bang DHT11 lcd_gotoxy(0,1); lcd_putsf("T ="); lcd_putchar(48+nhiet/10); lcd_putchar(48+nhiet%10); lcd_putchar(0b11011111); // ki tu do lcd_putsf("C"); // Do am do bang DHT11 //Do am do bang DHT11 lcd_gotoxy(9,1); lcd_putsf("H ="); lcd_putchar(48+am/10); lcd_putchar(48+am%10); lcd_putsf("%"); // Nhiet do do bang LM35 lcd_gotoxy(0,0); lcd_putsf("Nhiet do: "); lcd_putchar(48+vin/10); lcd_putchar(48+vin%10); lcd_putchar(0b11011111); // ki tu do lcd_putsf("C"); } // Read the 8 most significant bits // of the AD conversion result // Declare your global variables here void main(void) { // Declare your local variables here PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCCR0=0x00; TCNT0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // USART disabled UCSRB=0x00; ACSR=0x80; SFIOR=0x00; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTD Bit 0 // RD - PORTD Bit 1 // EN - PORTD Bit 3 // D4 - PORTD Bit 4 // D5 - PORTD Bit 5 // D6 - PORTD Bit 6 // D7 - PORTD Bit 7 // Characters/line: 16 lcd_init(16); while (1) { // Place your code here nhietdovadoam(); } } DHT11.zip CUNG CẤP LINH KIỆN ĐIỆN TỬ. DỤNG CỤ LÀM MẠCH. CUNG CẤP LED, MẠCH CÔNG SUẤT. CUNG CẤP MODULE LED (TRÁI TIM, CUBE) ------------TẠI HẠ LONG------------------ LIÊN HỆ: 0936524718

    Comment

    Gửi bài viết Huỷ bỏ
  • daixiem daixiem Thành viên mới
    • Tham gia: Apr 2014
    • Bài viết: 2
    • Share
    • Tweet
    #4 06-05-2014, 17:15 bác Buitrongthien oi,em muốn dùng con dht 11 giao tiep với 89S52 mà code khó quá,bác giúp em với!!thanks bác

    Comment

    Gửi bài viết Huỷ bỏ
  • vankienemk vankienemk Thành viên mới
    • Tham gia: Aug 2013
    • Bài viết: 10
    • Share
    • Tweet
    #5 05-12-2014, 21:07 Mình đa hoàn thành 2 dự án DHT11 giao tiếp với 89s52 và DHT11 với atmega8, mình ko biết upfile lên ntn cả nên mn ai cần gửi mail cho mình:: [email protected] đây là atmega8 với dht11 code https://drive.google.com/file/d/0B2u...ew?usp=sharing

    Comment

    Gửi bài viết Huỷ bỏ
  • sunypower sunypower Thành viên mới
    • Tham gia: Dec 2011
    • Bài viết: 15
    • Share
    • Tweet
    #6 28-03-2015, 13:06 Nguyên văn bởi buitrongthie Xem bài viết .................................................. ............... //_-----------------------------------------------------// Lay du lieu tu DHT11 uint8_t DHT_GetTemHumi (uint8_t select) { uint8_t buffer[5]={0,0,0,0,0}; uint8_t ii,i,checksum; DHT_DDR_DATA=DDROUT; // set la cong ra DHT_DATA_OUT=1; delay_us(60); DHT_DATA_OUT=0; delay_ms(25); // it nhat 18ms DHT_DATA_OUT=1; DHT_DDR_DATA=DDRIN; delay_us(60); if(DHT_DATA_IN)return DHT_ER ; else while(!(DHT_DATA_IN)); //Doi DaTa len 1 delay_us(60); if(!DHT_DATA_IN)return DHT_ER; else while((DHT_DATA_IN)); //Doi Data ve 0 //Bat dau doc du lieu for(i=0;i<5;i++) { for(ii=0;ii<8;ii++) { while((!DHT_DATA_IN));//Doi Data len 1 delay_us(50); if(DHT_DATA_IN) { buffer[i]|=(1<<(7-ii)); while((DHT_DATA_IN));//Doi Data xuong 0 } } } //Tinh toan check sum checksum=buffer[0]+buffer[1]+buffer[2]+buffer[3]; //Kiem tra check sum if((checksum)!=buffer[4])return DHT_ER; //Lay du lieu if (select==DHT_Temp) { //Return the value has been choosen return(buffer[2]); } else if(select==DHT_RH) { return(buffer[0]); } return DHT_OK; } //--------------------------------------------------------------// static void nhietdovadoam() { vin=(read_adc(0)*256)/255; // Nhiet do do bang LM35 nhiet= DHT_GetTemHumi (DHT_Temp); // Nhiet do do bang DHT11 am= DHT_GetTemHumi (DHT_RH); // Do am do bang DHT11 //Nhiet do do bang DHT11 lcd_gotoxy(0,1); lcd_putsf("T ="); lcd_putchar(48+nhiet/10); lcd_putchar(48+nhiet%10); lcd_putchar(0b11011111); // ki tu do lcd_putsf("C"); // Do am do bang DHT11 //Do am do bang DHT11 lcd_gotoxy(9,1); lcd_putsf("H ="); lcd_putchar(48+am/10); lcd_putchar(48+am%10); lcd_putsf("%"); // Nhiet do do bang LM35 lcd_gotoxy(0,0); lcd_putsf("Nhiet do: "); lcd_putchar(48+vin/10); lcd_putchar(48+vin%10); lcd_putchar(0b11011111); // ki tu do lcd_putsf("C"); } }[/PHP] [ATTACH]70004[/ATTACH] Thanks bài viết của bạn Bùi Trọng Thiên, tuy nhiên, nếu trước phân checksum(kiểm tra lôi) nếu không có lệnh reset cho DHT11 thi các bạn chỉ có thể đọc được dữ liêu của duy nhất hoặc độ ẩm hoặc nhiệt độ. Cụ thể cần thêm vào: Code: DHT_DDR_DATA=DDROUT; // set la cong ra DHT_DATA_OUT=1; delay_ms(100);

    Comment

    Gửi bài viết Huỷ bỏ
  • vankienemk vankienemk Thành viên mới
    • Tham gia: Aug 2013
    • Bài viết: 10
    • Share
    • Tweet
    #7 29-03-2015, 07:20 Phần lớn giao tiếp khó là ở chỗ thời gian delay không đúng, các bạn tự tạo một khoảng delay nhất định sau đó kiểm tra trên proteus.

    Comment

    Gửi bài viết Huỷ bỏ
  • arong arong Thành viên mới
    • Tham gia: Feb 2013
    • Bài viết: 6
    • Share
    • Tweet
    #8 15-05-2015, 21:01 cho em hỏi..em cũng sử dụng code trên và kết quả hắn cứ ra giá trị 0 miết..vậy mong chỉ giúp ạ

    Comment

    Gửi bài viết Huỷ bỏ
  • quan_hs quan_hs Thành viên mới
    • Tham gia: Nov 2020
    • Bài viết: 1
    • Share
    • Tweet
    #9 20-11-2020, 11:03 mình cũng bị lỗi thế, chỉ thấy kết quả là 0. Có bác nào biết cách fix ko ạ? Cảm ơn!

    Comment

    Gửi bài viết Huỷ bỏ
Trước template Next Về tác giả Collapse buitrongthie Tìm hiểu thêm về buitrongthie Bài viết mới nhất Collapse
  • torasung Tài liệu biến tần Delta VFD007M43B bởi torasung Chào anh em, Mình đang tìm hiểu và cấu hình một con biến tần Delta model VFD037E43A dùng cho động cơ công suất nhỏ, ứng dụng băng tải và quạt. Trước đây mình chủ yếu làm với vài dòng khác của Delta nhưng chưa dùng nhiều model này, nên muốn...
    • Channel: Điện tử công nghiệp
    hôm nay, 09:13
  • nguyendinhvan Trả lời cho Vấn đề về tốc độ quay bởi nguyendinhvan Sử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
    • Channel: Điện tử truyền hình
    14-12-2025, 19:50
  • Andrea14 Vấn đề về tốc độ quay bởi Andrea14 Chào mọi người, Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
    • Channel: Điện tử truyền hình
    12-12-2025, 12:42
  • bqviet Trả lời cho Đấu tắt điện cho máy tính bảng bởi bqviet Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
    • Channel: Thiết bị điện tử cá nhân
    06-12-2025, 17:17
Xem toàn bộ Copyright © 2000-2025 Dientuvietnam.net. Founded by BinhAnh. Developed by R&P. All rights reserved. Forum software powered by vBulletin® Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Múi giờ GMT+7. Trang này được tạo vào lúc 15:01. Đang tải... Ðồng ý Không OK OK Huỷ bỏ X

Từ khóa » Thư Viện Dht11 Cho Proteus