Thông báo

Collapse
No announcement yet.

[Help!] Hiện tượng chạm tay vào thì mạch mới chạy đúng

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

  • #16
    Nguyên văn bởi autumnsonata Xem bài viết
    tks a. chắc là do bo của em tiếp xúc kém chờ ngày mai có mạch in rồi hàn chắc chắn xem sao. còn cái ngắt kia thì bởi vì e dùng ngắt timer khoảng 327ms để đọc ghi giây từ ds1307 nên ko dùng kiểm tra IO thông thường đc mà buộc phải dùng ngắt ngoài. e đã chống rung bằng cách có tín hiệu ngắt ngoài thì chuyển DDR chân ngắt thành output luôn, sau đó lại chuyển lại input. với lại chuyển cái nút chọn sang chân khác chứ ko dùng chung bằng nút ngắt nữa. thế mà thỉnh thoảng nó vẫn thực hiện ngắt 2 lần là sao anh?
    chân PD2 là chân ngắt 0 nên đoạn ngắt e viết thế này :
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    sbi(DDRD, 2); //sbi là macro set chân 2 của DDRD lên 1,
    Hengio(Data1, 5);
    delay_ms(10);
    cbi(DDRD, 2); // cbi cho về 0

    }

    Khi vào chương trình ngắt ngoài thuật toán của bạn còn thể thêm một lệnh trễ nhỏ trước khi thực hiện các lệnh khác để chống rung được hiệu ủa hơn. Còn vấn đề đồng hồ của bạn chạy nhanh hay chạy chậm nguyên nhân là do thạch anh không chuẩn ( có sai số ). Ngoài ra khi bạn cắm bo, dây nối thạch anh với DS dài cũng gây nhiễu làm chạy nhanh hoặc chạy chậm. Tuy nhiên với mình làm thì thấy mỗi ngày chậm khoảng một vài giây. Để giải quyết vấn đề này bạn có thể dùng sảo thuật. Tuy theo mức độ chạy nhanh hay chạy chậm của DS mà bạn có thể thêm hoặc bớt một giây theo mỗi chu kì chạy nhanh của máy.
    Mình lấy VD: Đồng hồ của mình mỗi ngày chạy nhanh 3 giây. Như vậy cứ sau một ngày mình lại trừ đi 3 giây sua đó ghi lại thông số thời gian cho DS. Như vậy có thể nói đồng hồ mình tương đối chính xác trong nhiều năm. ( mình so sánh với đồng hồ của máy tính ).
    Chúc bạn thành công.
    FPT Service bảo hành, sửa chữa dịch vụ UPS, các loại nguồn công suất.
    Mr Xô : Email :
    ĐT : 01674524129

    Comment


    • #17
      Theo mình cậu nên mắc thêm tụ 104 tại các chân nguồn của chíp: một chân nối chân nguồn của chíp, một chân nối đất. Mình đã từng gặp tương tự. goodluck !

      Comment


      • #18
        Nguyên văn bởi tan0710 Xem bài viết
        Mình từng làm cái này rồi...mình k cần 2 con trở ấy vẫn chạy đúng....
        mình cho timer để đọc dữ liệu từ Ds1307.
        còn mình chỉ dùng 1 ngắt ngoài để cho nút ấn...nhưng ngắt k làm gì chỉ đếm số lần ấn nút để biết trạng thái của con trỏ cần chỉnh của giờ phút giây thôi.
        còn nhiệt độ thì mình chỉ cho đọc bằng timer. và có khoảng tg tràn lâu hơn đọc từ Ds rất nhiều
        mình mà tháo 2 con trở ấy ra là đồng hồ đơ luôn, ko chạy. mình cũng dùng ngắt timer, sau mỗi 327 ms sẽ đọc dữ liệu từ ds, nhiệt độ thì ko liên quan đâu vì mình đã thử bỏ phần đo nhiệt độ đi nhưng mạch vẫn bị chậm như vậy nếu ko chạm tay vào. sơ đồ mình mô phỏng trên proteus đây bạn:Click image for larger version

