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:: vankienemk@yahoo.com đâ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
  • bqviet Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửa bởi bqviet Vi du https://www.eevblog.com/forum/review...-noise-maker)/
    • Channel: Điện tử công suất
    Hôm qua, 20:26
  • Minhdai95 Cần mọi người giúp mạch tạo sóng siêu âm máy rửa bởi Minhdai95 Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
    • Channel: Điện tử công suất
    Hôm qua, 11:37
  • pia2k1 Trả lời cho Đăng rao vặt, thanh lý thì chọn chuyên mục nào ạ? bởi pia2k1 Cùng câu hỏi và cần được giải đáp thêm ạ...
    • Channel: Hướng dẫn sử dụng diễn đàn
    Hôm qua, 11:28
  • mèomướp Trả lời cho Công thức điện tử bởi mèomướp Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
    • Channel: Tâm tình dân kỹ thuật
    26-11-2024, 21:21
  • mèomướp Trả lời cho Xin hỏi về màn hình laptop bởi mèomướp Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
    • Channel: Thiết bị điện tử cá nhân
    26-11-2024, 20:31
  • yname11 Trả lời cho Xin hỏi về màn hình laptop bởi yname11 Ok , thanks bác đã chỉ...
    • Channel: Thiết bị điện tử cá nhân
    26-11-2024, 15:06
  • nguyendinhvan Công thức điện tử bởi nguyendinhvan Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé ! Chập thì thay. Cháy thì tháo Làm thì láo. Báo thì hay May thì khoe. Rủi thì bỏ Thành tích nhỏ. Báo thành to Làm cho có. Báo chi li Sai cả li. Báo...
    • Channel: Tâm tình dân kỹ thuật
    26-11-2024, 00:35
  • yname11 Trả lời cho Xin hỏi về màn hình laptop bởi yname11 có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
    • Channel: Thiết bị điện tử cá nhân
    25-11-2024, 22:31
  • mèomướp Trả lời cho Xin hỏi về màn hình laptop bởi mèomướp Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
    • Channel: Thiết bị điện tử cá nhân
    25-11-2024, 22:14
  • bactho Trả lời cho Tự làm máy đo Cuộn cảm bởi bactho Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
    • Channel: Điện tử dành cho người mới bắt đầu
    25-11-2024, 21:48
Xem toàn bộ Copyright © 2000-2024 Dientuvietnam.net. Founded by BinhAnh. Developed by R&P. All rights reserved. Forum software powered by vBulletin® Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Múi giờ GMT+7. Trang này được tạo vào lúc 01:52. Đang tải... Ðồng ý Không OK OK Huỷ bỏ X

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