Cảm Biến Độ Ẩm HS1101 | Page 2

Thảo luận trong 'Cảm Biến Nhiệt Độ Và Độ Ẩm' bắt đầu bởi tung.lvan, 2 Tháng mười một 2012.

Users Viewing Thread (Users: 0, Guests: 1)

  1. Đăng ngày 15 Tháng tư 2013 #21

    anhbk

    New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $1
    anh ơi cho em hỏi cấp nguồn Vcc cho cảm biến là cấp bao nhiêu V anh
  2. Đăng ngày 26 Tháng tư 2013 #22

    Mai chấn Duy

    New Member

    Số bài viết: 18
    Đã được thích: 1
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $37
    bác có thể giải thích cụ thể hơn về các hàm trong project được không ak.
    và nếu có project và code hoàn chỉnh thì các bác có thể share cho anh em học hỏi được không ak.em chân thành cảm ơn
  3. Đăng ngày 26 Tháng tư 2013 #23

    Mai chấn Duy

    New Member

    Số bài viết: 18
    Đã được thích: 1
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $37
    Các bác có project nào chỉ đo tần số ,nhưng mà tần số là số thực không ak
  4. Đăng ngày 4 Tháng năm 2013 #24

    Mai chấn Duy

    New Member

    Số bài viết: 18
    Đã được thích: 1
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $37
    thắc mắc một chút là:
    em dùng linh kiện như sau:(vì 49.9k,576k,909k mua không được)
    R4=56k
    R2=560k

    thì nếu chẳng hạn độ ẩm bằng 50%
    thì tính ra tần số sẽ là:

    F=1/(50*(56000+2*560000)*ln2)=2.45E-8

    thì lấy đâu ra tần số là kHz vậy mấy bác.
    Hay là em sai chỗ nào.Nếu bác nào thấy chỗ sai chỉ cho em với

    và mấy bác ở MinhHa có mấy con trở
    49.9k,576k,909k không em mua ít
  5. Đăng ngày 13 Tháng năm 2013 #25

    nhan09153064

    New Member

    Số bài viết: 3
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $3
    cho mình hỏi HS1101 có đo được độ ẩm đất không?
  6. Đăng ngày 13 Tháng năm 2013 #26

    dan.nvan

    Nhóm MCU

    Số bài viết: 83
    Đã được thích: 112
    Điểm thành tích: 33
    Giới tính: Nam
    Tiền:
    $19,028
    - Chào bạn
    * Mình chưa thử con này đo độ ẩm đất, nhưng theo mình là không được
    * HS1101 hoạt động theo nguyên tắc biến dung, khi độ ẩm môi trường thay đổi, làm lớp điện mối giữa 2 bản cực của HS1101 biến đổi. Điều này làm cho điện dung của nó biến thiên
    * Khi ở trong môi trường đất, HS1101 rất dễ bị độ ẩm của đất làm cho nó bị động nước, điều này dẫn đến nó đo không được chính xác.
    ==> Nhìn chung bạn có thể tự kiểm chứng rồi thông tin cho mọi người
    Ô Mai Chua Kay and tranhoang_ht like this.
  7. Đăng ngày 14 Tháng năm 2013 #27

    dan.nvan

    Nhóm MCU

    Số bài viết: 83
    Đã được thích: 112
    Điểm thành tích: 33
    Giới tính: Nam
    Tiền:
    $19,028
    Chào bạn
    - Mình gửi bạn file excel, bảng tra tần số. Em điền giá trị điện trở bạn vào rồi, bạn xem nha. Bạn có thể dùng bẳng đó để tra tần số với những giá trị điện trở khác nhau Đăng ký hoặc đăng nhập để thấy Link -  Ủng hộ bài viết bằng nút " Thích"
    hoi.elec and Mai chấn Duy like this.
  8. Đăng ngày 14 Tháng năm 2013 #28

    BanLinhKien.Vn

    Mod

    Số bài viết: 86
    Đã được thích: 28
    Điểm thành tích: 18
    Nơi ở: Số 11 Ngõ 66 Đại Cồ Việt - Hai Bà Trưng - Hà Nội
    Chào bạn!
    Đo độ ẩm của đất bạn có thể dùng loại như hình này:
    CB Do Do Am.jpg
    Module này có tác dụng:
    Cảnh báo độ ẩm của đất để tưới hoặc bơm nước tự động.
    Tín hiệu trả về của nó dạng ADC hoặc số ( Dùng LM393)
    Bạn có thể tham khảo trên trang chủ ( Coming Soon..)
    Ô Mai Chua Kay thích bài này.
  9. Đăng ngày 14 Tháng năm 2013 #29

    Mai chấn Duy

    New Member

    Số bài viết: 18
    Đã được thích: 1
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $37
    cảm ơn anh nhiều.mà cho em hỏi
    Hình như là anh Dân học Công Nghiệp phải không ak?
  10. Đăng ngày 14 Tháng năm 2013 #30

    dan.nvan

    Nhóm MCU

    Số bài viết: 83
    Đã được thích: 112
    Điểm thành tích: 33
    Giới tính: Nam
    Tiền:
    $19,028
    Anh học Bách Khoa, K47. Sao em lại hỏi vậy, thấy anh giống người nào ah
  11. Đăng ngày 21 Tháng năm 2013 #31

    Mai chấn Duy

    New Member

    Số bài viết: 18
    Đã được thích: 1
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $37
    vâng em nhầm anh với anh Dân học CN Hà Nội ak
  12. Đăng ngày 22 Tháng năm 2013 #32

    nhan09153064

    New Member

    Số bài viết: 3
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $3
    em cam on anh nhieu
  13. Đăng ngày 22 Tháng năm 2013 #33

    nhan09153064

    New Member

    Số bài viết: 3
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $3
    cho e hoi con cam bien do am SHY co đo được độ ẩm đất k j a?
  14. Đăng ngày 27 Tháng năm 2013 #34

    spk_lionking

    New Member

    Số bài viết: 3
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $294
    Chào mọi người, mình đang làm về mạch đo nhiệt độ - độ ẩm dùng DS18B20 và HS1101. Mình đang vướng tại đoạn code đo độ ẩm, vì sau khi so sánh tần số đo được với giá trị trong mảng, nó không trả về vị trí của phần tử. Hiển thị ra toàn kết quả "trên trời". Mong các bạn giúp đỡ
    Mã:
    #include<REGX52.H>
    #include<stdio.h>
     
    #define RS P2_0
    #define RW P2_1       
    #define EN P2_2
    #define LCD_PORT P1
    #define DQ P2_6
     
    /////////khai bao bien toan cuc/////////////////
    //unsigned char temp;
    //unsigned char k;
    unsigned int tanso;
    unsigned int code f[]={7410,7392,7374,7357,7340,7323,7307,7290,7274,7259,7243,7228,7213,7198,7183,7169,7155,7140,7127,7113,7099,7086,7072,7059,7046,7033,7020,7007,6995,6982,6969,6957,6945,6932,6920,6908,6896,6884,6872,6860,6848,6836,6824,6812,6800,6788,6776,6764,6752,6740,6728,6716,6704,6692,6680,6668,6656,6643,6631,6619,6606,6594,6581,6568,6556,6543,6530,6517,6504,6491,6477,6464,6450,6437,6423,6409,6395,6381,6367,6352,6338,6323,6309,6294,6279,6264,6248,6233,6217,6202,6186,6170,6154,6137,6121,6104,6087,6053,6036,6019};
     
    ////////cac ham de lay/////////////////////////
    void delay_ms(unsigned int Time)
    {
        unsigned int i,j;
        for(i=0;i<Time;i++)
        {
            for(j=0;j<125;j++);
        }
    }
     
    void delay_us(unsigned int Time)
    {
        unsigned int i,j;
        for(i=0;i<Time;i++)
        {
            for(j=0;j<2;j++);
        }
    }
     
    void delay_18B20(unsigned char x)
    {
      unsigned char i;
      for(i=0;i<x;i++);
    }
    ///////////////////////////////////////////////
     
    ////////cac ham ve LCD 20X4////////////////////
     
    void LCDWriteCmd(unsigned char c)    //CT con ghi lenh len LCD
    {
    RS=0;
    RW=0;
    LCD_PORT=c;
    EN=1;
    EN=0;
    delay_ms(5);
    }
     
    void LCDWriteData(unsigned char c)    //CT con ghi du lieu tu LCD
    {
    RS=1;
    RW=0;
    LCD_PORT=c;
    EN=1;
    EN=0;
    delay_ms(5);
    }
     
    void LCD_init()          // Khoi tao LCD
    {
    delay_ms(15);
    LCDWriteCmd(0x38);
    LCDWriteCmd(0x38);
    LCDWriteCmd(0x0C);
    LCDWriteCmd(0x01);     
    }
     
    void LCD_clear()    //xoa man hinh LCD
    {
    LCDWriteCmd(0x01);
    }
     
    void LCD_home()        //dua con tro ve dau dong 1
    {
    LCDWriteCmd(0x80);
    }
     
    void LCD_putstr(unsigned char *s)    //ghi 1 chuoi len LCD
    {
    while (*s)
    {
      LCDWriteData(*s);
      s++;
    }
    }
    /////////////////////////////////////////////////////////////////
     
    ////////cac ham ve DS18B20//////////////////////////////////////
     
    void Init_DS18B20()      //ham khoi tao DS18B20
    {
        unsigned char x=0;
        DQ = 1;
        delay_18B20(8);
        DQ = 0;
        delay_18B20(80);
        DQ = 1;
        delay_18B20(14);
        x=DQ;
        delay_18B20(20);
       
    }
     
    unsigned char ReadOneChar()  //ham doc 1 byte vao DS18B20
    {
        unsigned char i=0;
        unsigned char dat = 0;
        for (i=8;i>0;i--)
        {
            DQ = 0;
            dat>>=1;
            DQ = 1;
            if(DQ)
            dat|=0x80;
            delay_18B20(5);
        }
        return(dat);
    }
     
    void WriteOneChar(unsigned char dat) //ham viet 1 byte vao DS18B20
    {
        unsigned char i=0;
        for (i=8; i>0; i--)
        {
            DQ = 0;
            DQ = dat&0x01;
            delay_18B20(5);
            DQ = 1;
            dat>>=1;
        }
    }
     
    unsigned char ReadTemp()
    {
        unsigned char a=0;
        unsigned char b=0;
        unsigned char temp=0;
        EA=0;
        Init_DS18B20();
        WriteOneChar(0xCC);
        WriteOneChar(0x44);
        delay_ms(100);
       
        Init_DS18B20();
        WriteOneChar(0xCC);
        WriteOneChar(0xBE);
        delay_ms(100);
     
        a=ReadOneChar();
        b=ReadOneChar();
        Init_DS18B20();
        temp=(b<<4)|(a>>4);
        return(temp);
        EA=1;
    }
    ////////////////////////////////////////////////////////
     
    ////////ham ve HS1101//////////////////////////////////
    void ngat_trantimer0() interrupt 1   
    {    unsigned int Time;
        TH0=0xFC;
        TL0=0x2B;
        Time++;
        if(Time==1000)                                     
        {
            Time=0;                                          // dinh thoi 1s
            TR1=0;
            tanso=(((TH1&0x00ff)<<8)|(TL1&0x00ff));          //tan so bang so xung dem duoc trong 1s
            TH1=0;
            TL1=0;
            TR1=1;
        }
        TF0=0;   
    }
     
    unsigned char humid()
    {    unsigned char k;
        while(tanso<f[k])
        {
            k++;
        }
        return(k);
       
    }     
    //////////////////////////////////////////////////
     
    ////////ham main/////////////////////////////////
     
    void main()
    {
        float Nhiet_Do;
        unsigned char do_am;
        unsigned char Lcd_Buff[5];
        unsigned char Lcd_Buff1[5];
        TMOD=0x51;    //timer 0-16bit, counter 1-16bit
        IE=0x82;    //thiet lap ngat timer 0
        TR0=1;
        LCD_init();   
        LCD_clear();
        LCD_home();
        LCD_putstr("DO AN MON HOC 2");
        LCDWriteCmd(0xC0);
        LCD_putstr("DO NHIET DO & DO AM");
        LCDWriteCmd(0x94);
        LCD_putstr("NHIET DO:");
        LCDWriteCmd(0xD4);
        LCD_putstr("DO AM:");
        delay_ms(50);
        while(1)
            {   
                do_am=humid();
                sprintf(Lcd_Buff1,"%3.0d",do_am);
                LCDWriteCmd(0xDC);
                LCD_putstr(Lcd_Buff1);
                delay_ms(300);
           
                Nhiet_Do = ReadTemp();       
                //sprintf(Lcd_Buff,"NHIET DO: %2.0f oC",Nhiet_Do);
                sprintf(Lcd_Buff,"%.0f",Nhiet_Do);
                LCDWriteCmd(0x9D);
                LCD_putstr(Lcd_Buff);
                delay_ms(300);
     
                //do_am=humid();
                //sprintf(Lcd_Buff,"DO AM: %2.0d",vitrf);
                //do_am=humid();
               
            }
    }
     
    
    Dưới đây là file mô phỏng + code

    Các file đính kèm:

    • CODE.rar
      Kích thước:
      74.6 KB
      Đọc:
      60
  15. Đăng ngày 27 Tháng năm 2013 #35

    spk_lionking

    New Member

    Số bài viết: 3
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $294
    hok có bác nào giúp mình à
  16. Đăng ngày 25 Tháng sáu 2013 #36

    DHThang

    New Member

    Số bài viết: 25
    Đã được thích: 3
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $184
    Xin lỗi Vì Spam
  17. Đăng ngày 25 Tháng sáu 2013 #37

    DHThang

    New Member

    Số bài viết: 25
    Đã được thích: 3
    Điểm thành tích: 3
    Giới tính: Nam
    Tiền:
    $184
    Xin lỗi Vì Spam
  18. Đăng ngày 15 Tháng tám 2013 #38

    tranhoang_ht

    New Member

    Số bài viết: 2
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $2
    Nhờ các bác trong diễn đang giúp đỡ em tí, e làm luận văn gần hết hạn rồi mà cái Cảm biến chưa biết thế nào (e làm mô hình sấy).
    Em dùng CB nhiệt độ ổn định nhiệt độ, CB độ ẩm đặt giá trị cho nó, khi độ ẩm đạt giá trị đặt thì nó đưa tín hiệu tác động (VD 13%). Có bác nào biết cách xử lí tín hiệu để con CB độ ẩm tác động ko? (chẳng hạn như nó đưa tín hiệu tới role). CB nhiệt độ và độ ẩm e có thể dùng chung luôn đc ko? Nhiệt độ e ổn định khoảng 40 deg C - độ ẩm 13% vậy mình xài con nào là vừa các bác?
    Mong các bác giúp đỡ!
  19. Đăng ngày 15 Tháng tám 2013 #39

    tranhoang_ht

    New Member

    Số bài viết: 2
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $2
    Nhờ các bác trong diễn đang giúp đỡ em tí, e làm luận văn gần hết hạn rồi mà cái Cảm biến chưa biết thế nào (e làm mô hình sấy).
    Em dùng CB nhiệt độ ổn định nhiệt độ, CB độ ẩm đặt giá trị cho nó, khi độ ẩm đạt giá trị đặt thì nó đưa tín hiệu tác động (VD 13%). Có bác nào biết cách xử lí tín hiệu để con CB độ ẩm tác động ko? (chẳng hạn như nó đưa tín hiệu tới role). CB nhiệt độ và độ ẩm e có thể dùng chung luôn đc ko? Nhiệt độ e ổn định khoảng 40 deg C - độ ẩm 13% vậy mình xài con nào là vừa các bác?
    Mong các bác giúp đỡ!
  20. Đăng ngày 22 Tháng tám 2013 #40

    khánh thân

    New Member

    Số bài viết: 7
    Đã được thích: 0
    Điểm thành tích: 1
    Giới tính: Nam
    Tiền:
    $7
    thật là khổ cho bạn quá, hỏi mãi mà không ai trả lời :D
    mình có một vài gợi ý đây, hi vọng có thể giúp đỡ bạn phần nào.
    về thuật toán, sau khi bạn đọc xong nhiệt độ và độ ẩm, hiển thị lên lcd hay led 7 thanh xong rồi, bạn xuống hàng viết thêm dòng này nếu như bạn cần cả nhiệt độ và độ ẩm cùng bằng giá trị được set:
    if((nhiet_do>=40)&&(do_am>=13)) tin_hieu=1;
    else tin_hieu=0;
    còn bạn cần từng cái một, hoặc nhiệt độ hoặc độ âm đến ngưỡng thì:
    if(nhiet_do>=40) tin_hieu1=1;
    else tin_hieu1=0;
    if(do_am>=13) tin_hieu2=1;
    else tin_hieu2=0;
    còn đây là phần cứng:
    Đăng ký hoặc đăng nhập để thấy Link -  Ủng hộ bài viết bằng nút " Thích"

Chia sẻ trang này