Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về truyền tín hiệu cảm biến về vđk

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

  • Cần giúp đỡ về truyền tín hiệu cảm biến về vđk

    Cho e hỏi e có 1 con cảm biến nhiệt độ (ví dụ Lm35) em muốn truyền về cho vđk đọc giá trị adc để tính nhiệt độ để hiển thị ... cảm biến cách vđk khoảng hơn 100m .. thì nếu đưa thẳng tín hiệu tà CB về vđk thì nó bị sụt áp trên dây dẫn và về vđk đọc nó ko còn chính xác nữa .. e phải khắc phục bằng cách nào ạ ? A tư vấn e với !!!

  • #2
    Việc này bên kỹ thuật đo lường đã dạy cả rồi mà ?

    1. Đơn giản nhất là khuếch đại tín hiệu đo lường thành cường độ lớn hơn nhiều để át hẳn nhiễu. Ngành đo lường (hơi xưa chút) thường dùng tín hiệu 0 - 10V, khuếch đại và chuẩn hóa từ tín hiệu đo lường gốc vốn chỉ vài chục mV.

    2. Bên công nghiệp thường dùng tín hiệu dòng để chống nhiễu tốt hơn, truyền xa tốt hơn. Thông dụng là tín hiệu 0 - 20 hoặc 4 - 20mA. Truyền bằng dòng tốt hơn truyền bằng áp về mọi mặt, có thể phát hiện đứt dây luôn, nhưng cần mạch tinh xảo hơn.

    3. Hiện đại hơn nữa thì truyền bằng tín hiệu số, nối mạng công nghiệp. Ví dụ Hart, RS232, RS485, CAN, LIN, Profibus ... Đây là thứ thông dụng hiện nay.

    4. Thích sang chảnh thì truyền tin số kiểu không dây. Vẫn là truyền tín hiệu số thôi nhưng bỏ qua vụ dây dẫn lằng nhằng. Truyền bằng quang học (hồng ngoại, laser) hoặc sóng điện từ (Wifi, Zigbee, GSM ...) đủ kiểu.

    Phần mềm tự do hoặc không dùng máy tính nữa !.

    Comment


    • #3
      Nguyên văn bởi bqviet Xem bài viết
      Việc này bên kỹ thuật đo lường đã dạy cả rồi mà ?

      1. Đơn giản nhất là khuếch đại tín hiệu đo lường thành cường độ lớn hơn nhiều để át hẳn nhiễu. Ngành đo lường (hơi xưa chút) thường dùng tín hiệu 0 - 10V, khuếch đại và chuẩn hóa từ tín hiệu đo lường gốc vốn chỉ vài chục mV.

      2. Bên công nghiệp thường dùng tín hiệu dòng để chống nhiễu tốt hơn, truyền xa tốt hơn. Thông dụng là tín hiệu 0 - 20 hoặc 4 - 20mA. Truyền bằng dòng tốt hơn truyền bằng áp về mọi mặt, có thể phát hiện đứt dây luôn, nhưng cần mạch tinh xảo hơn.

      3. Hiện đại hơn nữa thì truyền bằng tín hiệu số, nối mạng công nghiệp. Ví dụ Hart, RS232, RS485, CAN, LIN, Profibus ... Đây là thứ thông dụng hiện nay.

      4. Thích sang chảnh thì truyền tin số kiểu không dây. Vẫn là truyền tín hiệu số thôi nhưng bỏ qua vụ dây dẫn lằng nhằng. Truyền bằng quang học (hồng ngoại, laser) hoặc sóng điện từ (Wifi, Zigbee, GSM ...) đủ kiểu.
      cho e hỏi chút với là bản thân con vđk là nó dùng điện áp 5V tức là nó dùng logic kiểu TTL(1 :5V ; 0: 0V) ... rs232 thì nó lại dùng kiểu logic khác (1:-3->-15V ; 0: 3-15V) ... thế mà mình truyền kiểu UART to RS232 để giao tiếp 2 con vđk này thì phải truyền từ master(TTL) qua max232 để thành logic RS232 sau đó lại qua max232 tiếp để chuyển ngược lại thành TTL rồi mới đến con slave ạ ??

      Comment


      • #4
        Phải rồi, MAX232 để biến đổi điện áp từ đơn cực thành lưỡng cực và tăng giá trị điện áp lên nhằm giảm nhiễu, truyền xa hơn. Vì thế mới gọi là transceiver (transmitter & receiver).

        Muốn truyền 1-1 thì dùng RS232
        Muốn truyền 1-nhiều thì dùng RS422
        Muốn truyền nhiều-nhiều thì dùng RS485 đúng tính chất bus - đường truyền chung.
        Phần mềm tự do hoặc không dùng máy tính nữa !.

        Comment


        • #5
          Nguyên văn bởi ThanhNeymar Xem bài viết
          Cho e hỏi e có 1 con cảm biến nhiệt độ (ví dụ Lm35) em muốn truyền về cho vđk đọc giá trị adc để tính nhiệt độ để hiển thị ... cảm biến cách vđk khoảng hơn 100m .. thì nếu đưa thẳng tín hiệu tà CB về vđk thì nó bị sụt áp trên dây dẫn và về vđk đọc nó ko còn chính xác nữa .. e phải khắc phục bằng cách nào ạ ? A tư vấn e với !!!
          Bạn dùng ATMEGA8 để đọc trực tiếp giá trị của LM335, bên trong vdk này có sẵn bộ A/D 10bit.

          Comment


          • #6
            Nguyên văn bởi bqviet Xem bài viết
            Phải rồi, MAX232 để biến đổi điện áp từ đơn cực thành lưỡng cực và tăng giá trị điện áp lên nhằm giảm nhiễu, truyền xa hơn. Vì thế mới gọi là transceiver (transmitter & receiver).

            Muốn truyền 1-1 thì dùng RS232
            Muốn truyền 1-nhiều thì dùng RS422
            Muốn truyền nhiều-nhiều thì dùng RS485 đúng tính chất bus - đường truyền chung.
            bác cho e hỏi thêm 1 câu với .. hiện tại em làm mô hình như này .. cảm biến đo nhiệt độ đặt tại ví trí A ... 1 con ATmega8 đặt ngay cạnh để đọc tín hiệu từ cảm biến ... sau đo con mega8 này truyền thông tin (truyền bằng UART to RS485)về cho con atmega32 đặt tại vị trí B .. khoảng cách AB là 100m.... con mega32 nhận tín hiệu từ con mega8 này sau đó cho hiển thị lên máy tính thông qua UART to USB... thì vấn đề ở chỗ con mega32 chỉ có 1 chân TX và 1 chân RX nếu mà kết nối uart to usb để truyền lên máy tính rồi thì làm thế nào để nó giao tiếp với con mega8 nữa (vì hết chân RX TX rồi) @@

            Comment


            • #7
              Vào Google tìm cái gọi là soft UART. Chân TX truyền đi dùng kiểu bit-bang. Chân RX nhận dùng ngắt ngoài đọc từng bit gửi đến rồi tự ráp lại thành byte. Tốn nhiều công đấy, nhưng cũng không quá khó.

              Hoặc đổi sang AVR/PIC loại có sẵn 2 UART, ví dụ ATmega164.
              Phần mềm tự do hoặc không dùng máy tính nữa !.

              Comment


              • #8
                Nguyên văn bởi ThanhNeymar Xem bài viết

                bác cho e hỏi thêm 1 câu với .. hiện tại em làm mô hình như này .. cảm biến đo nhiệt độ đặt tại ví trí A ... 1 con ATmega8 đặt ngay cạnh để đọc tín hiệu từ cảm biến ... sau đo con mega8 này truyền thông tin (truyền bằng UART to RS485)về cho con atmega32 đặt tại vị trí B .. khoảng cách AB là 100m.... con mega32 nhận tín hiệu từ con mega8 này sau đó cho hiển thị lên máy tính thông qua UART to USB... thì vấn đề ở chỗ con mega32 chỉ có 1 chân TX và 1 chân RX nếu mà kết nối uart to usb để truyền lên máy tính rồi thì làm thế nào để nó giao tiếp với con mega8 nữa (vì hết chân RX TX rồi) @@
                Bạn thêm con 74hc245 để điều khiển giao tiếp serial giữa atmega32 với atmega8 và PC.

                Comment


                • #9
                  Nguyên văn bởi ThanhNeymar Xem bài viết

                  bác cho e hỏi thêm 1 câu với .. hiện tại em làm mô hình như này .. cảm biến đo nhiệt độ đặt tại ví trí A ... 1 con ATmega8 đặt ngay cạnh để đọc tín hiệu từ cảm biến ... sau đo con mega8 này truyền thông tin (truyền bằng UART to RS485)về cho con atmega32 đặt tại vị trí B .. khoảng cách AB là 100m.... con mega32 nhận tín hiệu từ con mega8 này sau đó cho hiển thị lên máy tính thông qua UART to USB... thì vấn đề ở chỗ con mega32 chỉ có 1 chân TX và 1 chân RX nếu mà kết nối uart to usb để truyền lên máy tính rồi thì làm thế nào để nó giao tiếp với con mega8 nữa (vì hết chân RX TX rồi) @@
                  Mua 1 con MCU có giao tiếp USB và UART.
                  USB kết nối máy tính. UART cho cảm biến.

                  Comment


                  • #10
                    Nguyên văn bởi ThanhNeymar Xem bài viết

                    bác cho e hỏi thêm 1 câu với .. hiện tại em làm mô hình như này .. cảm biến đo nhiệt độ đặt tại ví trí A ... 1 con ATmega8 đặt ngay cạnh để đọc tín hiệu từ cảm biến ... sau đo con mega8 này truyền thông tin (truyền bằng UART to RS485)về cho con atmega32 đặt tại vị trí B .. khoảng cách AB là 100m.... con mega32 nhận tín hiệu từ con mega8 này sau đó cho hiển thị lên máy tính thông qua UART to USB... thì vấn đề ở chỗ con mega32 chỉ có 1 chân TX và 1 chân RX nếu mà kết nối uart to usb để truyền lên máy tính rồi thì làm thế nào để nó giao tiếp với con mega8 nữa (vì hết chân RX TX rồi) @@
                    Trong datasheet của lm35 có mấy mạch truyền tín hiệu analog đi xa. Nếu không yêu cầu cao lắm thì dùng cách này cho đơn giản.
                    sau.ph

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X