Name:	aaa.jpg
Views:	1
Size:	124.9 KB
ID:	1377245

        Comment


        • #19
          Nguyên văn bởi radamta Xem bài viết
          Theo mình cậu nên mắc thêm tụ 104 tại các chân nguồn của chíp: một chân nối chân nguồn của chíp, một chân nối đất. Mình đã từng gặp tương tự. goodluck !
          tks. mạch của mình cũng đã có các tụ 104 rồi nhưng vẫn bị.

          Comment


          • #20
            Nguyên văn bởi nguyenkimxo Xem bài viết
            Khi vào chương trình ngắt ngoài thuật toán của bạn còn thể thêm một lệnh trễ nhỏ trước khi thực hiện các lệnh khác để chống rung được hiệu ủa hơn. Còn vấn đề đồng hồ của bạn chạy nhanh hay chạy chậm nguyên nhân là do thạch anh không chuẩn ( có sai số ). Ngoài ra khi bạn cắm bo, dây nối thạch anh với DS dài cũng gây nhiễu làm chạy nhanh hoặc chạy chậm. Tuy nhiên với mình làm thì thấy mỗi ngày chậm khoảng một vài giây. Để giải quyết vấn đề này bạn có thể dùng sảo thuật. Tuy theo mức độ chạy nhanh hay chạy chậm của DS mà bạn có thể thêm hoặc bớt một giây theo mỗi chu kì chạy nhanh của máy.
            Mình lấy VD: Đồng hồ của mình mỗi ngày chạy nhanh 3 giây. Như vậy cứ sau một ngày mình lại trừ đi 3 giây sua đó ghi lại thông số thời gian cho DS. Như vậy có thể nói đồng hồ mình tương đối chính xác trong nhiều năm. ( mình so sánh với đồng hồ của máy tính ).
            Chúc bạn thành công.
            tks a vì đã chỉ cho e cái sảo thuật đó. nhưng e ko nghĩ là cái thạch anh có vấn đề vì đòng hồ chỉ chạy chậm khi ko chạm tay vào thôi. khi đó cứ đồng hồ đúng chạy đc khoảng 4 giây thì nó mới chạy đc 3 giây (quá chậm). Nhưng nó đồng vẫn chạy đúng khi chạm tay vào dây hở trong mạch nên e nghĩ thạch anh vẫn tốt.

            Comment


            • #21
              Nguyên văn bởi autumnsonata Xem bài viết
              tks a vì đã chỉ cho e cái sảo thuật đó. nhưng e ko nghĩ là cái thạch anh có vấn đề vì đòng hồ chỉ chạy chậm khi ko chạm tay vào thôi. khi đó cứ đồng hồ đúng chạy đc khoảng 4 giây thì nó mới chạy đc 3 giây (quá chậm). Nhưng nó đồng vẫn chạy đúng khi chạm tay vào dây hở trong mạch nên e nghĩ thạch anh vẫn tốt.
              Bạn điều chỉnh lại 2 trở treo R1 và R2 ở chân SCL và SDA của DS là 4,7K xem. 330om là rất nhỏ. Các giá trị trở treo khác nếu bạn cũng để 330om trong mạch thực tế thì cũng gây hao dòng mỗi khi bấm nút. Với mình các giá trị trở treo đó mình thường để 10K vẫn chạy ngon lành.
              FPT Service bảo hành, sửa chữa dịch vụ UPS, các loại nguồn công suất.
              Mr Xô : Email :
              ĐT : 01674524129

              Comment


              • #22
                cậu xem cái mạch này rồi kiểm tra lại mạch xem nhá...
                Mạch ứng dụng AVR

                Comment


                • #23
                  Nguyên văn bởi nguyenkimxo Xem bài viết
                  Bạn điều chỉnh lại 2 trở treo R1 và R2 ở chân SCL và SDA của DS là 4,7K xem. 330om là rất nhỏ. Các giá trị trở treo khác nếu bạn cũng để 330om trong mạch thực tế thì cũng gây hao dòng mỗi khi bấm nút. Với mình các giá trị trở treo đó mình thường để 10K vẫn chạy ngon lành.
                  ko phải đâu anh. tại khi vẽ trong proteus cái trở nó trước đó là 330om, e để thế luôn chứ quên ko chỉnh lại. còn trong mạch e cắm trên bo thì tất cả nhưng điện trở kéo lên đều là 4.7k hết, chỉ có trở cho mấy con led mới là 330 ôm thôi.

                  Comment


                  • #24
                    tks tất cả các bro trong thời gian qua đã giúp e tìm ra vấn đề. tình hình vấn đề của e là do cái bo đểu (như các bác trên đã nói). sau khi chuyển sang mạch in thì đã ok. hehe. Click image for larger version

Name:	Copy of 2.jpg
Views:	1
Size:	70.2 KB
ID:	1377496

                    Comment


                    • #25
                      bạn Autumnsonata khi chuyển qua mạch in thì có thay đổi nguồn không? Khi đọc câu hỏi của bạn từ trang 1 thì mình nghĩ vấn đề là do bạn dùng nguồn là 1 adapter "stabilized".

                      Comment


                      • #26
                        Nguyên văn bởi donparsul Xem bài viết
                        bạn Autumnsonata khi chuyển qua mạch in thì có thay đổi nguồn không? Khi đọc câu hỏi của bạn từ trang 1 thì mình nghĩ vấn đề là do bạn dùng nguồn là 1 adapter "stabilized".
                        thực ra là có chuyển nguồn. mình ko dùng adapter 5v-1A trực tiếp nữa mà chuyển qua dùng con lm2576 hạ từ 12v xuống 5v. nhưng mà mình cũng thử cái nguồn 5v 1A ấy với mạch in và mạch vẫn chạy. Chắc ko phải do nguồn. Mà "vấn đề do dùng nguồn là 1 adapter stabilized" nghĩa là gì đó bạn? mình muốn tìm hiểu thêm. tks

                        Comment


                        • #27
                          cách đây 2 năm mình biết có 1 người làm 1 đề tài trong đó có bao gồm giao tiếp qua I2C (dùng TWI trên con Atmega128). Mình dò mạch không phát hiện ra sai chỗ nào nhưng gửi/nhận dữ liệu qua giao tiếp I2C không được (thao tác gửi nhận vẫn báo thành công nhưng dữ liệu đọc được hoàn toàn sai so với dữ liệu gửi). Khi đó cũng có hiện tượng chạm tay vào mấy cái cổng nối với Port A,C... thì mạch lại hoạt động đúng. Nhờ đó mà có người phát hiện ra vì dùng nguồn "stabilized". Theo mình hiểu cái nguồn này có chức năng là khi dòng qua mạch thay đổi nhanh, nó vẫn không bị tụt áp. Vì vậy nên mình đoán là cái nguồn này sẽ là phẳng tín hiệu hoặc cả dao động của thạch anh. Sau đó chuyển qua dùng nguồn "unstabilized" thì mạch chạy ok.

                          Con LM2576 chắc chắn sẽ không gây phiền phức gì. Còn nếu bạn dùng nguồn cũ 5V 1A với mạch in mà mạch vẫn chạy đúng thì nghĩa là mình đoán sai

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X