Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
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!
Đố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è
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!
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
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!
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.
Đó đó , 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 ..........
Đó đó , 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.
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
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!
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
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!
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 đó
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!
Uống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
Bài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
Comment