bigboy061293
Thành Viên PIF
Thực tế: keypad hồi đó giờ chúng ta xài, chủ yếu là dùng cách quét theo ma trận, do đó số chân tốn cho vđk là cực kì tốn kém. Dữ lắm thì dùng mở rộng port giao tiếp I2C (PCA9555, 8574, ...) để tiết kiệm chân xuống còn 2, nhưng cách này hơi phức tạp và tốn thêm địa chỉ cho I2C và abcxyz ... nói chung là không tốt bằng phương pháp 1 dây
Ý tưởng: keypad này dựa trên ý tưởng chia áp cho từng nút, tức là khi nhấn 1 nút X nào đó, ta sẽ đọc ADC về vđk rồi lưu cái mức đó vào mảng để sau này có bấm lại lần nữa thì dễ quản lí (xuất phát từ anh Nhật chung phòng và công ty Microchip )
Thực hiện:
mọi người dòm cái "xì ke ma tíc" sau thì sẽ hiểu liền
trong quá trình đọc ADC, ai xài mạch debug được thì quá đơn giản rồi, coi liền được cái giá trị đó, còn nếu không thì phải cho qua LCD để đọc. Có cách đơn giản hơn là dùng 10 con led (với ADC 10 bit hay 8 con led với ADC 8 bit) để coi mã nhị phân của nó
Kinh nghiệm:
Kinh nghiệm là khi đọc khi bấm nút để đọc cái giá trị thì đừng có đụng tay vào mối hàn
Với lại nên dùng ADC 10 bit để cho nó nhuyễn ra và dùng được nhiều nút
Trước khi thực hiện, mọi người nên viết ra một ma trận có giá trị hàng và cột là các giá trị điện trở rồi cộng tương ứng hàng i cột j lại với nhau, coi coi điều chỉnh trở sau cho mấy cái tổng đó khác nhau càng xa càng tốt. Còn nếu chịu chơi thì xài m*n cái biến trở cũng được
Đọc xong rồi thì lưu nó vào 1 mảng, sau này khi gọi lại các phím để kiểm tra coi cái nào được nhấn thì nhớ là " if (ADCMEM = giá trị -1) or (ADCMEM = giá trị) or (ADCMEM= giá trị +1)" để cho phím nó nhạy hơn rồi sau đó delay 0.5 hay 1 giây gì đấy.
Khi đọc giá trị phím về, có thể gắn thêm cái tụ 104 song song với chân OUT với mass để cho nó lưu mẫu lại cũng được
Dùng nút 4 chân thì nhớ chú ý thứ tự các chân nối với nhau trong nút, nhớ dùng VOM đo để kiểm tra trước, chứ mình đã từ tháo 15 cái nút ra để hàn lại rồi ... rất là đau thương nên có chút kinh nghiệm để mọi người lưu ý
sau đây là mấy cái hình tham khảo với nguyên cái xì ke ma tíc với lai ao
(hoặc link thay thế)
Ý tưởng: keypad này dựa trên ý tưởng chia áp cho từng nút, tức là khi nhấn 1 nút X nào đó, ta sẽ đọc ADC về vđk rồi lưu cái mức đó vào mảng để sau này có bấm lại lần nữa thì dễ quản lí (xuất phát từ anh Nhật chung phòng và công ty Microchip )
Thực hiện:
mọi người dòm cái "xì ke ma tíc" sau thì sẽ hiểu liền
trong quá trình đọc ADC, ai xài mạch debug được thì quá đơn giản rồi, coi liền được cái giá trị đó, còn nếu không thì phải cho qua LCD để đọc. Có cách đơn giản hơn là dùng 10 con led (với ADC 10 bit hay 8 con led với ADC 8 bit) để coi mã nhị phân của nó
Kinh nghiệm:
Kinh nghiệm là khi đọc khi bấm nút để đọc cái giá trị thì đừng có đụng tay vào mối hàn
Với lại nên dùng ADC 10 bit để cho nó nhuyễn ra và dùng được nhiều nút
Trước khi thực hiện, mọi người nên viết ra một ma trận có giá trị hàng và cột là các giá trị điện trở rồi cộng tương ứng hàng i cột j lại với nhau, coi coi điều chỉnh trở sau cho mấy cái tổng đó khác nhau càng xa càng tốt. Còn nếu chịu chơi thì xài m*n cái biến trở cũng được
Đọc xong rồi thì lưu nó vào 1 mảng, sau này khi gọi lại các phím để kiểm tra coi cái nào được nhấn thì nhớ là " if (ADCMEM = giá trị -1) or (ADCMEM = giá trị) or (ADCMEM= giá trị +1)" để cho phím nó nhạy hơn rồi sau đó delay 0.5 hay 1 giây gì đấy.
Khi đọc giá trị phím về, có thể gắn thêm cái tụ 104 song song với chân OUT với mass để cho nó lưu mẫu lại cũng được
Dùng nút 4 chân thì nhớ chú ý thứ tự các chân nối với nhau trong nút, nhớ dùng VOM đo để kiểm tra trước, chứ mình đã từ tháo 15 cái nút ra để hàn lại rồi ... rất là đau thương nên có chút kinh nghiệm để mọi người lưu ý
sau đây là mấy cái hình tham khảo với nguyên cái xì ke ma tíc với lai ao
Code:
http://www.mediafire.com/?7j1n04mk99p7p7a
Code:
http://www.mediafire.com/?6yl96n6bsi99cli