Thông báo

Collapse
No announcement yet.

Một số kiểu thiết kế tiết kiệm chân Vi điều khiển!

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

  • #76
    Nghĩ ra cách này để nhận biết trạng thái của công tắc , mọi người cho ý kiến xem!

    Comment


    • #77
      Nguyên văn bởi BinhAnh Xem bài viết
      Đối với một số MCU có ADC, bạn có thể dùng kiểu quét phím = analog.
      Mỗi khi ấn phím, sẽ tạo các điện áp khác nhau đặt vào chân ADC. Nên cho dòng đủ lớn qua hệ này để giảm nhiễu: do sờ tay, do ẩm ướt. Nếu thiết kế nhiều nút ấn = kiểu này, các bác phải tính đến các yếu tố:
      +Độ phân giải của ADC, sai số.
      +Sai số của D,R.
      +ĐỘ trôi nhiệt không đồng đều của D,R
      +Môi trường.
      Song với các ứng dụng thông thường, thì cách này hoàn toàn khả thi.
      Sau đây là một kiểu bắt phím bằng sử dụng ADC và điện trở. Ví dụ này có phổ biến trên các Appnote của Microchip(PIC),Cypress(PSoC)...
      đây là một trong những bài rất hay của bác BA. mỗi tội một điều là mình ko hiểu lém.ai đã từng quét phím như vậy có thể chỉ bảo chút ko.Nếu làm được như vậy thì chỉ cần 1 Pin của vi điều khiển ta có thế quét đươc 1 số lớn phím. điều rất cần thiết khi lập trình
      bạn nào làm được rùi có thể port thuật toán và code lên cho anh em tham khảo nhé!
      mình gửi cả sơ đồ mạch nên nè

      thank you!
      Last edited by kiemkhach10; 01-06-2010, 08:16.

      Comment


      • #78
        Nguyên văn bởi ssgabeo Xem bài viết
        Nghĩ ra cách này để nhận biết trạng thái của công tắc , mọi người cho ý kiến xem!
        hi! mình cũng đang tìm tại liệu về cái này?
        bạn có thể chia sẻ cho mình được ko?
        có giải thuật và code thì càng tốt.
        mình đang muốn làm nhiều nút bấm mà chỉ muốn dùng 1 pin của VDK
        cám ơn bạn!

        Comment


        • #79
          Nguyên văn bởi kiemkhach10 Xem bài viết
          hi! mình cũng đang tìm tại liệu về cái này?
          bạn có thể chia sẻ cho mình được ko?
          có giải thuật và code thì càng tốt.
          mình đang muốn làm nhiều nút bấm mà chỉ muốn dùng 1 pin của VDK
          cám ơn bạn!
          Cái này cũng làm được, nhưng thuật toán chống nhiễu sẽ hơi loằng ngoằng. Mình chưa cần dùng nên chưa viết code . Nhiều khi việc thúc vào đít thì mới làm

          Comment


          • #80
            Nguyên văn bởi ssgabeo Xem bài viết
            Cái này cũng làm được, nhưng thuật toán chống nhiễu sẽ hơi loằng ngoằng. Mình chưa cần dùng nên chưa viết code . Nhiều khi việc thúc vào đít thì mới làm
            thì việc đang đẩy vào mông đây nè. mà bạn nói qua thuật toán đi cho mình hiểu 1 cách sơ bộ là được.còn chống nhiễu thì hum nào mình mang cơm lắm đến mà bạn học thêm ,để nâng tay nghề vậy nhé
            cám ơn nhiều!

            Comment


            • #81
              Có gì đâu mà gọi là thuật toán ghê vậy. Đây là một cầu phân áp ngay tại ngõ đọc ADC. Ứng với mỗi nút nhất thì áp tại mỗi chân là khác nhau, ADC sẽ khác nhau -> từ đó biết nút nhấn nào được nhấn. Thuật toán chống nhiễu thì nên dùng Smitch Trigger phần mềm. Chỉ có điều việc tính toán khi có nhiều nút nhấn được nhấn đồng thời thì hơi mệt à.
              The goal of power electronics is control the flow of energy from an electrical source to an electrical load with high efficiency, high availability, high reliability, light weight and low cost.

              Comment


              • #82
                Đó đó , khó ở cái có nhiều cái được đóng , ý mình ở đây ko phải là nút bấm mà là công tắc, dùng để đặt chế độ chạy của mạch chẳng hạn. Mỗi cái đóng vào đều có sai số nữa, xử lí phức tạp thế , gọi là thuật toán đc quá chứ lại . Bạn nào bảo dễ , xin mời thử sức ..........

                Comment


                • #83
                  Nguyên văn bởi ssgabeo Xem bài viết
                  Đó đó , khó ở cái có nhiều cái được đóng , ý mình ở đây ko phải là nút bấm mà là công tắc, dùng để đặt chế độ chạy của mạch chẳng hạn. Mỗi cái đóng vào đều có sai số nữa, xử lí phức tạp thế , gọi là thuật toán đc quá chứ lại . Bạn nào bảo dễ , xin mời thử sức ..........
                  Cái này chả có gì mới và khó làm cả, cụ thể là trong mấy cái ampli, đầu đĩa... cũ cũ dùng nhiều rồi. Trước đây mình có mở cái của Denon ra, cái board nút bấm có 4 nút, cầu điện trở cho mỗi nút, một nút hay nhiều nút nhấn vào nó đều xác định được. Phức tạp là bạn phải tính toán giá trị sao cho phù hợp để nó nhận đúng nút nhấn.

                  Comment


                  • #84
                    bữa nay mới phát hiện ra cái Topic thú vị này nhưng...không hiểu sao mình đăng nhập rùi mà vẫn không nhìn thấy hình đính kèm của anh BinhAnh nhỉ? chắc có lẽ do bài viết lâu quá và diễn đàn trải qua mấy lần 'chỉnh đốn' nên mất rùi thì phải...tiếc

                    Comment


                    • #85
                      Nguyên văn bởi BinhAnh Xem bài viết
                      Có thể bạn chưa biết! Một số kiểu thiết kế tiết kiệm chân MCU!

                      Bàn phím là 1 chức năng không thể thiếu trong việc thiết kế mạch. Một số mạch,nếu dùng hết chân vào/ra của MCU mà vẫn ko đủ cho ứng dụng của mình. Vậy làm sao? kiếm 1 con MCU nhiều cổng I/O hay ghép nhiều con.. hay vô vàn cách khác. Tuy nhiên trước khi tìm đến giải pháp đó, bạn nán lại ít phút. Có thể giải pháp của tôi đưa ra có thể giúp ích được cho bạn trong một số trường hợp. Các mạch này tôi đã từng làm và chạy khá tốt.

                      Tiết kiệm chân nếu mạch quét Led7T+bắt phím.
                      Mạch 1: Led7T và 4 phím ấn. Chỉ mất: 8 chân data, 4 chân điều khiển,1 chân đọc phím. Tổng mất:8+4+1=13 chân.
                      Làm như trên mạch của bạn sẽ có tính năng: Dữ liệu mềm dẻo, tiết kiệm IC giãi mã 7T kiểu-Bạn hoàn toàn có thể hiển thị:0-9, ngoài ra bạn có thể hiển thị lên đó một số chữ như:A,B,C,..G,g,n,U,u... trên cái mặt LED cỏn con đó.
                      Vậy lợi ích đã rõ: bạn tiết kiệm được IC giải mã, mềm dẻo hơn trong hiển thị, có thể bắt 4 phím, tất nhiên có thể phát triển thành 8, 16, thậm chí hơn nữa, mà không tốn thêm 1 chân nào dành cho việc quét phím(lần sau).

                      Việc bắt phím vô cùng đơn giản. Giả sử bạn quét đến LED thứ i(i=1->4), bạn đọc trạng thái chân Keyboard.
                      if(Keyboard)
                      {
                      //Phím thứ i được ấn
                      //Bạn có thể dùng thêm mã lệnh để chống rung
                      }

                      Sau đây là hình ảnh gửi kèm(các thành viên đăng nhập mới thấy được hình ảnh và file gửi kèm)
                      xin hỏi cách chống trôi phím ở phương pháp này là như thế nào?
                      mình đã làm thử thấy các phím nhảy loạn xạ
                      cám ơn!
                      Attached Files

                      Comment


                      • #86
                        Nguyên văn bởi GA_CN Xem bài viết
                        Cái này chả có gì mới và khó làm cả, cụ thể là trong mấy cái ampli, đầu đĩa... cũ cũ dùng nhiều rồi. Trước đây mình có mở cái của Denon ra, cái board nút bấm có 4 nút, cầu điện trở cho mỗi nút, một nút hay nhiều nút nhấn vào nó đều xác định được. Phức tạp là bạn phải tính toán giá trị sao cho phù hợp để nó nhận đúng nút nhấn.
                        Bạn này chưa hiểu ý mình , mình nói là công tắc chứ không phải nút bấm, ví dụ có 10 công tắc tất cả, có 5 cái bật thì giống như bấm 5 nút nhấn "cùng một thời điểm" mà nhận được chính xác thì vấn đề này cũng tương đối đấy

                        Comment


                        • #87
                          Nguyên văn bởi kiemkhach10 Xem bài viết
                          xin hỏi cách chống trôi phím ở phương pháp này là như thế nào?
                          mình đã làm thử thấy các phím nhảy loạn xạ
                          cám ơn!
                          chống trôi , cứ delay dài thêm là được

                          Comment


                          • #88
                            Nguyên văn bởi ssgabeo Xem bài viết
                            chống trôi , cứ delay dài thêm là được
                            nếu delay dài thì lại ko quét được LED và bấm nhiều phím bất kỳ thì lại ko nhạy.
                            có bạn nào biết thuật toán và phuơng pháp quét phím như bài mình port lên của bac BINH ANH ko?có thể chia sẻ cùng mọi người ko?
                            cám ơn nhiều!

                            Comment


                            • #89
                              Nguyên văn bởi kiemkhach10 Xem bài viết
                              nếu delay dài thì lại ko quét được LED và bấm nhiều phím bất kỳ thì lại ko nhạy.
                              có bạn nào biết thuật toán và phuơng pháp quét phím như bài mình port lên của bac BINH ANH ko?có thể chia sẻ cùng mọi người ko?
                              cám ơn nhiều!
                              Quét cậu giảm trở phía Data bus đi , chu kì sáng ngắn nhưng độ sáng mạnh thì vẫn mịn như thường, nếu không được nên ngồi xem lại code, có lỗi đâu đó

                              Comment


                              • #90
                                Nguyên văn bởi ssgabeo Xem bài viết
                                Quét cậu giảm trở phía Data bus đi , chu kì sáng ngắn nhưng độ sáng mạnh thì vẫn mịn như thường, nếu không được nên ngồi xem lại code, có lỗi đâu đó
                                bạn ơi.ý mình nói là nếu delay nhiều thì việc bắt phím sẽ không nhạy.
                                theo gợi ý của bác BINH ANH thì mình đã bắt được phím.nhưng khi bấm 1 cái thì nó nhảy lên mấy số ý
                                cái này thì do bị trôi phím rùi,
                                mình muốn hỏi cách chống trôi phím ,hoặc có cách viêt code như thế nào để khi bấm 1 lần thì sẽ nhảy lên 1 số.
                                cám ơn bạn nhiều!

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X