Thông báo

Collapse
No announcement yet.

Keypad cho AVR

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

  • Keypad cho AVR

    mình đã làm mấy hôm nay mà không được, mình muốn thiết kế một bàn phím 4x4 (sử dụng ADC). bác nào có làm rồi chỉ bảo vài chiêu dùm! tại hạ cám ơn lắm lắm !!!!!
    hãy cố gắng dù vướn phải thất bại!!!!!!!!

  • #2
    Bạn sử dụng bàn phím 4x4 nhưng tại sao lại sử dung ADC???Cụ thể mục đích của bạn để làm gì? còn nếu chức năng chỉ để nhập thông số điều khiển từ 4x4 bàn phím thì không ai lam như thế cả!!!!hehe
    --------------------------------------
    Cùng nhau tỏa sáng
    Email:

    Comment


    • #3
      He he ác cái chỗ nó gọn nhất mà hong ai dùng cả

      Ở trong các mạch Của TQ ta thường thấy mạch key pad chỉ là một đường từ chân vi điều khiển đi ra với các nút bấm, và các điện trở phân áp

      Như vậy cái chân đó chính là chân đọc ADC

      ADC bạn dùng mấy chân tất cả ?
      Chính thức phát hành mạch điều khiển LED FireStar1
      Yêu mến tất cả anh em dientuvietnam.net

      Comment


      • #4
        Nguyên văn bởi thaithienanh Xem bài viết
        Ở trong các mạch Của TQ ta thường thấy mạch key pad chỉ là một đường từ chân vi điều khiển đi ra với các nút bấm, và các điện trở phân áp

        Như vậy cái chân đó chính là chân đọc ADC

        ADC bạn dùng mấy chân tất cả ?
        chỉ một chân là có thể điều khiển rất nhiều phím rồi. chỉ vì mình chưa làm ADC bao giờ nên cần các bác cho mình một ít kinh nghiệm ấy mà, đọc datasheet thấy khó hiểu quá!!!!
        hãy cố gắng dù vướn phải thất bại!!!!!!!!

        Comment


        • #5
          mời các bác xem hình này nhé, mình vẽ trên Word nên hơi xấu một chút!
          Attached Files
          Last edited by chipmickey; 03-07-2007, 13:19.
          hãy cố gắng dù vướn phải thất bại!!!!!!!!

          Comment


          • #6
            Cái cách này trong mấy cái VCR cũng dùng ! Được rất nhiều phím mà lại tiết kiệm chân ! Nhưng có điều là MCU phải có ADC .
            Bạn dùng một cái display để hiễn thị giá trị đọc về cũa ADC của AVR . Nhưng hiện có cái cần giải quyết ở đây là giá trị adc cũa AVR thay đổi rắtề nhiều và không ổn định . Nên bạn phải cần thêm chương trình đễ để lọc giá trị ADC .
            Theo nguyên tắc thì AVR có thể nhận về 1024 giá trị nhưng với cái này có thễ lấy về 1024 phím ( hi hi )
            Mạch nạp Little Programmer
            MSC-51,AVR,EEPROM ... etc

            Site Fukusei shop :

            Comment


            • #7
              Sao bạn không nối phím theo kiểu ma trận rồi điều khiển có phải ngon ăn hơn không? 4x4 là mất 8 chân MCU cho ứng dụng này. Đây là cách đơn giản nhất.

              Comment


              • #8
                Bạn có biết tại sao mình hỏi bạn dùng mấy chân ADC không

                Nguyên nhân là do khắc phục độ không ổn định của ADC đó : cho nên phải băm giá trị ADC ra làm các khoảng rộng, các phím cạnh nhau rõ ràng là các giá trị điện áp tranh chấp nên thường nguời ta giới hạn số lượng phím trên một chân nhằm phân biệt rõ ràng mức áp giữa các nấc.

                Nên thường ở các mạch nguời ta muốn chắc ăn nên thiết kế cực kì hạn chế số phím trên một chân

                Khi đọc ADC về bạn chỉ cần so sánh giá trị đó với khoảng định trước của mình là xong, nên nhớ là so khoảng chứ không nên so giá trị
                Chính thức phát hành mạch điều khiển LED FireStar1
                Yêu mến tất cả anh em dientuvietnam.net

                Comment


                • #9
                  Mình bổ sung 1 tí.Không nhiết thiết phải viết chương trình so sánh để code dài
                  Chỉ cần dịch bit để chia range,sau đó lấy range đó để tra bảng.Thì nhanh hơn nhỉ.
                  Ví dụ chấp nhận độ lệch 6 bit thì với ADC 10bit dịch 6 bit còn 4 bit.-->16 nút
                  Độ chính xác cho 16 nút này thì khá là ổn.Vì range cho 1 nút khá lớn đấy mà.

                  Sông dài, Thuyền lớn, Biển rộng bao la.
                  Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.

                  Comment


                  • #10
                    Nguyên văn bởi quoc_thaibk Xem bài viết
                    Mình bổ sung 1 tí.Không nhiết thiết phải viết chương trình so sánh để code dài
                    Chỉ cần dịch bit để chia range,sau đó lấy range đó để tra bảng.Thì nhanh hơn nhỉ.
                    Ví dụ chấp nhận độ lệch 6 bit thì với ADC 10bit dịch 6 bit còn 4 bit.-->16 nút
                    Độ chính xác cho 16 nút này thì khá là ổn.Vì range cho 1 nút khá lớn đấy mà.
                    mình đồng ý với quoc_thaibk, mấy hôm nay mò mẫm cuối cùng cũng được kết quả rồi, tuy chưa tốt lắm nhưng cũng tạm ổn. trước tiên mình lắp phần cứng ròi viết chương trình đọc ADC hiển thị lên LCD, mình thấy đúng là nó có nhiểu, giá trị đọc được có thay đổi nhiưng trong một khoảng cố định, giả sử mình ấn phím 2 thì ADC đọc về có giá trị 23H --> 40H, phím 3 từ 60H --> 75H, sau khi thử xong hết các phím thì mình có các khoảng giá trị khác nhau, đến cuối cùng mình chỉ cần đọc ADC về rồi tra trong bảng giá trị nếu nằm trong khoảng nào thì mình quyết định là giá trị của phím đó. nhưng mình chưa thể sử dụng ngắt được, lúc nào mình cũng đọc ADC cả nên chưa làm được gì, các bác nào có dùng ngắt của ADC có thể cho mình vài kinh nghiệm được kô?
                    hãy cố gắng dù vướn phải thất bại!!!!!!!!

                    Comment


                    • #11
                      mình mắc thêm 1 tụ 4.7uF ở ngõ vào của ADC với mass thì kết quả cho tốt hơn, giá trị của ADC đọc vể gần như không thay đổi chứng tỏ ít bị nhiễu, như vậy là làm keypad mà có ADC thật là tuyệt vời!!!!!!!!
                      hãy cố gắng dù vướn phải thất bại!!!!!!!!

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X