Module MT8870 DTMF

Thảo luận trong 'Sản Phẩm Mới' bắt đầu bởi linh.mta, 27 Tháng chín 2014.

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

Lượt xem: 1,719

  1. linh.mta

    linh.mta New Member

    Xin chào các bạn !
    Hôm nay mình xin giới thiệu Module MT8870 DTMF .

    [​IMG]

    Moudle MT8870 có một hàng jum giao tiếp:
    +Q1->Q4 : Đầu ra dữ liệu 4 bit.
    +STQ : Đầu ra báo hiệu có thông tin DTMF được gửi.
    STQ=1 : Khi có thông tin được gửi đến.
    STQ=0 : Khi không có thông tin.
    +/STQ : Đầu ra đảo của STQ.
    +IN : Đầu vào audio
    +GND
    +VCC

    Tính năng :
    +Thiết bị thu tín hiệu DTMF.
    +Tiêu thụ điện năng thấp.
    +Điện áp sử dụng : +5V
    Ứng dụng :
    +Điều khiển từ xa.
    +Thiết bị thu trong hệ thống viễn thông British Telecom (BT) hoặc CEPT Spec.
    +Hệ thống nhắn tin vô tuyến.
    +Hệ thống thẻ tín dụng.
    +Máy trả lời điện thoại tự động.

    Nguyên lý hoạt động:
    +DTMF là gì ?
    Dual Tone Multi-Frecenry : là một phương pháp để hưỡng dẫn một hệ thống chuyển mạch của số điện thoại được gọi đi hoặc ra lệnh cho hệ thống chuyển mạch hoặc thiết bị điện thoại có liên quan bằng cách truyền đi tín hiệu.
    DTMF được tích hợp trên hầu hết điện thoại trong hệ thốn viễn thông .
    +Hệ thống DTMF sử dụng 8 tín hiệu tần số khác nhau được truyền đi theo cặp tần số đại diện cho 16 con số,biểu tượng và chữ cái có sẵn trên một bàn phím điện thoại thông dụng.
    [​IMG]
    +MT8870 là một thiết bị thu tín hiệu DTMF có tích hợp sẵn bộ lọc tín hiệu DTMF và giải mã chuyển đổi 16 mã DTMF thành một số 4bit dạng số ở đầu ra :
    [​IMG]
    +MT8870 có thể ứng dụng để thu tín hiệu DTMF thông qua tín hiệu Audio lấy từ điện thoại có tích hợp tính năng DTMF

    Giao tiếp với Vi điều khiển :

    Ứng dụng cơ bản nhất có thể sử dụng Module MT8870 DTMF trong việc điều khiển bật tắt các thiết bị từ xa thông qua điện thoại .

    Ở đây mình sử dụng VĐK ATmega16 để đọc dữ liệu từ module MT8870 DTMF và điều khiển thiết bị bằng Relay,Sừ dụng loa để báo hiệu thiết bị được bật hay tắt (Loa kêu trong 1s Thiết bị tắt,Loa kêu trong 5s thiết bị được bật).
    Modoule MT8870 được kết nối với một điện thoại di động thông qua jack audio,ở chế độ tự động trả lời cuộc gọi đến,âm thanh bàn phím điện thoại được bật .
    +Nguyên lý :

    [​IMG]
    +Code đơn giản như sau :
    Mã:
    #include <mega16.h>
    #include <delay.h>
    
    #define SPEAKER PORTD.5
    #define DDR_SPEAKER DDRD.5
    
    #define RELAY  PORTD.0
    #define DDR_RELAY  DDRD.0
    
    #define MT8870_STQ  PORTD.1
    #define DDR_MT8870_STQ  DDRD.1
    
    #define MT8870_Data PINB
    #define DDR_MT8870_Data DDRB
    
    #define DDROUT  1
    #define DDRIN  0
    #define ON  1
    #define OFF 0
    void main(void)
    {
    unsigned char Temp;
    bit Flag=0;
    DDR_SPEAKER=DDROUT;
    DDR_RELAY=DDROUT;
    DDR_MT8870_STQ=DDRIN;
    DDR_MT8870_Data=DDRIN;
    while (1)
          {  
            //STQ=1 co phim dang duoc bam
            if(MT8870_STQ==1)
            {
                delay_ms(10);
                if(MT8870_STQ==1)
                {
                    Temp=MT8870_Data;
                    Temp&=0x0F;
                    if(Temp==0x01)
                    {      
                        if(Flag==0)
                        {          
                            RELAY=ON;
                            SPEAKER=ON;
                            delay_ms(5000);
                            SPEAKER=OFF;
                        }
                        else if(Flag==1)
                        {        
                            RELAY=OF;
                            SPEAKER=ON;
                            delay_ms(1000);
                            SPEAKER=OFF;
                        }
                        Flag=~Flag;
                    }
                    while(MT8870_STQ==1);
                }
                      
            }
    
          }
    }
    -Chân STQ của Moudule MT8870 sẽ lên mức cao khi có tín hiệu DTMF được truyền đến , xuống mức thấp khi không có tín hiệu DTMF .
    Ta sẽ đọc tín hiệu từ chân STQ này để xác định có tín hiệu DTMF được gửi từ điện thoại đến hay không
    -Ở đây sử dụng phím có mã là (0001) tương ứng phím bấm 1 trên bàn phím điện thoại để bật tắt thiết bị

    Thật đơn giản để điều khiển các thiết bị từ xa thông qua chiếc điện thoại di động từ bất cứ đâu trên trái đất miễn ở đó có sóng điện thoại di động.
    Các bạn có thể mở rộng điều khiển 16 thiết bị hay nhiều hơn .

    Đón xem video demo:

    Continue...
    Last edited: 27 Tháng chín 2014
    admin and quang.dt7bk like this.
  2. ledacdam

    ledacdam Member

    Cảm ơn bạn vì bài viết...Bạn có thể hướng dẫn mọi người sử dụng module này bằng 8051 được không ?
    frank59 thích bài này.
  3. ngocsi

    ngocsi New Member

    module mt8870 đó có kết nối với sim hay đường dây line nữa ko vậy bạn ,cách điều khiển từ di động làm sao hả bạn.
  4. djtuannguyen

    djtuannguyen New Member

    #Linh Mình muốn dùng để điều khiển nhiều thiết bị ấy, bạn hướng dẫn mình mạch và viết code được không? thank
  5. quang.dt7bk

    quang.dt7bk Admin

    Chào bạn!
    Nếu muốn điều khiển nhiều thiết bị bạn lập trình như sau nhé:
    HTML:
    if(MT8870_STQ==1)
    {
                delay_ms(10);
                if(MT8870_STQ==1)
                {
                    Temp=MT8870_Data;    
                    if(Temp=0x01)    // An phim 1
                    {
                         // Cau lenh dieu khien thiet bị 1
                    }                
                    else if(Temp=0x02)    // An phim 2
                    {
                         // Cau lenh dieu khien thiet bị 2
                    }
                    else if(Temp=0x03)    // An phim 3
                    {
                         // Cau lenh dieu khien thiet bị 3
                    }
                    //...tuong tu cho nhung thiet bi khac
                }
                while(MT8870_STQ==1);
    }
    Các mã so sánh ở trên thì bạn xem lại bảng giá trị trong bài viết của AD nhé.
    Chúc bạn thành công!
    Nguyebvanty thích bài này.
  6. Nguyebvanty

    Nguyebvanty New Member

    Có ai bán DTMF ko giá bao nhiêu vậy mình đang cần..
  7. thientanvt

    thientanvt New Member

    Bạn cần mạch như thế nào.
  8. Nguyebvanty

    Nguyebvanty New Member

    Modul trên bao nhiêu tiền vậy bạn
  9. Nguyebvanty

    Nguyebvanty New Member

    Mua xong mình muốn viết lai lệnh mình fải làm sao?
  10. frank59

    frank59 New Member

    Cho em hỏi IC DTMF này có cần lập trình không. Tại sao IC rẻ mà mạch lại đắt vậy
  11. an.dxuan

    an.dxuan Admin

    Bạn chỉ lập trình vi điều khiển để giao tiếp với nó lấy tín hiệu để điều khiển thôi nhé
  12. AVR-AVR

    AVR-AVR New Member

    cảm ơn bác đã chia sẻ kiến thức bổ ích ..... bác cho em hỏi '' else if(Temp=0x02) // An phim 2 '' vậy 0x02 bác lấy mã ở đâu vậy ... ( ở bảng nào vậy ?)
  13. AVR-AVR

    AVR-AVR New Member

    các bác cho em hỏi bit Flag =0, nghĩa là sao với ạ,
    khi flag=0 thì bật được relay , khi flag = 1 thì mới tắt được relay.
    và còn flag=~ flag nữa ... ý nghĩa của các câu lệnh này là gì ?
  14. an.dxuan

    an.dxuan Admin

    Chào bạn!
    bit flag của tác giả bài viết thực ra là một cái cờ báo xem trạng thái RELAY đang ở chế độ on hay off thôi .khi flag = 0 thì tương ứng RELAY đang off .và khi check flag = 0 thì tác giả cho on lên .và ngược lại với flag = 1 .
    Sau khi on/off relay xong sẽ phải gán lại giá trị cho biến flag vì relay thay đổi thì biến flag cũng phải thay đổi với giá trị tương ứng .điều này được tác giả dùng câu lệnh flag = ~ flag .Đây là câu lệnh đảo bít . flag = 1 thì sau câu lệnh này flag = 0 còn nếu flag = 0 thì sau câu lệnh này flag = 1 .
    AVR-AVR thích bài này.
  15. AVR-AVR

    AVR-AVR New Member

    vậy thế thì mình có thể bỏ biến flag này đi được đúng không ạ ,
    hơn nữa là nếu em muốn bấm trên điện thoại là dùng phím 5 (0x05) và phím * (0x0B) -(2 phím bấm liên tiếp nhau) để điều khiển nội dùng relay tắt thì câu lệnh có phải là : if(temp=0x05 &0x0b ){...câu lệnh điều khiển tắt.....}
    có đúng không ạ ?
    hay câu lệnh đó như thế nào thưa bác .
    em cảm ơn

Chia sẻ trang này

Lên trên