Mục lục:

Ma trận LED sử dụng thanh ghi Shift: 7 bước (có hình ảnh)
Ma trận LED sử dụng thanh ghi Shift: 7 bước (có hình ảnh)

Video: Ma trận LED sử dụng thanh ghi Shift: 7 bước (có hình ảnh)

Video: Ma trận LED sử dụng thanh ghi Shift: 7 bước (có hình ảnh)
Video: #VIXULY GIỚI THIỆU VỀ LED MA TRẬN, CÁCH KẾT NỐI, LẬP TRÌNH, MÔ PHỎNG 2024, Tháng mười một
Anonim
Ma trận LED sử dụng thanh ghi Shift
Ma trận LED sử dụng thanh ghi Shift
Ma trận LED sử dụng thanh ghi Shift
Ma trận LED sử dụng thanh ghi Shift
Ma trận LED sử dụng thanh ghi Shift
Ma trận LED sử dụng thanh ghi Shift

Hướng dẫn này có nghĩa là một lời giải thích đầy đủ hơn những người khác có sẵn trên mạng. Đáng chú ý, điều này sẽ cung cấp nhiều giải thích về phần cứng hơn là có sẵn trong LED Marquee có thể được hướng dẫn bởi led555.

Bàn thắng

Tài liệu hướng dẫn này trình bày các khái niệm liên quan đến thanh ghi dịch chuyển và trình điều khiển bên cao. Bằng cách minh họa các khái niệm này bằng ma trận LED 8x8, tôi hy vọng sẽ cung cấp cho bạn các công cụ cần thiết để thích ứng và mở rộng theo kích thước và bố cục mà dự án của bạn yêu cầu.

Kinh nghiệm và Kỹ năng

Tôi đánh giá dự án này có độ khó trung bình:

  • Nếu bạn đã có kinh nghiệm lập trình vi điều khiển và làm việc với đèn LED, dự án này sẽ khá dễ dàng để bạn hoàn thành và mở rộng ra các mảng đèn lớn hơn.
  • Nếu bạn mới bắt đầu với vi điều khiển và đã nhấp nháy một hoặc hai đèn LED, bạn sẽ có thể hoàn thành dự án này với sự trợ giúp từ người bạn google của chúng tôi.
  • Nếu bạn có ít hoặc không có kinh nghiệm về vi điều khiển hoặc lập trình, điều này có thể vượt quá những gì bạn nên làm. Hãy thử một vài dự án mới bắt đầu khác và quay lại khi bạn đã có thêm kinh nghiệm viết chương trình cho vi điều khiển.

Tuyên bố từ chối trách nhiệm và Tín dụng

Đầu tiên, tôi không phải là một kỹ sư điện. Nếu bạn thấy điều gì đó sai hoặc không phải là phương pháp hay nhất, vui lòng cho tôi biết và tôi sẽ sửa chữa. Bạn tự chịu rủi ro! Bạn nên biết mình đang làm gì nếu không bạn có thể gây ra thiệt hại cho máy tính, bộ vi điều khiển và thậm chí là bản thân. Tôi đã học được rất nhiều điều từ Internet, đặc biệt là từ các diễn đàn tại: https://www.avrfreaks.net một bộ phông chữ đi kèm với thư viện C đa năng ks0108. Kiểm tra điều đó tại đây:

Bước 1: Các bộ phận

Danh sách các bộ phận

Bộ phận chung

Để tạo lưới 8x8 đèn LED và điều khiển chúng, bạn sẽ cần:

  • 64 đèn LED do bạn lựa chọn
  • 8 điện trở cho đèn LED
  • 1 thanh ghi Shift cho các cột
  • 1 mảng trình điều khiển cho các hàng
  • 8 Điện trở để chuyển đổi mảng trình điều khiển
  • 1 vi điều khiển
  • 1 nguồn xung nhịp cho vi điều khiển
  • 1 bảng tạo mẫu
  • 1 nguồn điện
  • Trèo lên dây

Các bộ phận cụ thể được sử dụng ở đây

Đối với hướng dẫn này, tôi đã sử dụng như sau:

  • 64 đèn LED xanh lục (Mouser part # 604-WP7113GD)
  • 8 điện trở 220ohm 1/4 watt cho đèn LED (Mouser part # 660-CFS1 / 4CT52R221J)
  • 1 trình điều khiển LED HEF4794 với thanh ghi dịch chuyển (Mouser part # 771-HEF4794BPN)
  • 1 Mảng trình điều khiển nguồn cao áp cao áp mic2981 (phần Digikey # 576-1158-ND)
  • 8 điện trở 3,3kohm 1/4 watt để chuyển đổi mảng trình điều khiển (Radio Shack part # 271-1328)
  • 1 vi điều khiển Atmel ATmega8 (Mouser part # 556-ATMEGA8-16PU)
  • 1 tinh thể 12MHz cho nguồn xung nhịp vi điều khiển (Mouser part # 815-AB-12-B2)
  • 1 bảng tạo mẫu 2200 lỗ (Phần cổ máy vô tuyến # 276-147)
  • Bộ cấp nguồn ATX được chuyển đổi: Xem phần này có thể hướng dẫn
  • Dây móc nối 22 awg lõi rắn (Phần khoen đài # 278-1221)
  • Bảng mạch không hàn (phần Radio Shack # 276-169 (không còn nữa, hãy thử: 276-002)
  • AVR Dragon (Mouser part # 556-ATAVRDRAGON)
  • Dragon Rider 500 của Ecros Technologies: Xem hướng dẫn này

Ghi chú về các bộ phận

Trình điều khiển hàng và cột: Có lẽ phần khó nhất của dự án này là chọn trình điều khiển hàng và cột. Trước hết, tôi không nghĩ rằng một thanh ghi ca 74HC595 tiêu chuẩn là một ý tưởng hay ở đây vì chúng không thể xử lý loại dòng điện mà chúng ta muốn gửi qua các đèn LED. Đây là lý do tại sao tôi chọn trình điều khiển HEF4794 vì nó có thể dễ dàng đánh chìm dòng điện hiện tại khi tất cả 8 đèn led trên một hàng được bật. Thanh ghi dịch chuyển hiện diện ở phía thấp (chân nối đất của đèn led). Chúng tôi sẽ cần một trình điều khiển hàng có thể cung cấp đủ dòng điện để xâu chuỗi nhiều cột lại với nhau. Mic2981 có thể cung cấp lên đến 500mA. Phần duy nhất khác mà tôi đã tìm thấy thực hiện tác vụ này là UDN2981 (digikey part # 620-1120-ND), là phần tương tự của một nhà sản xuất khác. Vui lòng gửi tin nhắn cho tôi nếu bạn biết về các trình điều khiển phụ khác có thể hoạt động tốt trong ứng dụng này. Ma trận LED: Ma trận này là 8x8 vì mỗi trình điều khiển hàng và cột có 8 chân. Một mảng LED lớn hơn có thể được xây dựng bằng cách xâu chuỗi nhiều ma trận lại với nhau và sẽ được thảo luận trong bước "khái niệm mô-đun". Nếu bạn muốn có một mảng lớn, hãy đặt hàng tất cả các bộ phận cần thiết cùng một lúc. Có sẵn ma trận LED 8x8, 5x7 và 5x8 trong một gói tiện lợi. Chúng phải dễ dàng thay thế cho một ma trận tự làm. Ebay là một nguồn tốt cho những điều này. Mouser có sẵn một số đơn vị 5x7 chẳng hạn như phần # 604-TA12-11GWA. Tôi đã sử dụng đèn LED màu xanh lá cây rẻ tiền vì tôi chỉ chơi xung quanh và vui chơi. Chi tiêu nhiều hơn cho các đèn LED có độ sáng cao, hiệu suất cao có thể cho phép bạn tạo ra một màn hình hiển thị đẹp mắt hơn nhiều… Tuy nhiên, điều này là đủ tốt đối với tôi! Phần cứng điều khiển: Ma trận được điều khiển bởi bộ vi điều khiển Atmel AVR. Bạn sẽ cần một lập trình viên cho việc này. Vì tôi đang tạo mẫu nên tôi đang sử dụng Dragon Rider 500 mà tôi đã viết cả hướng dẫn lắp ráp và sử dụng. Đây là một công cụ dễ dàng để tạo mẫu và tôi thực sự khuyên bạn nên sử dụng nó.

Bước 2: Ma trận

Ma trận
Ma trận
Ma trận
Ma trận
Ma trận
Ma trận

Tôi sẽ xây dựng ma trận LED của riêng mình cho dự án này bằng cách sử dụng đèn led 5mm và bảng tạo mẫu từ Radio Shack. Cần lưu ý rằng bạn có thể mua module led ma trận 8x8 từ một số nguồn, bao gồm cả ebay. Họ sẽ hoạt động tốt với hướng dẫn này.

Cân nhắc xây dựng

Căn chỉnh Các đèn LED cần được căn chỉnh để chúng hướng về cùng một hướng ở cùng một góc. Tôi tìm thấy tùy chọn dễ dàng nhất cho mình là đặt thân của đèn LED phẳng vào bảng và giữ nó ở đó bằng một miếng plexiglass nhỏ và một cái kẹp. Tôi đặt một vài đèn LED ở vị trí cách hàng vài inch so với hàng mà tôi đang làm việc để đảm bảo tấm thủy tinh song song với bảng tạo mẫu. Hàng và Cột Chúng ta cần có một kết nối chung cho mỗi hàng cũng như mỗi cột. Do lựa chọn trình điều khiển hàng và cột của chúng tôi, chúng tôi cần có cực dương (dây dẫn dương của đèn LED) được kết nối theo hàng và cực âm (dây dẫn âm của đèn LED) được kết nối bằng cột. Dây điều khiển Đối với nguyên mẫu này, tôi đang sử dụng dây nối lõi rắn (dây dẫn đơn). Điều này sẽ rất dễ dàng để giao tiếp với một breadboard không hàn. Hãy thoải mái sử dụng loại trình kết nối khác cho phù hợp với dự án của bạn.

Xây dựng ma trận

1. Đặt cột đầu tiên của LEDS trong bảng tạo mẫu. Kiểm tra kỹ xem phân cực của bạn cho mỗi đèn LED có chính xác không, điều này sẽ rất khó sửa nếu bạn nhận ra sau đó. Hàn cả hai dây dẫn của đèn LED vào bảng. Kiểm tra để đảm bảo chúng được căn chỉnh chính xác (không ở các góc lạ) và cắt các dây dẫn catốt. Hãy chắc chắn rằng bạn không cắt dây dẫn cực dương, chúng ta sẽ cần nó sau này vì vậy chỉ cần để nó hướng lên. Tháo lớp cách điện khỏi một đoạn dây lõi đặc. Hàn đoạn dây này với mỗi cực âm ngay trên bảng.

  • Tôi gắn nó ở mỗi đầu sau đó quay lại và thêm một chút chất hàn ở mỗi điểm nối.
  • Dây này sẽ chạy qua đèn LED cuối cùng của bạn để tạo giao diện dễ dàng khi chúng tôi thêm dây điều khiển.

5. Lặp lại các phần 1-4 cho đến khi bạn có tất cả các đèn LED tại chỗ và tất cả các thanh cái cột được hàn. Để tạo ra một thanh dẫn hàng, uốn cong một số dây dẫn anốt một góc 90 độ để chúng chạm vào dây dẫn anốt khác trong cùng một hàng.

  • Có hình ảnh chi tiết về điều này dưới đây.
  • Chú ý không để những thứ này tiếp xúc với thanh dẫn cột, tạo ra hiện tượng đoản mạch.

7. Hàn các dây dẫn tại mỗi điểm nối và cắt các dây dẫn anốt dư thừa.

Để lại cực dương cuối cùng bám trên đèn LED cuối cùng. Điều này sẽ được sử dụng để kết nối các dây điều khiển trình điều khiển hàng

8. Lặp lại các phần 6 & 7 cho đến khi tất cả các xe buýt hàng đã được hàn. Gắn các dây điều khiển.

  • Tôi đã sử dụng dây lõi đặc màu đỏ cho các hàng và màu đen cho các cột.
  • Nối một dây cho mỗi cột và một dây cho mỗi hàng. Điều này có thể dễ dàng được thực hiện ở cuối mỗi xe buýt.

Quan trọng

Ma trận LED này không có bất kỳ điện trở hạn chế dòng điện nào. Nếu bạn kiểm tra điều này mà không có điện trở, bạn có thể sẽ đốt cháy đèn LED của mình và tất cả công việc này sẽ chẳng có ích lợi gì.

Bước 3: Phần cứng điều khiển

Phần cứng điều khiển
Phần cứng điều khiển
Phần cứng điều khiển
Phần cứng điều khiển

Chúng ta cần kiểm soát các cột và các hàng của ma trận LED của chúng ta. Ma trận đã được xây dựng sao cho Cực dương (phía điện áp của đèn LED) tạo thành các hàng và Cathode (mặt đất của đèn LED) tạo thành các cột. Điều này có nghĩa là trình điều khiển hàng của chúng tôi cần nguồn dòng điện và trình điều khiển cột của chúng tôi cần phải làm chìm nó. Để tiết kiệm trên các chân, tôi đang sử dụng một thanh ghi dịch chuyển để điều khiển các cột. Bằng cách này, tôi có thể kiểm soát số lượng cột gần như không giới hạn chỉ với bốn chân vi điều khiển. Chỉ có thể sử dụng ba nếu chân Enable Output được gắn trực tiếp với điện áp. Tôi đã chọn trình điều khiển LED HEF4794 với thanh ghi dịch chuyển. Đây là một lựa chọn tốt hơn so với 74HC595 tiêu chuẩn vì nó có thể dễ dàng làm chìm dòng điện hiện tại khi tất cả 8 đèn LED bật cùng một lúc. Ở phía cao (nguồn hiện tại cho các hàng), tôi đang sử dụng mic2981. Sơ đồ cho thấy một UDN2981, tôi tin rằng hai thứ này có thể hoán đổi cho nhau. Trình điều khiển này có thể cung cấp dòng điện lên đến 500mA. Bởi vì chúng tôi chỉ điều khiển 1 hàng tại một thời điểm, điều này mang lại rất nhiều cơ hội để mở rộng, lên đến 33 cột cho chip này (thêm về điều đó trong bước "khái niệm mô-đun").

Xây dựng phần cứng điều khiển

Đối với điều này được hướng dẫn, tôi vừa breadboarded mạch này. Để có một giải pháp lâu dài hơn, bạn sẽ muốn khắc bảng mạch của riêng mình hoặc sử dụng bảng tạo mẫu.1. Trình điều khiển hàng

  • Đặt mic2981 (hoặc UDN2981) vào breadboard
  • Kết nối chân 9 với điện áp (Điều này gây nhầm lẫn trong sơ đồ)
  • Kết nối chân 10 với mặt đất (Điều này gây nhầm lẫn trong sơ đồ)
  • chèn điện trở 3k3 kết nối với chân 1-8
  • Kết nối từ Cổng D của ATmega8 (PD0-PD8) với 8 điện trở
  • Kết nối 8 hàng dây điều khiển của ma trận LED với chân 11-18 (lưu ý rằng tôi đã kết nối hàng LED thấp nhất với Chân 18 và hàng Cao nhất với Chân 11).

2. Trình điều khiển cột

  • Đặt hef4794 vào breadboard
  • Kết nối chân 16 với điện áp
  • Kết nối Pin 8 với mặt đất
  • Kết nối điện trở 220 ohm với Chân 4-7 và 11-14.
  • Kết nối 8 dây điều khiển cột từ ma trận LED với 8 điện trở bạn vừa kết nối.
  • Kết nối Pin1 (Latch) với PC0 của ATmega8
  • Kết nối Pin2 (Dữ liệu) với PC1 của ATmega8
  • Kết nối Pin3 (Đồng hồ) với PC2 của ATmega8
  • Kết nối Pin15 (Bật đầu ra) với PC3 của ATmega8

3. Đồng hồ Pha lê

Kết nối một tinh thể 12MHz và các tụ điện tải như được hiển thị trong sơ đồ

4. ISP

Kết nối tiêu đề lập trình như được hiển thị trong sơ đồ

5. Lọc Tụ điện và Điện trở kéo lên

  • Tốt nhất là lọc điện áp cung cấp cho ATmega8. Sử dụng tụ điện 0,1uf giữa Pin 7 & 8 của ATmega8
  • Chốt đặt lại không được để nổi vì nó có thể gây ra việc đặt lại ngẫu nhiên. Sử dụng một điện trở để kết nối nó với điện áp, bất cứ điều gì khoảng 1k là tốt. Tôi đã sử dụng một điện trở 10k trong sơ đồ.

6. Đảm bảo rằng bạn đang sử dụng nguồn điện quy định + 5v. Việc thiết kế bộ điều chỉnh tùy thuộc vào bạn.

Bước 4: Phần mềm

Thủ thuật

Vâng, giống như mọi thứ, có một mẹo nhỏ. Bí quyết là không bao giờ có nhiều hơn 8 đèn LED được chiếu sáng cùng một lúc. Để điều này hoạt động tốt, bạn cần có một chút lập trình khéo léo. Khái niệm tôi đã chọn là sử dụng ngắt bộ định thời. Đây là cách hoạt động của ngắt màn hình bằng tiếng Anh đơn giản:

  • Bộ đếm thời gian đếm đến một thời điểm nhất định, khi đạt đến dịch vụ ngắt thường trình được chạy.
  • Quy trình này quyết định hàng nào là hàng tiếp theo sẽ được hiển thị.
  • Thông tin cho hàng tiếp theo được tra cứu từ bộ đệm và chuyển vào trình điều khiển cột (thông tin này chưa được "chốt" nên chưa được hiển thị).
  • Trình điều khiển hàng đã tắt, không có đèn LED nào hiện sáng.
  • Trình điều khiển cột được "chốt" thực hiện trong thông tin chúng tôi đã chuyển trong hai bước trước đây thông tin hiện tại để hiển thị.
  • Trình điều khiển hàng sau đó cung cấp hiện tại cho hàng mới mà chúng tôi đang hiển thị.
  • Quy trình phục vụ ngắt kết thúc và chương trình trở lại luồng bình thường cho đến lần ngắt tiếp theo.

Điều này xảy ra rất nhanh chóng. Ngắt được ném mỗi 1 mSec. Điều này có nghĩa là chúng tôi đang làm mới toàn bộ màn hình khoảng 8 mSec một lần. Điều này có nghĩa là tỷ lệ hiển thị khoảng 125Hz. Có một số lo ngại về độ sáng vì về cơ bản chúng tôi đang chạy các đèn LED ở chu kỳ làm việc 1/8 (chúng tắt 7/8 thời gian). Trong trường hợp của tôi, tôi nhận được một màn hình đủ sáng và không có hiện tượng nhấp nháy. Màn hình LED đầy đủ được ánh xạ thành một mảng. Giữa các lần ngắt, mảng có thể được thay đổi (lưu ý đến tính nguyên tử) và sẽ xuất hiện trên màn hình trong lần ngắt tiếp theo. của điều này có thể hướng dẫn. Tôi đã bao gồm mã nguồn (được viết bằng C và được biên dịch bằng AVR-GCC) cũng như tệp hex để lập trình trực tiếp. Tôi đã nhận xét tất cả mã, vì vậy bạn có thể sử dụng mã này để giải đáp mọi thắc mắc về cách lấy dữ liệu vào sổ đăng ký shift và cách làm mới hàng đang hoạt động. Xin lưu ý rằng tôi đang sử dụng tệp phông chữ đi kèm với thư viện C đa năng ks0108. Thư viện đó có thể được tìm thấy tại đây:

Đăng ký Shift: Làm thế nào để

Tôi đã quyết định thêm một chút về cách lập trình với các thanh ghi shift. Tôi hy vọng điều này sẽ sáng tỏ cho những người chưa từng làm việc với chúng trước đây. Họ làm gì Thanh ghi dịch chuyển lấy tín hiệu từ một dây và xuất thông tin đó đến nhiều chân khác nhau. Trong trường hợp này, có một dây dữ liệu nhận dữ liệu và 8 chân được điều khiển tùy thuộc vào dữ liệu đã được nhận. Để làm cho mọi thứ tốt hơn, có một chân cắm cho mỗi thanh ghi shift có thể được kết nối với chân đầu vào của một thanh ghi shift khác. Điều này được gọi là phân tầng và làm cho tiềm năng mở rộng gần như không giới hạn. Thanh ghi Control PinsShift có 4 chân điều khiển:

  • Latch - Chân này thông báo cho thanh ghi shift khi đến lúc chuyển sang dữ liệu mới được nhập
  • Dữ liệu - Số 1 và số 0 cho thanh ghi dịch chuyển biết chân nào cần kích hoạt sẽ nhận được trên chân này.
  • Đồng hồ - Đây là một xung được gửi từ bộ vi điều khiển ra lệnh cho thanh ghi dịch chuyển đọc dữ liệu và chuyển sang bước tiếp theo trong quá trình giao tiếp
  • Kích hoạt đầu ra - Đây là công tắc bật / tắt, Cao = Bật, Thấp = Tắt

Làm cho nó thực hiện việc đặt giá thầu của bạn: Đây là một khóa học cơ bản về hoạt động của các chân điều khiển ở trên: Bước 1: Đặt Latch, Data và Clock ở mức thấp

Đặt Latch low cho thanh ghi dịch chuyển mà chúng ta sắp ghi vào nó

Bước 2: Đặt chân Dữ liệu thành giá trị logic mà bạn muốn gửi đến Thanh ghi Shift Bước 3: Đặt chân Đồng hồ lên cao, yêu cầu Thanh ghi dịch chuyển đọc giá trị chân Dữ liệu hiện tại

Tất cả các giá trị khác hiện có trong Thanh ghi Shift sẽ di chuyển qua 1 chỗ, nhường chỗ cho giá trị logic hiện tại của chân Dữ liệu

Bước 4: Đặt chân Đồng hồ ở mức thấp và lặp lại các bước 2 và 3 cho đến khi tất cả dữ liệu được gửi đến thanh ghi ca.

Chân đồng hồ phải được đặt ở mức thấp trước khi thay đổi thành giá trị Dữ liệu tiếp theo. Chuyển đổi chân này giữa mức cao và mức thấp là những gì tạo ra "xung đồng hồ" mà thanh ghi dịch chuyển cần biết khi nào chuyển sang bước tiếp theo trong quy trình

Bước 5: Đặt Latch cao

Điều này cho thanh ghi dịch chuyển để lấy tất cả dữ liệu đã được chuyển vào và sử dụng nó để kích hoạt các chân đầu ra. Điều này có nghĩa là bạn sẽ không thấy dữ liệu khi nó đang chuyển sang; không có thay đổi nào trong các chân đầu ra sẽ xảy ra cho đến khi Latch được đặt ở mức cao

Bước 6: Đặt Kích hoạt đầu ra cao

  • Sẽ không có đầu ra chân cho đến khi Đầu ra Bật được đặt thành cao, bất kể điều gì đang xảy ra với ba chân điều khiển khác.
  • Ghim này luôn có thể để ở mức cao nếu bạn muốn

Xếp tầng Có hai chân bạn có thể sử dụng để xếp tầng, Os và Os1. Os dành cho đồng hồ tăng nhanh và Os1 dành cho đồng hồ tăng chậm. Móc chân này vào chân dữ liệu của thanh ghi ca tiếp theo và phần tràn từ chip này sẽ được nhập vào tiếp theo.

Giải quyết màn hình

Trong chương trình ví dụ, tôi đã tạo một mảng 8 byte được gọi là row_buffer . Mỗi byte tương ứng với một hàng của màn hình 8x8, hàng 0 là dưới cùng và hàng 7 là trên cùng. Bit ít quan trọng nhất của mỗi hàng nằm ở bên phải, bit quan trọng nhất ở bên trái. Thay đổi hiển thị dễ dàng như ghi một giá trị mới vào mảng dữ liệu đó, quy trình dịch vụ ngắt sẽ đảm nhận việc làm mới màn hình.

Lập trình

Lập trình sẽ không được thảo luận chi tiết ở đây. Tôi sẽ cảnh báo bạn không sử dụng cáp lập trình DAPA vì tôi tin rằng bạn sẽ không thể lập trình chip khi nó đang chạy ở 12MHz. Tất cả các lập trình tiêu chuẩn khác sẽ hoạt động (lập trình STK500, MKII, Dragon, Parallel / Serial, v.v.). Cầu chì: Đảm bảo lập trình cầu chì để sử dụng cầu chì 12MHz: 0xC9lfuse: 0xEF

Đang hành động

Sau khi bạn lập trình chip, màn hình sẽ hiển thị dòng chữ "Hello World!". Đây là một video về ma trận LED trong các hoạt động. Chất lượng video khá thấp khi tôi thực hiện điều này bằng tính năng video của máy ảnh kỹ thuật số của mình và không phải là video hoặc webcam thích hợp.

Bước 5: Khái niệm mô-đun

Khái niệm mô-đun
Khái niệm mô-đun
Khái niệm mô-đun
Khái niệm mô-đun
Khái niệm mô-đun
Khái niệm mô-đun
Khái niệm mô-đun
Khái niệm mô-đun

Dự án này có thể mở rộng. Yếu tố giới hạn thực sự duy nhất sẽ là dòng điện mà nguồn điện của bạn có thể cung cấp. (Thực tế khác là bạn có bao nhiêu đèn LED và bộ chuyển số đăng ký).

Toán học

Tôi đang điều khiển đèn LED ở khoảng 15mA (5V-1.8vDrop / 220ohms = 14.5mA). Điều này có nghĩa là tôi có thể lái tới 33 cột với trình điều khiển mic2981 (500mA / 15mA = 33,3). Chia cho 8, chúng ta có thể thấy rằng điều này cho phép chúng ta xâu chuỗi 4 thanh ghi shift lại với nhau. Cũng nên lưu ý rằng bạn không cần phải có tất cả 32 cột trải dài từ trái sang phải. Thay vào đó, bạn có thể tạo một mảng 16x16 được nối dây giống như cách bạn làm với mảng 8x32. Điều này sẽ được giải quyết bằng cách dịch chuyển trong 4 byte…. hai byte đầu tiên sẽ chuyển hết sang hàng dẫn cho hàng thứ 9, hai byte thứ hai sẽ chuyển sang hàng đầu tiên. Cả hai hàng sẽ được lấy nguồn bởi một ghim trên trình điều khiển hàng.

Xếp chồng các thanh ghi Shift

Các thanh ghi dịch chuyển được sử dụng là thanh ghi dịch chuyển tầng. Điều này có nghĩa là khi bạn thay đổi dữ liệu, phần tràn sẽ xuất hiện trên chân Os. Điều này trở nên rất hữu ích vì một tập hợp các thanh ghi shift có thể được kết nối với nhau, chân Os đến chân Data, thêm 8 cột với mỗi chip mới. Tất cả các thanh ghi shift sẽ kết nối với cùng một chân Latch, Clock và Enable Output. bộ vi điều khiển. Hiệu ứng "xếp tầng" được tạo ra khi Os của thanh ghi dịch chuyển đầu tiên được kết nối với chân Dữ liệu của thanh ghi thứ hai. Chương trình sẽ cần được thay đổi để phản ánh số lượng cột tăng lên. Cả bộ đệm lưu trữ thông tin và chức năng chuyển thông tin vào cho mỗi cột đều cần được cập nhật để phản ánh số lượng cột thực tế. Một sơ đồ về điều này được đưa ra dưới đây làm ví dụ.

Nhiều trình điều khiển hàng

Trình điều khiển hàng (mic2981) có thể cung cấp đủ dòng điện cho 32 cột. Nếu bạn muốn nhiều hơn 32 cột thì sao? Có thể sử dụng nhiều trình điều khiển hàng mà không cần sử dụng thêm chân vi điều khiển. Chúng tôi cần trình điều khiển hàng cung cấp đủ dòng điện để chiếu sáng đèn LED. Nếu bạn đang sử dụng nhiều cột hơn mức có thể chiếu sáng cùng một lúc, thì trình điều khiển hàng bổ sung có thể cung cấp dòng điện cần thiết. Các chân đầu vào giống nhau từ bộ vi điều khiển được sử dụng nên không cần thay đổi quá trình quét các hàng. Nói cách khác, mỗi trình điều khiển điều khiển các hàng cho một khối 8x32. Mặc dù 64 cột có thể có cùng vị trí hàng VẬT LÝ, chúng tôi chia các xe buýt hàng làm hai, sử dụng một trình điều khiển cho 8 hàng của 32 cột đầu tiên và trình điều khiển thứ hai cho 8 hàng của 32 cột thứ hai, v.v. Một sơ đồ về điều này được đưa ra dưới đây làm ví dụ. Không sử dụng nhiều trình điều khiển hàng với cùng số cột. Làm như vậy có nghĩa là mỗi chân thanh ghi dịch chuyển sẽ chạy nhiều hơn một đèn LED tại một thời điểm. Bạn phải có một bộ 8 điện trở (3k3) cho mỗi trình điều khiển hàng, một bộ cho nhiều trình điều khiển hàng sẽ không hoạt động vì nó sẽ không cung cấp dòng điện cần thiết để chuyển các cổng.

Ví dụ

Tôi quyết định mở rộng trên ma trận mà tôi đã xây dựng trước đó. Tôi đã thêm 7 hàng nữa với tổng số 15 hàng vì đó là tất cả những gì tôi có thể lắp được trên bảng xếp hạng này. Tôi cũng vừa phát hiện ra một cuộc thi mà Người hướng dẫn đang thực hiện có tên "Hãy phát sáng". Đây là một video của tôi về điều đó. Một lần nữa, chiếc máy ảnh kỹ thuật số mà tôi sử dụng để quay video không làm được điều đó một cách công bằng. Điều này trông rất tuyệt đối với mắt người, đặc biệt là khi tất cả các đèn LED đều nhấp nháy, nhưng trông gần như không đẹp trong video. Thưởng thức: Mã nguồn cho màn hình lớn hơn này được bao gồm bên dưới.

Bước 6: Kết luận

Bổ sung có thể

I2CI đã để lại hai chân Giao diện dây (I2C) không được sử dụng trong thiết kế này. Có một số triển vọng thú vị có thể sử dụng hai chân này. Việc bổ sung I2C EEPROM sẽ cho phép lưu trữ các thư lớn hơn nhiều. Ngoài ra còn có triển vọng thiết kế lập trình để biến mega8 thành trình điều khiển hiển thị tương thích I2C. Điều này sẽ mở ra khả năng có một thiết bị hỗ trợ USB hiển thị dữ liệu trên mảng LED của bạn bằng cách chuyển nó qua bus I2C. Điều này sẽ cho phép các thông báo được lập trình thông qua một hệ thống menu. Một người chỉ ghi các ký tự vào màn hình, người kia cuộn các ký tự lên màn hình. Điều quan trọng cần nhớ là những gì bạn nhìn thấy trong đèn được thể hiện trong một mảng dữ liệu. Nếu bạn nghĩ ra các cách khác nhau để thay đổi mảng dữ liệu, đèn sẽ thay đổi theo cách tương tự. Điều này có thể được sử dụng như một bộ phân tích tín hiệu với âm thanh nổi. Thao tác cuộn có thể được thực hiện từ trên xuống hoặc từ dưới lên, thậm chí từ trái sang phải. Chúc may mắn vui vẻ!

Bước 7: Theo dõi

Theo sát
Theo sát
Theo sát
Theo sát
Theo sát
Theo sát
Theo sát
Theo sát

Sau khi để mạch điều khiển nằm trong breadboard trong nhiều tháng, cuối cùng tôi đã thiết kế và khắc một vài bảng mạch để ghép nguyên mẫu này lại với nhau. Mọi thứ đều diễn ra tuyệt vời, tôi không nghĩ sẽ có bất cứ điều gì tôi có thể làm khác đi.

Tính năng bảng mạch

  • Thanh ghi dịch chuyển nằm trên các bảng riêng biệt có thể được xâu chuỗi với nhau để tăng kích thước của màn hình.
  • Bo mạch điều khiển có bộ điều chỉnh nguồn riêng nên nó có thể được chạy bằng bất kỳ nguồn điện nào cung cấp 7v-30v (pin 9v hoặc nguồn cung cấp băng ghế dự bị 12v đều hoạt động tốt đối với tôi).
  • Bao gồm đầu cắm ISP 6 chân để bộ vi điều khiển có thể được lập trình lại mà không cần tháo nó ra khỏi bo mạch.
  • Có sẵn tiêu đề 4 chân để sử dụng bus I2C trong tương lai. Điều này có thể được sử dụng cho eeprom để lưu trữ nhiều thông báo hơn hoặc thậm chí biến thiết bị này thành thiết bị nô lệ được điều khiển bởi một bộ vi điều khiển khác (có ai đánh dấu RSS không?)
  • 3 nút nhấn tạm thời được bao gồm trong thiết kế. Tôi có thể điều chỉnh chương trình cơ sở trong tương lai để bao gồm việc sử dụng các nút này.

cuộc họp

Đưa cho tôi plexiglass, giá đỡ góc, vít máy 6x32, đai ốc và vòng đệm, cũng như một bộ vòi để luồn các lỗ và tôi có thể tạo ra bất cứ thứ gì.

Giải nhì trong Let It Glow!

Đề xuất: