Thông báo

Collapse
No announcement yet.

Cách xử lý áp trước khi đưa về chân adc0 của atmega 16

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

  • Cách xử lý áp trước khi đưa về chân adc0 của atmega 16

    Em có vấn đề thế này nhưng ko biết giải quyết sao, mong anh em chỉ giáo.Em làm mạch đo nhiệt độ nhưng k biết xử lý áp đưa về chân ADC0 của con ATMEGA16 làm sao.Cứ 2s em đọc nhiệt độ về 1 lần nhưng nhiệt độ cứ nhảy lung tung,sai số giữa 2 lần đọc đến 3-4độ.Em đã thử dùng tụ 104 và tụ hóa 10uf nối vào chân ADC0 để lọc nhiễu và ngăn dao động nhưng vẫn ko có kết quả gi.anh em có cách nào hay thì chỉ em voi.

  • #2
    sao k ai giup em het vay

    Comment


    • #3
      Phần nguồn bạn phải thiết kế thật tốt, thật ổn định. thêm tụ nguồn, thêm tụ lọc nhiễu .

      Comment


      • #4
        Nguyên văn bởi gaigu Xem bài viết
        Em có vấn đề thế này nhưng ko biết giải quyết sao, mong anh em chỉ giáo.Em làm mạch đo nhiệt độ nhưng k biết xử lý áp đưa về chân ADC0 của con ATMEGA16 làm sao.Cứ 2s em đọc nhiệt độ về 1 lần nhưng nhiệt độ cứ nhảy lung tung,sai số giữa 2 lần đọc đến 3-4độ.Em đã thử dùng tụ 104 và tụ hóa 10uf nối vào chân ADC0 để lọc nhiễu và ngăn dao động nhưng vẫn ko có kết quả gi.anh em có cách nào hay thì chỉ em voi.
        Sai kết quả ADC có nhiều nguyên nhân lắm: Dây nối giữa Sensor với ADC, sensor, phép toán (cái này thì ít), điện áp cho ADC và Vref - cái này cực kì quan trọng luôn. Để ổn định nguồn ADC và Vref thì bạn kiếm lại mấy topic trên diễn đàn này nhé!
        Chúc thành công.
        Nỏ biết chữ mần răng ký được??!! Thôi nhé.

        Comment


        • #5
          Tín hiệu trước khi đưa vào chận adc nên qua bộ buffer dùng opamp

          Comment


          • #6
            Vref thì em dùng áp chuẩn rồi(con TL431:dao động 0.4 %)nên chắc không phải là do nguồn rồi.Em nghĩ là do chưa xử lý áp từ sensor đưa về chân ADC.

            Comment


            • #7
              Nguyên văn bởi nhatson.elec Xem bài viết
              Tín hiệu trước khi đưa vào chận adc nên qua bộ buffer dùng opamp
              Bạn có thể gởi cho mình sơ đồ nguyên lý của bộ này không.Minh mới vào nghề nên chưa có kinh nghiệm nhiều.Nếu dc thì cảm ơn bạn quá!

              Comment


              • #8
                Bạn có dùng AGND không? Đừng nối AGND (Analog GrouND) chung với GND.
                Electronic Engineers do everything with less resistance.

                Comment


                • #9
                  Nguyên văn bởi lucas Xem bài viết
                  Bạn có dùng AGND không? Đừng nối AGND (Analog GrouND) chung với GND.
                  Tại sao như thế vậy bạn.Vậy phải nối AREF và AGND vào Vref (+ - ) từ 1 nguồn chuẩn bên ngoài à?

                  Comment


                  • #10
                    Nguyên văn bởi gaigu Xem bài viết
                    Tại sao như thế vậy bạn.Vậy phải nối AREF và AGND vào Vref (+ - ) từ 1 nguồn chuẩn bên ngoài à?
                    Tất cả các chân GND của linh kiện tính từ con ADC đến cảm biến phải nối vào AGND của ADC với mục đích tránh nhiễu từ DGND (Digital GrouND) Nguồn nhiễu này phát sinh từ các cổng CMOS và đặc biệt là TTL khi tắt mở, cho dù bạn có gắn tụ coupling sát con TTL giữa chân Vcc và gnd thì cũng không khử hết được

                    Thí dụ như bạn dùng con LM35 để đo nhiệt độ thì chân GND phải nối vào AGND chứ không được nối vào chân GND của con Micro-controller. Nếu bạn dùng thermocouple để đo nhiệt độ thì chân GND của linh kiện dùng để khuyết đại tín hiệu từ thermocouple (thí dụ như opamp) phải nối vào AGND. Nếu nguồn tín hiệu đi qua đường dây dài rồi mới đến mạch của bạn thì chuyện còn phức tạp hơn. Chân GND của con Vref thì cũng phải nối vào AGND.

                    Cách nhanh nhất để sửa vấn đề của bạn là cộng 4 lần đo rồi chia 4 hay là cộng 8 lần đo rồi chia 8, ...Bạn biết tại sao chia cho 4 hay 8 không? Tại vì SHIFT thì nhanh hơn DIV

                    PS: Tôi không dùng chữ mát (mass) tại vì tôi thường phân biệt Earth Ground, Source Ground (zero volt), Digital Ground, Analog Ground, và Signal Ground.
                    Electronic Engineers do everything with less resistance.

                    Comment


                    • #11
                      Không cần phức tạp như vậy đâu , chỉ cần 1 cái tụ lớn lớn 1 chút ( 6.3V 470uF) là ok rồi . Do cái tụ kia nhỏ quá , với lại tụ made in China nên nó thế đấy , tìm cái tụ nào xịn xịn trong mainboard là ok

                      Comment


                      • #12
                        Nguyên văn bởi hoacucvang Xem bài viết
                        Không cần phức tạp như vậy đâu , chỉ cần 1 cái tụ lớn lớn 1 chút ( 6.3V 470uF) là ok rồi . Do cái tụ kia nhỏ quá , với lại tụ made in China nên nó thế đấy , tìm cái tụ nào xịn xịn trong mainboard là ok
                        Nếu dùng để đo nhiệt độ không khí trong phòng thì được bởi vì nhiệt độ thay đổi chậm. Nhưng nếu dùng để đo nhiệt độ máy móc để điều khiển thì không nên.

                        Thông thường thì dòng ra từ các cảm biến rất nhỏ. Nếu dùng tụ 470uF thì thời gian từ lúc tín hiệu thay đổi cho đến khi hiệu điện thế trên con tụ điện tăng lên quá dài.

                        Tôi không thấy gaigu nói nguồn nhiệt thay đổi thế nào nên ngứa nghề nói nhiều "phức tạp" Nghề của tôi là thiết kế điều khiển dùng trong công nghiệp và môi trường khắc nghiệt nên tôi chú trọng đến chống nhiễu như vậy. Cái máy tôi thiết kế gần đây nhất có nguồn nhiệt thu vào là khoảng 87000J/s và nhiệt độ thay đổi khoảng 300C/s. Nếu gaigu còn ở trong trường học thì không cần biết mấy cái "phức tạp" này.
                        Electronic Engineers do everything with less resistance.

                        Comment


                        • #13
                          Nguyên văn bởi lucas Xem bài viết
                          Nếu dùng để đo nhiệt độ không khí trong phòng thì được bởi vì nhiệt độ thay đổi chậm. Nhưng nếu dùng để đo nhiệt độ máy móc để điều khiển thì không nên.

                          Thông thường thì dòng ra từ các cảm biến rất nhỏ. Nếu dùng tụ 470uF thì thời gian từ lúc tín hiệu thay đổi cho đến khi hiệu điện thế trên con tụ điện tăng lên quá dài.

                          Tôi không thấy gaigu nói nguồn nhiệt thay đổi thế nào nên ngứa nghề nói nhiều "phức tạp" Nghề của tôi là thiết kế điều khiển dùng trong công nghiệp và môi trường khắc nghiệt nên tôi chú trọng đến chống nhiễu như vậy. Cái máy tôi thiết kế gần đây nhất có nguồn nhiệt thu vào là khoảng 87000J/s và nhiệt độ thay đổi khoảng 300C/s. Nếu gaigu còn ở trong trường học thì không cần biết mấy cái "phức tạp" này.

                          Nếu dùng trong công nghiệp thì chả ai xài con LM35 rẻ tiền 15.000 như bạn kia xài đâu .
                          Muốn chính xác thì sử dụng con sensor xuất ra dạng digital đó , giá khoảng 60.000/con . Dùng giao tiếp 1 Wire . CÓ thể gắn cùng lúc cả trăm thiết bị bằng 1 pin duy nhất .

                          Comment


                          • #14
                            Nguyên văn bởi hoacucvang Xem bài viết
                            Nếu dùng trong công nghiệp thì chả ai xài con LM35 rẻ tiền 15.000 như bạn kia xài đâu .
                            Muốn chính xác thì sử dụng con sensor xuất ra dạng digital đó , giá khoảng 60.000/con . Dùng giao tiếp 1 Wire . CÓ thể gắn cùng lúc cả trăm thiết bị bằng 1 pin duy nhất .
                            Bạn kia không nói là dùng con LM35 hay con gì.

                            Tôi có dùng con LM35 để đo nhiệt độ của cold-junction (tức là nhiệt độ của cái mối nối từ thermocouple vào mạch). Còn dùng thermocouple type-K để đo nhiệt độ của máy. Nhiệt độ phải đo là từ -20C đến +850C. Opamp dùng là LM725 version dùng cho quân đội giá khoảng 15 đôla 1 con. Nếu có 1 con sensor nào đó có thể làm như vậy thì chỉ dùm. Đa tạ.
                            Electronic Engineers do everything with less resistance.

                            Comment


                            • #15
                              Nguyên văn bởi lucas Xem bài viết
                              Bạn kia không nói là dùng con LM35 hay con gì.

                              Tôi có dùng con LM35 để đo nhiệt độ của cold-junction (tức là nhiệt độ của cái mối nối từ thermocouple vào mạch). Còn dùng thermocouple type-K để đo nhiệt độ của máy. Nhiệt độ phải đo là từ -20C đến +850C. Opamp dùng là LM725 version dùng cho quân đội giá khoảng 15 đôla 1 con. Nếu có 1 con sensor nào đó có thể làm như vậy thì chỉ dùm. Đa tạ.

                              Với hệ thống công nghiệp cần độ chính xác cao thì người ta không sử dụng tín hiệu ra analog bằng ADC nữa mà dùng dạng số 01100000............ . Đơn cử như con DS1820 .NHIỆT ĐỘ ĐO ĐƯỢC LÀ -55 tới 128 ĐỘ.ĐỘ CHÍNH XÁC TUYỆT ĐỐI (0.001 ĐỘ).

                              Còn nếu đòi hỏi chịu nhiệt độ cao hơn thì cũng có thôi mà .

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X