Multiplexing có bao giờ vượt trội hơn Charlieplexing không?


17

Tôi đã xem xét hai phương pháp và ghép kênh thực sự chỉ có một lợi thế, đó là việc theo dõi một đèn LED thất bại sẽ dễ dàng hơn trong một mảng Charlieplex.

Ai đó có thể hiểu biết hơn có thể giải thích bất kỳ sự đánh đổi nào khác không?

Câu trả lời:


25

Vâng, cả ghép kênh và charlieplexing đều có những ưu điểm của chúng, và mỗi loại đều phù hợp nhất cho các nhiệm vụ khác nhau.

Ưu điểm chính của charlieplexing là nó có thể được thực hiện trên một vi điều khiển cỡ trung bình, điều khiển nhiều đèn LED hơn với ít chân I / O hơn và có khả năng không có phần cứng bên ngoài ngoài đèn LED.

Giờ đây, lợi thế của "không có phần cứng bên ngoài" chỉ áp dụng cho số lượng đèn LED tương đối nhỏ, cho đến khi bạn đạt đến giới hạn hiện tại của vi điều khiển và nó áp đặt giới hạn độ sáng mà các mảng đa kênh không có. Nếu bạn chọn không sử dụng phần cứng bên ngoài, bạn thường bị giới hạn chỉ lái một đèn LED trong ma trận tại bất kỳ thời điểm nào - không giống như một mảng được ghép trong đó bạn lái một hàng đầy đủ tại một thời điểm.

Khi bạn thêm phần cứng bên ngoài để điều khiển các đèn LED có độ sáng cao hơn để phù hợp với mảng đa pha, charlieplexing sẽ mất ánh sáng.

Đầu tiên, một mảng ghép được xử lý đúng theo hàng và cột; nó rất đơn giản để làm điều này. Bật hàng 1, bật tất cả các cột cho hàng 1, tắt hàng 2, bật tất cả các cột cho hàng 2, v.v. Ngược lại, một mảng charlieplexed ít đơn giản hơn nhiều. Luôn có một hàng chéo vô dụng và cá nhân tôi sử dụng các bảng tra cứu để liên kết giữa các mảng của tôi và một mảng hình chữ nhật nơi tôi lưu trữ dữ liệu của mình.

Thứ hai, và một kẻ giết người, đó là charlieplexing thường yêu cầu trình điều khiển ba trạng thái. Ghép kênh, tuy nhiên, được thực hiện với logic nhị phân bật tắt nghiêm ngặt. Nếu bạn có bộ vi điều khiển đếm pin thấp và muốn lái một dãy đèn LED lớn, thì việc sử dụng chip logic bên ngoài (ví dụ: thanh ghi thay đổi và / hoặc trình điều khiển LED) để điều khiển cả trục X và Y là điều đơn giản. Hầu hết các loại chip đăng ký thay đổi không hỗ trợ quá trình tristing cần thiết để thực hiện điều tương tự trong một mảng charlieplexed. Trình điều khiển charlieplexed chuyên dụng có sẵn, nhưng gần như không linh hoạt.

Thứ ba, trong một mảng charlieplexed, mọi pin không tích cực làm gì đó vẫn được nối với đèn LED thông qua kết nối yếu ("trở kháng cao"). Và trong khi kết nối yếu, nó không khác. Giả sử rằng bạn có 25 chân I / O được kết nối với lưới đèn LED. Nếu bạn bật một đèn LED - lấy một trong số 25 dòng cao và một trong số 25 dòng đó thấp, sẽ để lại 23 dòng có trở kháng cao. Mỗi nơi mà đường I / O cao đi qua đèn LED đến đường trung tính, có một số khả năng rò rỉ dòng điện. Không nhiều. Có thể là một microamp ở đây hoặc ở đó. Nhưng với đèn LED hiện đại, hiệu quả, điều đó thường đủ để tạo bóng mờ nhìn thấy được.

Thứ tư, khó kiểm soát độ sáng LED trong một mảng charlieplexed. Trong một mảng được ghép kênh, bạn có thể sử dụng bất kỳ số lượng chip điều khiển LED "chìm" điều tiết hiện có nào có thể điều chỉnh độ sáng của từng cột một cách riêng biệt, bằng cách sử dụng quy định hiện hành kết hợp với trình điều khiển PWM. Trong phạm vi các vị trí ma trận charlieplexed được xử lý riêng lẻ và chỉ sử dụng một điện trở trên mỗi hàng hoặc cột, việc thực hiện hiệu chỉnh độ sáng chấm và hoạt ảnh màu xám / màu đầy đủ trong một mảng charlieplexed khó hơn nhiều.


1
Đọc tốt. Cung cấp một số cái nhìn sâu sắc về các thiết kế của bạn ...
NickHalden

Chỉ cần mua led mờ thường xuyên nhưng bóng ma vẫn là một vấn đề. Có tốt hơn để sử dụng một resisitor cho mỗi led thay vì mỗi dòng? Tôi lái 6 led với việc sử dụng Attiny85. Trước đây tôi đã sử dụng điện trở 330 Ohm cho mỗi dòng và bây giờ tôi đang sử dụng 1K. Với 1K, sự thay đổi ít hơn nhưng vẫn còn đó, đèn led cũng không sáng như với 330 Ohm. Vì vậy, tốt hơn là mỗi đèn LED có điện trở riêng để loại bỏ điều này?
Codebeat

3

Nhược điểm đáng kể nhất của đèn "Charlieplexing" là nó giới hạn số lượng đèn LED có thể được điều khiển với ghép kênh 'n'-way thành n (n-1). Tôi không thấy yêu cầu trình điều khiển ba trạng thái là một vấn đề với toàn bộ kỹ thuật. Chắc chắn phải sử dụng hai trình điều khiển thông thường thay vì trình điều khiển ba trạng thái sẽ làm giảm lợi ích từ CharliePlexing, nhưng trong một số trường hợp, lợi thế vẫn có thể vẫn còn (ví dụ: có thể giảm số lượng dây kết nối giữa bảng điều khiển với trình điều khiển và bảng điều khiển với đèn hoặc công tắc).

Đối với các công tắc Charlieplexing, bài viết trên Wikipedia không đề cập đến nhược điểm lớn nhất: Charlieplexing không cho phép bộ điều khiển chờ thụ động khi ấn nút. Mặt khác, nó quá bi quan về các yêu cầu thành phần. Vào năm 1997, tôi đã sản xuất một thiết bị quét tám nút bằng ba chân I / O và một chân chỉ có đầu vào trên PIC12C508, mà không cần bất kỳ điốt bên ngoài hoặc các thành phần nào khác ngoại trừ IIRC kéo lên cho chân PIC không có một cái được xây dựng trong; Cách tiếp cận có thể xử lý mười nút với việc bổ sung một điện trở kéo lên khác (đối với một pin I / O khác không có), nhưng khách hàng chỉ cần tám nút nên không cần.


Bạn có một sơ đồ nào đó trên mạng không?
Codebeat

@Erwinus: Tất cả các dây từ CPU đều được kéo lên. Kết nối một công tắc với mọi cặp dây có thể (vì vậy nếu có bốn dây, đó sẽ là sáu công tắc; nếu năm dây, 10; nếu sáu, bảy hoặc tám, 15, 21 hoặc 28). Kết nối một công tắc giữa mỗi dây và mặt đất (thêm một công tắc cho mỗi dây).
supercat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.