Mục lục:

Ma trận màn hình LED 5x4 sử dụng tem cơ bản 2 (bs2) và biểu tượng cảm ứng: 7 bước
Ma trận màn hình LED 5x4 sử dụng tem cơ bản 2 (bs2) và biểu tượng cảm ứng: 7 bước

Video: Ma trận màn hình LED 5x4 sử dụng tem cơ bản 2 (bs2) và biểu tượng cảm ứng: 7 bước

Video: Ma trận màn hình LED 5x4 sử dụng tem cơ bản 2 (bs2) và biểu tượng cảm ứng: 7 bước
Video: [Lập trình Arduino - KCQ - 4.2] - Giao tiếp nút Keypad 4x4 (Ma trận phím) - dùng 8 chân GPIO 2024, Tháng bảy
Anonim
Ma trận màn hình LED 5x4 sử dụng Tem cơ bản 2 (bs2) và Charlieplexing
Ma trận màn hình LED 5x4 sử dụng Tem cơ bản 2 (bs2) và Charlieplexing

Có một Tem cơ bản 2 và một số đèn LED bổ sung ở xung quanh? Tại sao không thử với khái niệm ghép nối và tạo ra một đầu ra chỉ bằng 5 chân.

Đối với hướng dẫn này, tôi sẽ sử dụng BS2e nhưng bất kỳ thành viên nào của gia đình BS2 sẽ hoạt động.

Bước 1: Charlieplexing: Cái gì, Tại sao và Làm thế nào

Trước tiên, hãy tìm hiểu lý do tại sao. Tại sao lại sử dụng charlieplexing với Basic Stamp 2? --- Bằng chứng về khái niệm: Tìm hiểu cách hoạt động của charlieplexing và tìm hiểu một số điều về BS2. Điều này có thể hữu ích cho tôi sau này khi sử dụng chip 8 chân nhanh hơn (chỉ 5 trong số chúng sẽ là i / o).--- Lý do hữu ích: Về cơ bản là không có. BS2 quá chậm để hiển thị mà không có hiện tượng nhấp nháy đáng chú ý. Charlieplexing là gì? --- Charlieplexing là một phương pháp điều khiển một số lượng lớn các đèn LED với một số lượng nhỏ chân i / o của bộ vi xử lý. Tôi đã học về Charlieplexing từ www.instructables.com và bạn cũng có thể: Charlieplexing LED- Lý thuyếtCách điều khiển nhiều đèn LED từ một vài chân vi điều khiển. Cũng tại wikipedia: CharlieplexingLàm cách nào để tôi có thể lái 20 led với 5 chân i / o? --- Vui lòng đọc qua ba liên kết dưới "Charlieplexing là gì?". Điều đó giải thích nó tốt hơn bao giờ hết tôi có thể. Charlieplexing khác với ghép kênh truyền thống cần một chân i / o cho mỗi hàng và mỗi cột (đó sẽ là tổng cộng 9 chân i / o cho màn hình 5/4).

Bước 2: Phần cứng và sơ đồ

Phần cứng và Sơ đồ
Phần cứng và Sơ đồ

