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

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

    Tình hình là em đang là cái mạch hiện thị thời gian thực + nhiệt độ lên LCD và hẹn giờ tắt bật cho role. Dùng chip Atmega8a-pu, cảm biến nhiệt độ Lm35, tham chiếu nội 2,56V. Mạch của e đang gặp phải 2 vấn đề sau mong mọi người giúp đỡ:
    Một là cái đồng hồ của e ko chạy, hình như là do cái ADC cho nhiệt độ thì phải vì bật lên nó chỉ hiện đc tí thời gian rồi đơ luôn chứ ko hiện đc nhiệt độ. đôi khi thì nó cũng chạy nhưng bị chậm hơn so với bình thường, đồng hồ đúng chạy đc 4 giây thì nó mới chạy đc khoảng 3 giây. Có điều là khi e chạm tay vào dây điện trong mạch bất kể là âm hay dương thì mạch lại chạy ngon lành cành đào. đây là video: Hiện tượng chạm tay vào mạch - YouTube Mọi người có thể giải thích giúp e nguyên nhân và cách khắc phục đc ko ạ?

    Vấn đề thứ 2 là e dùng 2 ngắt ngoài cho 2 nút bấm, 1 cho chỉnh ngày giờ và 1 cho chỉnh thời gian hẹn giờ. code e chạy mô phỏng thì đã ngon lành rồi, (mô phỏng trên proteus thì nó ngắt xong sẽ quay về hiển thị thời gian như ban đầu). vậy mà khi test trên mạch thì nó ko thoát ra khỏi chương trình ngắt đc. ví dụ như ấn nút chỉnh ngày giờ thì khi chỉnh xong thì thay vì thoát ra để hiện thị thời gian thì nó lại quay vòng lại chỉnh ngày giờ tiếp và cứ như thế mãi, phải ấn nút reset mới thoát ra khỏi ngắt đc. có phải là do e lấy luôn nút ngắt ấy để chọn thông số cần chỉnh trong chương trình ngắt nên mới bị như vậy ko ạ ?
    mong sớm nhận đc sự giúp đỡ. tks mọi người nhiều.

  • #2
    Có thể mạch bị mất một đường đất. Bạn nên đo lại cẩn thận.
    Theo kinh nghiệm của mình thì nên hạn chế dùng ngắt ngoài.
    AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
    Xem thêm tại Online Store ---> Click here
    Mob: 0982.083.106

    Comment


    • #3
      Nguyên văn bởi VNarmy Xem bài viết
      Có thể mạch bị mất một đường đất. Bạn nên đo lại cẩn thận.
      Theo kinh nghiệm của mình thì nên hạn chế dùng ngắt ngoài.
      em đã xem lại và thấy các dây đất đều đủ cả. với lại khi chạm tay vào mạch thì kể cả chạm vào dây dương nó cũng chạy đúng. và phải chạm vào lõi đồng thì mới đc.
      ko biết có liên quan gì đến nhiễu ko ạ? hay là nguồn của em ko đủ công suất? e dùng nguồn 5V-1A. hiện tượng này lạ quá. giống như hồi xưa nghe đài cứ hay chạm vào cái angten để nghe rõ hơn ấy

      Comment


      • #4
        có ai giúp e với, sắp nộp mạch rồi

        Comment


        • #5
          bạn nối thử vỏ của thạch anh vào mass xem dc k.

          Comment


          • #6
            Nguyên văn bởi autumnsonata Xem bài viết
            Tình hình là em đang là cái mạch hiện thị thời gian thực + nhiệt độ lên LCD và hẹn giờ tắt bật cho role. Dùng chip Atmega8a-pu, cảm biến nhiệt độ Lm35, tham chiếu nội 2,56V. Mạch của e đang gặp phải 2 vấn đề sau mong mọi người giúp đỡ:
            Một là cái đồng hồ của e ko chạy, hình như là do cái ADC cho nhiệt độ thì phải vì bật lên nó chỉ hiện đc tí thời gian rồi đơ luôn chứ ko hiện đc nhiệt độ. đôi khi thì nó cũng chạy nhưng bị chậm hơn so với bình thường, đồng hồ đúng chạy đc 4 giây thì nó mới chạy đc khoảng 3 giây. Có điều là khi e chạm tay vào dây điện trong mạch bất kể là âm hay dương thì mạch lại chạy ngon lành cành đào. đây là video: Hiện tượng chạm tay vào mạch - YouTube Mọi người có thể giải thích giúp e nguyên nhân và cách khắc phục đc ko ạ?

            Vấn đề thứ 2 là e dùng 2 ngắt ngoài cho 2 nút bấm, 1 cho chỉnh ngày giờ và 1 cho chỉnh thời gian hẹn giờ. code e chạy mô phỏng thì đã ngon lành rồi, (mô phỏng trên proteus thì nó ngắt xong sẽ quay về hiển thị thời gian như ban đầu). vậy mà khi test trên mạch thì nó ko thoát ra khỏi chương trình ngắt đc. ví dụ như ấn nút chỉnh ngày giờ thì khi chỉnh xong thì thay vì thoát ra để hiện thị thời gian thì nó lại quay vòng lại chỉnh ngày giờ tiếp và cứ như thế mãi, phải ấn nút reset mới thoát ra khỏi ngắt đc. có phải là do e lấy luôn nút ngắt ấy để chọn thông số cần chỉnh trong chương trình ngắt nên mới bị như vậy ko ạ ?
            mong sớm nhận đc sự giúp đỡ. tks mọi người nhiều.
            Vấn đề thứ nhất của bạn do bạn cắm thử trên bo nhiều vị trí tiếp xúc không tốt dẫn đến mạch không ổn định, đường mass của mạch không tốt nên cũng gây hiện tượng treo như vậy. bạn nên làm mạch in chạy cho ổn định. Hoặc có thể cắm lại sang bo khác. Chú ý các dây dẫn phải tiếp xúc tốt với bo cắm. Khi cắm các vị trí nguồn, các đường dẫn xung phải cắm chắc và chặt. Cắm thêm tụ hóa và tụ gốm lọc nguồn cho ổn định.

            Vấn đề thứ 2 của bạn là : bạn sử dụng ngắt ngoài nên nó rất nhạy. Nếu không có biện pháp chống rung cho phím thì sẽ dẫn đến hiện tượng bấm một lần mà chíp hiểu thành bấm nhiều lần. Do vậy sẽ lặp trong chương trình ngắt mãi. Để giải quyết vấn đề này bạn có mấy cách sau:
            Thứ nhất là chống rung cho phím ( bằng phần mềm hoặc phần cứng)
            Thứ hai là chuyển sang kiểm tra IO thông thường mà không dùng ngắt nữa.
            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


            • #7
              e đoán là bác dùng nguồn 5v.theo kinh nghiệm của e thì lỗi sụt áp.bác thử cấp nguồn 9 hoắc 12v qua 7805 nhé bác và nhớ kiểm tra nguồn từng đoạn cẩn thận.dùng avr hay bất cứ con nào bác cũng nên chống nhiễu cẩn thận

              Comment


              • #8
                Nguyên văn bởi ken___ Xem bài viết
                bạn nối thử vỏ của thạch anh vào mass xem dc k.
                mình thử rồi nhưng đồng hồ vẫn chạy chậm hơn bình thường

                Comment


                • #9
                  Nguyên văn bởi autumnsonata Xem bài viết
                  mình thử rồi nhưng đồng hồ vẫn chạy chậm hơn bình thường
                  chắc do chưa có điện trở kéo cho đường tín hiệu của con thời gian thực nên nó bị mất tín hiệu.
                  cậu nối 2 con điện trở khoảng 4.7K lên 5V với 2 đường tín hiệu ấy xem

                  Comment


                  • #10
                    Nguyên văn bởi nguyenkimxo Xem bài viết
                    Vấn đề thứ nhất của bạn do bạn cắm thử trên bo nhiều vị trí tiếp xúc không tốt dẫn đến mạch không ổn định, đường mass của mạch không tốt nên cũng gây hiện tượng treo như vậy. bạn nên làm mạch in chạy cho ổn định. Hoặc có thể cắm lại sang bo khác. Chú ý các dây dẫn phải tiếp xúc tốt với bo cắm. Khi cắm các vị trí nguồn, các đường dẫn xung phải cắm chắc và chặt. Cắm thêm tụ hóa và tụ gốm lọc nguồn cho ổn định.

                    Vấn đề thứ 2 của bạn là : bạn sử dụng ngắt ngoài nên nó rất nhạy. Nếu không có biện pháp chống rung cho phím thì sẽ dẫn đến hiện tượng bấm một lần mà chíp hiểu thành bấm nhiều lần. Do vậy sẽ lặp trong chương trình ngắt mãi. Để giải quyết vấn đề này bạn có mấy cách sau:
                    Thứ nhất là chống rung cho phím ( bằng phần mềm hoặc phần cứng)
                    Thứ hai là chuyển sang kiểm tra IO thông thường mà không dùng ngắt nữa.
                    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

                    }

                    Comment


                    • #11
                      Nguyên văn bởi tan0710 Xem bài viết
                      chắc do chưa có điện trở kéo cho đường tín hiệu của con thời gian thực nên nó bị mất tín hiệu.
                      cậu nối 2 con điện trở khoảng 4.7K lên 5V với 2 đường tín hiệu ấy xem
                      2 con trở ấy thì tất nhiên phải có chứ. ko có thì đòng hồ sẽ ko chạy. hai con đấy mình cũng lấy 4.7k. nhưng từ trước tới giờ cái đồng hồ của mình nó vẫn chạy chậm hơn bình thường trừ khi chạm tay vào.

                      Comment


                      • #12
                        Nguyên văn bởi anh_hung_21 Xem bài viết
                        e đoán là bác dùng nguồn 5v.theo kinh nghiệm của e thì lỗi sụt áp.bác thử cấp nguồn 9 hoắc 12v qua 7805 nhé bác và nhớ kiểm tra nguồn từng đoạn cẩn thận.dùng avr hay bất cứ con nào bác cũng nên chống nhiễu cẩn thận
                        tks bác đã góp ý. mình đang dùng nguồn 5v-1A, ko biết có phải là ko đủ công suất hay có bị sụt áp ko. ko có đồng hồ nên chưa đo đc. còn cái nhiễu thì mình đã có tụ 104 vào chân VCC cho vdk và ds1307, chân VACC cũng đã có tụ và cuộn cảm để ổn định điện áp cho adc. role dùng 12v để kích thì đã đc cách ly bằng opto pc817. hiện tại đồng hồ vẫn đang bị chạy chậm hơn so với bình thường.

                        Comment


                        • #13
                          cậu up mạch lên xem....
                          nhớ chụp ảnh màn hình chứ đừng up file...

                          Comment


                          • #14
                            Nguyên văn bởi autumnsonata Xem bài viết
                            2 con trở ấy thì tất nhiên phải có chứ. ko có thì đòng hồ sẽ ko chạy. hai con đấy mình cũng lấy 4.7k. nhưng từ trước tới giờ cái đồng hồ của mình nó vẫn chạy chậm hơn bình thường trừ khi chạm tay vào.
                            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

                            Comment


                            • #15
                              khi làm mạch in thì nên đi 2 con tụ và con thạch anh gần con ds1307.

                              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