Nguyên văn bởi @bin
Xem bài viết
Thông báo
Collapse
No announcement yet.
Dùng vi điều khiển AVR hiển thị chữ chạy trên led ma trận 2 màu
Collapse
X
-
Nếu chẳng một phen sương thấm lạnh
Hoa mai đâu dễ tỏa mùi hương
-
Chào NGUYEN SINH , mình cũng từng làm 1 cái QB nho nhỏ chừng 24 hàng x160 cột x 2 màu ; mình quét theo cột nhưng thực ra thì quét theo cột hay theo dòng cũng không quan trong lắm đâu , quan trọng nhất là kỹ thuaatj quét , với " công phu " kém cõi của mình thì có thể tóm lược như sau :
Bước 1 : xác định kích thướt , công suất , hiệu ứng -> chon linh kiện (MCU, tầng công suất ,...) ,phương pháp quét led -> thiết kế mạch -> viết chương trình (1 cho MCU và 1cho PC để điều khiển MCU )-> test -> xong .
Nói nghe nó đơn giản quá nhỉ : , nhưng thực ra thì vô cung phức tạp ( mình phải mất gần 4 tháng để học hỏi , chế tạo , và sau vài lần làm hỏng tốn không ít " lúa " mới làm hoàn chỉnh được đó , : ) , mình đã làm như sau :
1- chọn MCU và phần công suất : bảng đầu tiên mình dùng at89 nó giật như uống nhầm thuốc lắc vậy ( mặt dù mình đã cố cải thiện tốc độ bằng phần cứng lẫn phần mềm ) nâng speed thì ít giật hơn nhưng mờ không thấy gì hết -> đến bảng thứ 2 mình chuyển sang xài atmega64 , đúng là một thay đổi tuyệt vời , nó chạy ngon cực ,nhìn đã lắm ! . Còn cái tầng công suất mình cũng khổ sở không ít với nó , trước mình hút dòng trực tiếp từ 74HC595 2 con cho 2 màu và A1015 để phun dòng cho mỗi đơn vị 8x8x2 màu ( không dùng đệm để tiết kiệm ) , dùng 74ls154 (có thêm 16 cổng đảo để đảo từ - -> + )quet 16 cột đệm phía sau là 4 con ULN 2803 để kéo 8x20x3 con A1015 ,mạch này chạy matran led loại 2088 là ok nhưng với 2388 thì hơi mờ , bảng thứ 2 mình dùng 74ch595 để phun dòng trực tiếp chỉ 1 con cho 1 đơn vi 8x8x2 dùng 16 con c1815+ 16 con H1061 để hút dùng cho toàn bộ bảng led ( 8 cho màu xanh và 8 cho màu đỏ ) dịch cột bằng 74hc595 luôn .
Comment
-
2- tầng điều khiển : mình chia bảng thành 3 dãy 8 dòng , mõi dãy dịch data ra bằng 74hc165 đến 74hc595 , như vậy là mình cần 4 con 165 cho cả bảng ( kể cả 1 con dich cột ) , câu hỏi đặt ra là tại sao xài 74165 mặt dù mega64 có speed rất cao -> trả lời để viết code cho gọn nhẹ và dẽ dàng xuất đồng bộ 3 dãy cùng lúc (đầu vào data của chúng nói chung tới 1 port xuát data của MCU .
3- Kỹ thuật quét : Phần này là quang trọng nhất quyết định sống còn tới led borad , như đã nói ở trên ta chia bảng led ra làm 3 dãy như vậy ta cần 6 mảng chứa data cho led board :
unsigned char red_h[160];
unsigned char red_m[160];
unsigned char red_l[160];
unsigned char green_h[160];
unsigned char green_m[160];
unsigned char green_l[160];
(hôm sau viết tiếp thằng bạn nó điện đi gấp)
Comment
-
Tiếp tục ...
như đã nói ở trên , ta cần 6 mảng đệm data cho led board , 3 cho màu đỏ và 3 cho màu xanh ,rồi viết một thủ tục để xuất data ra 1port đã chọn làm đường xuất data lúc thiết kế phần cứng ( chẳng hạn export_data() ), thủ tục này làm nhiệm vụ đặt data ra port lần lượt cho từng dãy , ví dụ :
( vidu này viết trong keil c cho at89)
void load(unsigned char data_out,unsigned char row )
{
// giả sử chân load / shift định nghĩa là sl_pinx
// xuất data ra out_port
out_port = data_out;
switch (row)
{
case 1: sl_pin1 = 0;sl_pin1 = 1;break;
case 2: sl_pin2 = 0;sl_pin2 = 1;break;
case 3: sl_pin2 = 0;sl_pin2 = 1;break;
}
}
void export()
{
unsigned char i;
for(i=0;i<=7;i++)
{
clk=1;
clk=0;
}
}
void export_data()
{
unsigned int i;
unsigned char data_out;
for(i=1;i<=160;i++)
{
// xuất data red ra port
data_out = red_h[i];
load(data_out,1);
data_out = red_m[i];
load(data_out,2);
data_out = red_l[i];
load(data_out,3);
export();
delay_ms(5) ;
// xuất data green ta làm tương tự
........
}
}
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về bơm màng bldcbởi nhathung1101Thì đây là 4r điên nặng điện mà, nên họ show phần điện thôi. Phần "cốt lõi" có cái tay biên chắc sang Văn Môn rồi....
-
Channel: Điện tử dành cho người mới bắt đầu
30-11-2024, 18:54 -
-
Trả lời cho Chọn dây dẫn cho điện DC?bởi nhathung1101Điện DC đương nhiên là khác với AC rồi. Chỉ cần biết mặt chữ là thấy khác như gà trống với gà mái mà.
Còn về bản chất, AC là dòng điện hoạt động theo tần số. Tần số càng cao thì dây dẫn càng mỏng, nhẹ, vì hiệu ứng...-
Channel: Điện tử dành cho người mới bắt đầu
30-11-2024, 18:46 -
-
Trả lời cho Công thức điện tửbởi nhathung1101Ăn ít => Nói nhiều.
Nói nhiều => Làm ít.
Làm ít => Vợ mắng.
Vợ mắng => Cáu nhiều.
Cáu nhiều => Ngủ ít.
Ngủ ít => Râu nhiều.
Râu nhiều =>...-
Channel: Tâm tình dân kỹ thuật
30-11-2024, 18:39 -
-
Trả lời cho Chọn dây dẫn cho điện DC?bởi mèomướpDạ vài chục mét thì chú tính như vậy được ạ. Chứ chuẩn thì phải tính cả điện trở của toàn bộ chiều dài dây dẫn nhân với dòng điện xem sụt áp có trong khoảng chấp nhận đc hông ạ. Trong mạch điện tử khoảng cách ngắn và mạch...
-
Channel: Điện tử dành cho người mới bắt đầu
30-11-2024, 14:49 -
-
bởi vietroadTheo mình biết thì chọn dây dẫn dựa vào dòng tải. Thường thì tiết diện 1mm2 cho dòng 6A. Nhưng trong các mạch điện tử, như mạch nguồn tổ ong chẳng hạn, dòng đến vài chục Ampe mà đường mạch mỏng dính. Phải chăng điện DC nó khác với...
-
Channel: Điện tử dành cho người mới bắt đầu
30-11-2024, 14:19 -
-
Trả lời cho Hỏi về bơm màng bldcbởi vi van phamPhải xem cơ cấu bơm, chứ xem cơ cấu rotor, thì chỉ làm thầy bói xem voi.
-
Channel: Điện tử dành cho người mới bắt đầu
29-11-2024, 08:19 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11vg, cám ơn bác...........
-
Channel: Thiết bị điện tử cá nhân
28-11-2024, 14:37 -
-
bởi khoine9899
Em chào các anh và mọi người.
Hiện em đang có 1 con bơm màng trong thiết bị y tế đang gặp tình trạng yếu dần hoặc ngừng hoạt động sau thời gian sử dụng
Sau khi tìm hiểu về thông tin của bơm trên mạng thì em được biết...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2024, 11:22 -
-
Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửabởi bqviet
-
Channel: Điện tử công suất
27-11-2024, 20:26 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
27-11-2024, 11:37 -
Comment