Danh sách vật liệu: 1x - Tem cơ bản 220x - điốt phát sáng (đèn LED) cùng loại (màu và điện áp giảm) 5x - điện trở (xem bên dưới liên quan đến giá trị điện trở) -9v Nguồn cung cấp tùy thuộc vào phiên bản BS2 của bạn (đọc hướng dẫn sử dụng của bạn) Sơ đồ: Sơ đồ này được đặt cùng với bố cục cơ khí trong tâm trí. Bạn sẽ thấy lưới các đèn LED được thiết lập ở bên trái, đây là hướng mà mã BS2 đã được viết. Chú ý rằng mỗi cặp đèn LED có cực dương được kết nối với cực âm của cặp kia. Sau đó, chúng được kết nối với một trong năm chân i / o. Giá trị điện trở: Bạn nên tính toán giá trị điện trở của riêng mình. Kiểm tra bảng dữ liệu cho các đèn LED của bạn hoặc sử dụng cài đặt đèn LED trên đồng hồ vạn năng kỹ thuật số của bạn để tìm mức giảm điện áp của đèn LED của bạn. của dòng điện. Đèn LED của tôi có mức giảm 1.6v và hoạt động ở 20ma.5v - 1.6v /.02amps = 155ohmsĐể bảo vệ BS2 của bạn, bạn nên sử dụng giá trị điện trở cao hơn tiếp theo từ những gì bạn nhận được với phép tính, trong trường hợp này, tôi tin rằng nó sẽ là 180ohms. Tôi đã sử dụng 220ohms vì bảng phát triển của tôi có giá trị điện trở đó được tích hợp sẵn cho mỗi chân i / o. LƯU Ý: Tôi tin rằng vì có một điện trở trên mỗi chân, điều này có hiệu quả tăng gấp đôi điện trở trên mỗi dẫn vì một chân là V + và chân kia là Gnd. Nếu trường hợp này xảy ra, bạn nên giảm một nửa giá trị điện trở. Tác động bất lợi của giá trị điện trở quá cao là đèn LED mờ hơn. Ai đó có thể xác minh điều này và để lại cho tôi một PM hoặc nhận xét để tôi có thể cập nhật thông tin này? Tôi cũng sử dụng chip này trên bảng mạch không hàn của mình và đã bao gồm tiêu đề Trong Lập trình Nối tiếp Mạch (ICSP). Tiêu đề là 5 chân, các chân từ 2 đến 5 kết nối với các chân 2-5 trên cáp nối tiếp DB9 (Chân 1 không được sử dụng). Xin lưu ý rằng để sử dụng tiêu đề ICSP này, các chân 6 và 7 trên cáp DB9 phải được kết nối với nhau. Đặt lại: Một nút nhấn đặt lại tạm thời là tùy chọn. Điều này chỉ kéo chốt 22 xuống đất khi được đẩy.

Bước 3: Breadboarding

Breadboarding
Breadboarding
Breadboarding
Breadboarding

Bây giờ đã đến lúc xây dựng ma trận trên breadboard, tôi đã sử dụng một dải thiết bị đầu cuối để kết nối một chân của mỗi cặp đèn led với nhau và một dây jumper nhỏ để kết nối các chân còn lại. Điều này được trình bày chi tiết trong ảnh chụp gần và được giải thích sâu ở đây: 1. Định hướng bảng mạch của bạn để phù hợp với hình ảnh lớn hơn2. Đặt LED 1 với Cực dương (+) về phía bạn và Cực âm (-) cách xa bạn. Đặt LED 2 theo cùng hướng với Cực dương (+) trong dải đầu nối của cực âm LED 1. Sử dụng một dây nhảy nhỏ để kết nối Cực dương của LED 1 với Cực âm của LED 2.5. Lặp lại cho đến khi từng cặp đèn LED đã được thêm vào bảng. Tôi sử dụng những gì thông thường sẽ là dải bus nguồn của bảng mạch bánh mì làm dải bus cho các chân I / O BS2. Vì chỉ có 4 dải xe buýt nên tôi sử dụng dải đầu cuối cho P4 (kết nối I / O thứ năm). Điều này có thể được nhìn thấy trên hình ảnh lớn hơn bên dưới. Kết nối dải đầu cuối cho cực âm LED 1 với dải xe buýt P0. Lặp lại đối với mỗi đèn LED được đánh số lẻ thay thế P * thích hợp cho từng cặp (xem sơ đồ).7. Kết nối dải đầu cuối cho cực âm LED 2 với dải xe buýt P1. Lặp lại đối với mỗi đèn LED được đánh số lẻ thay thế P * thích hợp cho từng cặp (xem sơ đồ).8. Kết nối từng dải bus với chân I / O thích hợp trên BS2 (P0-P4).9. Kiểm tra tất cả các kết nối để đảm bảo chúng khớp với sơ đồ. LƯU Ý: Khi cận cảnh, bạn sẽ thấy rằng không có vẻ như tôi đã làm theo bước 7 vì kết nối với chân I / O thứ hai nằm trên Cực dương của các đèn LED được đánh số lẻ. Hãy nhớ rằng Cathode của các đèn LED số chẵn được kết nối với Anode của các đèn LED số lẻ nên kết nối giống nhau. Nếu ghi chú này khiến bạn bối rối, hãy bỏ qua nó.

Bước 4: Khái niệm cơ bản về lập trình

