Thông báo

Collapse
No announcement yet.

Tự Động Tắt Thiết Bị Trong Phòng Khi Không Người

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Tự Động Tắt Thiết Bị Trong Phòng Khi Không Người

    T định dùng 2 cặp cảm biến hồng ngoại chắn ngang cửa và lập trình nhận diện người vào phòng và ra khỏi phòng.

    Dùng 2 ngắt ngoài đếm số lượng người vào và người ra và lưu vào 2 biến dếm (nhận diện vào ra bằng cách nhận diện cặp hồng ngoại nào nhận trước lưu vào biến trạng thái).Khi có sự cân bằng 2 biến đếm tiến hành điều khiển thiết bị nhưng hiện đang gặp một số khó khăn sau:
    - Ngắt nhận biễt được khi có sự thay đổi mức lôgic => tín hiệu hồng ngoại phải phát liên tục và xa khoảng 2m5 (để chắn ngang cửa) khi có người nó thay đổi mức => muốn nhờ mọi người chỉ cách phát hồng ngoại liên tục và đạt khoảng cách như vậy.
    - Cách khác phát hồng ngoại dùng dao động IC 555 38khz, lúc này có thể phát xa nhưng khi đó sẽ đếm liên tục => phải thay đổi giải thuật lập trình ( định hướng T là sẽ thăm dò thời gian không tồn tại xung ứng trường hợp phát và thời gian không tồn tại xung khi không có người nhưng chưa mường tượng rõ về giải thuật này)=> nhờ mọi người giúp đỡ.

    Rất mong sự hỗ trợ của các thành viên có kinh nghiệm. ( T thật sự thích phương pháp đầu hơn nếu được nhờ mọi người giúp đỡ ).

  • #2
    Mình đã dùng 555 và nhận thấy rằng nó cũng không hơn gì dùng trực tiếp vi điều khiển. Mình đã dùng AVR và tạo ra tần số 38KHz là bên phát bên thu đạt khoảng cách tới 9m ngon.
    Về giải thuật, bạn cho bên phát phát liên tục một trị số nào đó. Bên thu cũng thu liên tục trị số đó. Nếu có người đi qua thì trị số đó sẽ thay đổi và qua đó tính được một lần vào hoặc ra.
    Mình không biết bạn đã làm được mô đun thu phát hồng ngoại ở mức 9m chưa? Nếu gặp khó khăn thì cứ gọi cho mình.
    Chúc may mắn!
    GTH sản xuất mạch in PCB 1 mặt:
    -phủ xanh: 40.000 đ/dm2
    -không phủ xanh: 30.000 đ/dm2
    -Cung cấp mực cảm quang để làm mạch in
    email:

    Comment


    • #3
      post code mau + mo phong... nho tu van!!

      T đã viết code dùng 8051 và mô phỏng thử với protues nhưng thấy không có tác dụng. Nay gởi file nhờ mọi người tư vấn giúp.
      - file1 pdf: T đo độ rộng xung nếu vượt mức chuẩn 3 lần thì mới xác định thật sự có người vào hay ra.(đo độ rụng xung bằng timer được điểu khiển chạy và dừng bởi 2 chân ngắt ngoài. mức 1=> chạy. mức 0 dừng tức có người phía thu sẽ lên mức 1)
      - file2 pdf: khi mô phỏng thấy không có tác dụng nên bo đi phần lấy mấu thử.
      - file3 pdf: T viết thử code cho trường hợp định thay cảm biến hồng ngoại bằng quang trở và chỉ xét mức sử dụng 2 ngắt ngoài. ( do khi thử cảm biến hồng ngoại dùng con 3 chân thu dù che chắn thế nào miễn có hồng ngoại phát bất kì hướng nào đều thu được nên khi đặt cặp cảm biến gần nhau sẽ bị nhiễu). bên phát dùng IC 555.
      - các file text còn lại là file gốc.
      - file ảnh phía thu và phía phát.

      Comment


      • #4
        File1

        Sensor_vao bit p3.2;ngat ngoai 0
        sensor_ra bit p3.3; ngat ngoai 1
        xn_vao bit 21h
        xn_ra bit 20h
        dkhien bit p1.0
        ;r0=1 co tin hieu o sensor vao
        ;r1=1 co tin hieu o sensor ra
        org 0000h
        mov r2,#2;r2 dinh so lan lap tri hoan dam bao cat ca 2 sensor
        mov r5,#0;r5 luu so nguoi trong phong
        clr dkhien
        clr sensor_vao
        clr sensor_ra
        ljmp main
        main:
        Call detect
        call execute

        ;---tham do xac nhan co nguoi ra vo---

        detect:
        Mov r3,#3 ;dinh so lan lay mau
        mov r4,#3
        mov tmod,#10011001b ;bat dau dinh thoi 16bit khi chan ngat =1
        loop:
        Mov th0,#0f4h
        mov tl0,#47h ;lay mau 3 lan,moi lan 3ms
        mov th1,#0f4h
        mov tl1,#47h
        setb tr0
        setb tr1
        wait:
        Jb tf0,vao
        jb tf1,ra
        jmp wait
        vao:
        Clr tf0
        djnz r3,loop
        mov r0,#1;co tin hieu o sensor vao,chi xuong day khi tf0 tran 3 lan
        cjne r1,#1,next;nhay den next neu chua co th sensor ra truoc
        setb xn_ra;da that su co nguoi ra
        mov r0,#0
        mov r1,#0
        jmp exit
        next:;cho du thoi gian den sensor con lai
        call delay1ms
        djnz r2,detect
        mov r2,#2;nap lai r2 cho truong hop cho nguoi vao
        jmp exit
        ra:
        Clr tf1
        djnz r4,loop
        mov r1,#1
        cjne r0,#1,next1
        setb xn_vao
        mov r0,#0
        mov r1,#0
        jmp exit
        next1:
        Call delay1ms
        djnz r2,detect
        jmp exit
        exit:
        Ret

        ;-----execute--------
        execute:
        Jb xn_vao,tang
        jb xn_ra,giam
        jmp exit1
        tang:
        Inc r5
        setb dkhien
        jmp exit1
        giam:
        Dec r5
        cjne r5,#0,exit1
        clr dkhien
        exit1:
        Ret


        ;-----delay1ms-------
        delay1ms:
        Mov 0bh,#4
        delay1:
        Mov 0ah,#100
        delay2:
        Nop
        djnz 0ah,delay2
        djnz 0bh,delay1
        ret
        end.

        Comment


        • #5
          File 2_ co lay mau

          Sensor_vao bit p3.2;ngat ngoai 0
          sensor_ra bit p3.3; ngat ngoai 1
          xn_vao bit 21h
          xn_ra bit 20h
          dkhien bit p1.0
          ;r0=1 co tin hieu o sensor vao
          ;r1=1 co tin hieu o sensor ra
          org 0000h
          ; mov r2,#2;r2 dinh so lan lap tri hoan dam bao cat ca 2 sensor
          mov r5,#0;r5 luu so nguoi trong phong
          mov r0,#0 ;xoa gia tri ban dau
          mov r1,#0
          clr dkhien
          clr sensor_vao
          clr sensor_ra
          ljmp main
          main:
          Call detect
          call execute

          ;---tham do xac nhan co nguoi ra vo---

          detect:
          ;mov r3,#3 ;dinh so lan lay mau
          ;mov r4,#3
          mov tmod,#10011001b ;bat dau dinh thoi 16bit khi chan ngat =1
          loop:
          Mov th0,#0f4h
          mov tl0,#47h ;lay mau 3 lan,moi lan 3ms
          mov th1,#0f4h
          mov tl1,#47h
          setb tr0
          setb tr1
          wait:
          Jb tf0,vao
          jb tf1,ra
          jmp wait
          vao:
          Clr tf0
          ;djnz r3,loop
          mov r0,#1;co tin hieu o sensor vao,chi xuong day khi tf0 tran 3 lan
          cjne r1,#1,next;nhay den next neu chua co th sensor ra truoc
          setb xn_ra;da that su co nguoi ra
          mov r0,#0
          mov r1,#0
          jmp exit
          next:;cho du thoi gian den sensor con lai
          call delay
          ; djnz r2,detect
          ; mov r2,#2;nap lai r2 cho truong hop cho nguoi vao
          jmp exit
          ra:
          Clr tf1
          ; djnz r4,loop
          mov r1,#1
          cjne r0,#1,next1
          setb xn_vao
          mov r0,#0
          mov r1,#0
          jmp exit
          next1:
          Call delay
          ;djnz r2,detect
          jmp exit
          exit:
          Ret

          ;-----execute--------
          execute:
          Jb xn_vao,tang
          jb xn_ra,giam
          jmp exit1
          tang:
          Inc r5 ;r5 chua so nguoi
          setb dkhien
          jmp exit1
          giam:
          Dec r5
          cjne r5,#0,exit1
          clr dkhien
          exit1:
          Ret


          ;-----delay1ms-------
          delay:
          Mov 0ch,15
          delay1ms:
          Mov 0bh,#4 ;delay de cho qua khoang 20ms
          delay1:
          Mov 0ah,#100
          delay2:
          Nop
          djnz 0ah,delay2
          djnz 0bh,delay1
          djnz 0ch,delay1ms
          ret
          end.

          Comment


          • #6
            File3 dung cam bien quang tro

            Sensor_vao bit p3.2;ngat ngoai 0
            sensor_ra bit p3.3; ngat ngoai 1
            xn_vao bit 21h
            xn_ra bit 20h
            dkhien bit p1.0
            ;r0=1 co tin hieu o sensor vao
            ;r1=1 co tin hieu o sensor ra
            org 0000h

            ljmp main
            org 0003h
            ljmp vao
            org 0013h
            ljmp ra

            ;-------- phan chuong trinh chinh va thuc thi-------
            main:
            Mov r5,#0;r5 luu so nguoi trong phong
            mov r0,#0 ;xoa gia tri ban dau dac trung cho cac sensor
            mov r1,#0
            clr dkhien
            setb ea ;cho phep ngat toan cuc
            setb ex0
            setb ex1 ;cho phep ngat cung
            setb it0
            setb it1 ;cho phep ngat suon
            setb ie0
            setb ie1
            execute:
            Jb xn_vao,tang
            jb xn_ra,giam
            ljmp execute
            tang:
            Inc r5 ;r5 chua so nguoi
            setb dkhien
            ljmp execute
            giam:
            Dec r5
            cjne r5,#0,next2
            clr dkhien
            next2:
            Ljmp execute

            ;-----dap ung ngat 0 phia dau sensor vao------

            vao: ;kiem dau vao nhung xac nhan ra
            call delay
            mov r0,#1;co tin hieu o sensor vao,chi xuong day khi tf0 tran 3 lan
            cjne r1,#1,next;nhay den next neu chua co th sensor ra truoc
            setb xn_ra;da that su co nguoi ra
            mov r0,#0
            mov r1,#0
            jmp exit
            next:;cho du thoi gian den sensor con lai
            call delay
            exit:
            Reti

            ;-------dap ung ngat 1 phia sensor dau ra--------
            ra:
            Call delay
            mov r1,#1;co tin hieu o sensor ra
            cjne r0,#1,next1;nhay den next neu chua co th sensor ra truoc
            setb xn_vao;da that su co nguoi vao
            mov r0,#0
            mov r1,#0
            jmp exit1
            next1:
            Call delay ;cho den dau vao

            exit1:
            Reti




            ;-----delay-------
            delay:
            Mov 0ch,10
            delay1ms:
            Mov 0bh,#4 ;delay de cho qua khoang 12ms
            delay1:
            Mov 0ah,#100
            delay2:
            Nop
            djnz 0ah,delay2
            djnz 0bh,delay1
            djnz 0ch,delay1ms
            ret
            end.

            Comment


            • #7
              ko bit sao T dùng chức năng tải file từ máy không thành công hoài nên post như vậy chứ không cố ý spam.

              Rất mong thành viên diễn đàn góp ý và giúp T gở rối cả về code cũng như cách chống nhiễu cho hồng ngoại (vì thầy yêu cầu dùng cảm biến hồng ngoại). T viết code cho dùng cảm biến quang trở dự trù trường hợp không cách nào chống nhiễu được thì năn nỉ thầy thay dùng quang trở và phát bằng led laser. Cũng xin nhờ mọi người sửa giúp.

              Không có nhiều kinh nghiệm nên làm thực tế gặp rất nhiều khó khăn. Rất mong mọi người giúp đỡ... Nếu được có thể gởi qua mail cho T lhtrung69@student.ctu.edu.vn Thanks rất nhiu.

              Comment


              • #8
                Hi,
                Để đơn giản bác cứ dùng thuật toán cũ nhưng thay vì dùng led thu hồng ngoại bình thường bác dùng con led thu hồng ngoại 3 chân. Con led thu này đã hỗ trợ việc khuếch đại, tách sóng vì thế không khó khi lập trình và độ nhạy nó rất cao. Giá của nó tui mua ở Đà Nẵng là 8K/con. Khi dùng phải cẩn thận, đấu sai chân một phát là đứt luôn đó.
                Thân ái.
                Đường đến những ngày vinh quang không còn xa
                Con đường chúng ta... chúng ta đã chọn.

                Comment


                • #9
                  T đang dùng mắt thu 3 chân mà... nhưng thấy đặt hướng nào cũng nhiễu. Thử khi che kín cả con thu và con phát nó vẫn nhận được tín hiệu. chỉ cần có hồng ngoại là nó nhận. ( Phát xung bằng IC555, Thu chỉ dùng mắt thu 3 chân nối tiếp trở 100 ohm lên nguồn rồi lấy tín hiệu ở chân ra ). Nhieu như vậy không thể phân biệt được khi đặt 2 cặp cảm biến gần nhau. Bởi vậy tính đổi sang dùng quang trở thử.

                  Có sư huynh nào cao tay ấn xem code giùm với vì mô phỏng bằng protues không có biểu hiện gì hết. Còn gỡ rối mô phỏng bằng keil thấy giải thuật chạy thì đúng.

                  Ai có kinh nghiệm hay từng làm rồi help với... lhtrung69@student.ctu.edu.vn
                  Last edited by lhtrung69; 23-10-2009, 17:35.

                  Comment

                  Về tác giả

                  Collapse

                  lhtrung69 Tìm hiểu thêm về lhtrung69

                  Bài viết mới nhất

                  Collapse

                  Đang tải...
                  X