Để phản xạ hoạt động, bạn chỉ bật một đèn LED tại một thời điểm. Để điều này hoạt động với BS2 của chúng tôi, chúng tôi cần hai bước cơ bản: 1. Đặt chế độ đầu ra cho các chân bằng cách sử dụng lệnh OUTS. 2. Cho BS2 biết chân nào sẽ sử dụng làm đầu ra bằng lệnh DIRS Điều này hoạt động bởi vì BS2 có thể cho biết chân nào để điều khiển mức cao và thấp và sẽ đợi làm như vậy cho đến khi bạn chỉ định chân nào là đầu ra. chỉ cố gắng nhấp nháy LED 1. Nếu bạn nhìn vào sơ đồ, bạn có thể thấy rằng P0 được nối với Cathode (-) của LED 1 và P1 được nối với Anode của cùng LED đó. Điều này có nghĩa là chúng tôi muốn điều khiển P0 thấp và P1 cao. Điều này có thể được thực hiện như sau: "OUTS =% 11110" điều khiển P4-P1 cao và P0 thấp. (% Cho biết một số nhị phân theo sau. Chữ số nhị phân thấp nhất luôn ở bên phải. 0 = LOW, 1 = HIGH) BS2 lưu trữ thông tin đó nhưng sẽ không hoạt động trên nó cho đến khi chúng tôi khai báo chân nào là đầu ra. Bước này rất quan trọng vì chỉ có hai chân nên được xuất ra cùng một lúc. Phần còn lại phải là đầu vào, đặt các chân đó ở chế độ Trở kháng cao để chúng không làm chìm bất kỳ dòng điện nào. Chúng ta cần điều khiển P0 và P1 vì vậy chúng ta sẽ đặt chúng thành đầu ra và phần còn lại thành đầu vào như sau: "DIRS =% 00011". (% Chỉ ra một số nhị phân theo sau. Chữ số nhị phân thấp nhất luôn ở bên phải. 0 = INPUT, 1 = OUTPUT) Hãy ghép điều đó lại với nhau thành một số mã hữu ích: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OUTS =% 11110 'Drive P0 thấp và P1-P4 DIRS cao =% 00011' Đặt P0- P1 làm Đầu ra và P2-P4 làm Đầu vào TẠM DỪNG 250 'Tạm dừng để đèn LED vẫn trên DIRS = 0' Đặt tất cả các chân thành Đầu vào. Thao tác này sẽ tắt đèn LED TẠM DỪNG 250 'để đèn LED vẫn tắt LOOP

Bước 5: Chu kỳ phát triển

Bây giờ chúng ta đã thấy thời gian làm việc của một chân để đảm bảo tất cả chúng đều hoạt động. Bạn sẽ nhận thấy rằng sau khi mỗi chân có bin sáng, tôi sử dụng "DIRS = 0" để chuyển tất cả các chân trở lại thành đầu vào. Nếu bạn thay đổi OUTS mà không tắt các chân đầu ra, bạn có thể gặp một số "bóng mờ" trong đó đèn LED không sáng có thể nhấp nháy giữa các chu kỳ. Nếu bạn thay đổi biến W1 ở đầu đoạn mã này thành "W1 = 1" ở đó sẽ chỉ tạm dừng 1 phần nghìn giây giữa mỗi lần nhấp nháy đèn LED. Điều này sẽ gây ra hiệu ứng liên tục của tầm nhìn (POV) khiến nó trông giống như tất cả các đèn LED đều sáng. Điều này không có tác dụng làm cho đèn LED mờ đi nhưng là bản chất của cách chúng tôi hiển thị các ký tự trên ma trận này. Đèn LED thành một mẫu có thể sử dụng được. Tập tin này là nỗ lực đầu tiên của tôi. Bạn sẽ thấy rằng ở cuối tệp, các ký tự được lưu trữ trong bốn dòng nhị phân gồm 5 chữ số. Mỗi dòng được đọc, phân tích cú pháp và một chương trình con được gọi mỗi khi đèn led cần được chiếu sáng. Mã này hoạt động, xoay vòng qua các chữ số 1-0. Nếu bạn cố gắng chạy nó, hãy nhận thấy rằng nó bị cản trở bởi tốc độ làm mới rất chậm khiến các ký tự nhấp nháy gần như quá chậm để được nhận dạng. Mã này là xấu vì nhiều lý do. Trước hết, năm chữ số nhị phân chiếm nhiều chỗ trong EEPROM bằng 8 chữ số nhị phân vì tất cả thông tin được lưu trữ trong các nhóm bốn bit. Thứ hai, CHỌN CASE được sử dụng để quyết định chân nào cần được bật sáng đòi hỏi 20 trường hợp. BS2 được giới hạn ở 16 trường hợp cho mỗi hoạt động SELECT. Điều này có nghĩa là tôi đã phải vượt qua giới hạn đó bằng câu lệnh IF-THEN-ELSE. Phải có một cách tốt hơn. Sau vài giờ vò đầu bứt tai, tôi đã phát hiện ra nó.

Bước 6: Phiên dịch viên tốt hơn

Mỗi hàng của ma trận của chúng tôi bao gồm 4 đèn LED, mỗi đèn có thể bật hoặc tắt. BS2 lưu trữ thông tin trong EEPROM của nó theo nhóm bốn bit. Sự tương quan đó sẽ khiến mọi thứ trở nên dễ dàng hơn với chúng ta. Điều này làm cho hoặc CHỌN CASE dễ dàng hơn nhiều. Dưới đây là chữ số 7 được lưu trữ trong EEPROM: '7% 1111,% 1001,% 0010,% 0100,% 0100, Mỗi hàng có số thập phân tương đương 0-15, vì vậy chúng tôi đọc từ bộ nhớ và đưa trực tiếp vào hàm SELECT CASE. Điều này có nghĩa là ma trận nhị phân có thể đọc được của con người được sử dụng để làm cho mỗi ký tự (1 = bật đèn, 0 = tắt đèn) là chìa khóa cho trình thông dịch. để đặt DIRS và OUTS làm biến. Lần đầu tiên tôi đọc từng dòng trong số năm dòng ký tự cho các biến ROW1-ROW5. Sau đó chương trình chính gọi chương trình con để hiển thị ký tự. Chương trình con này lấy hàng đầu tiên và gán bốn kết hợp OUTS có thể có cho biến outp1-outp4 và hai kết hợp DIRS có thể có cho direc1 & direc2. Đèn LED được nhấp nháy, bộ đếm hàng được tăng lên và quá trình tương tự được chạy cho từng hàng trong số bốn hàng còn lại. Điều này nhanh hơn nhiều so với chương trình thông dịch đầu tiên. Điều đó đang được nói, vẫn có hiện tượng nhấp nháy đáng chú ý. Hãy xem video, máy ảnh làm cho hiện tượng nhấp nháy trông tồi tệ hơn nhiều nhưng bạn hiểu rõ. Chuyển khái niệm này sang một chip nhanh hơn nhiều, như picMicro hoặc chip AVR sẽ cho phép hiển thị các ký tự này mà không có hiện tượng nhấp nháy đáng chú ý.

Bước 7: Đi đâu từ đây

Tôi không có máy nghiền cnc hoặc vật tư khắc để tạo bảng mạch nên tôi sẽ không đấu dây cho dự án này. Nếu bạn có một nhà máy và muốn hợp tác để tiến lên từ đây, hãy gửi tin nhắn cho tôi. Tôi rất sẵn lòng trả tiền cho vật liệu và vận chuyển thậm chí còn hạnh phúc hơn khi thể hiện một sản phẩm hoàn chỉnh cho dự án này.

Các khả năng khác: 1. Chuyển chip này sang chip khác. Thiết kế ma trận này có thể được sử dụng với bất kỳ chip nào có sẵn 5 chân i / o có khả năng ba trạng thái (các chân có thể cao, thấp hoặc đầu vào (trở kháng cao)). 2. Sử dụng chip nhanh hơn (có thể là AVR hoặc picMicro), bạn có thể tăng quy mô. Với chip 20 chân, bạn có thể sử dụng 14 chân để sạc màn hình 8x22 và sử dụng các chân còn lại để nhận các lệnh nối tiếp từ máy tính hoặc bộ điều khiển khác. Sử dụng thêm ba chip 20 chân và bạn có thể có màn hình cuộn 8x88 với tổng số 11 ký tự cùng một lúc (tất nhiên tùy thuộc vào độ rộng của mỗi ký tự). Chúc may mắn vui vẻ!

Đề xuất: