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
-
bạn cứ mua cuốn sách họ vi điều khiển của "Tống Văn Ôn" hoặc của "Nguyễn Tăng Cường" về mà đọc và có chi không hiểu thì lên diễn đàn hỏi. Như thế thì mọi người mới có thể giup được bạn. Bạn nên vào luồng làm wen với vi điều khiển, ở đó sẽ giúp được bạn đấyNế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
-
bởi dinhthuong92Đấy, cái tôi thắc mắc là chỗ màu hồng ấy bạn, để áp vào cao chứ không bị sụt gần bằng áp pin thì rất cần cuộc cảm để làm điều đó. Tuy nhiên, trong công thức bác thớt dẫn không thấy mặt L, và một vài mạch MPPT tôi đã kiểm...
-
Channel: Nguồn!
hôm nay, 10:01 -
-
bởi mèomướpDạ mạch sạc là 1 cục nguồn, nó sẽ điều chỉnh công suất đầu ra để có tổng trở bằng nội trở của pin ạ. Và cái cách nó chỉnh công suất đầu ra sẽ là dạng buck, boot. Đều cần đến cuộn cảm ạ. Tất nhiên chú thích thì có thể dùng dạng tuyến tính transistor để bù trừ nhưng mà nó đốt năng lượng vô ích ạ...
-
Channel: Nguồn!
Hôm qua, 16:26 -
-
bởi dinhthuong92Tng trở R của tải (gồm pin và mạch sạc) trong công thức đó rõ ràng khống có L xuất hiện. Nếu tính các dây dẫn thì rất nhỏ, bỏ qua. Vì nội trở pin là rất nhỏ, có thể nói luôn lớn hơn nội trở solar, nên mạch MPPT sẽ hầu như luôn tính...
-
Channel: Nguồn!
Hôm qua, 11:00 -
-
bởi dinhthuong92Chào bác. Đã là công thức phải tổng quát chứ, nó phải thể hiện cả quá trình, rối thì quá độ hay xác lập tính sau vì tùy điều kiện. Cũng như công thức tính diện tích chả hạn, phải là tích phân....
-
Channel: Nguồn!
Hôm qua, 10:49 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamCa sĩ AI cũng có vài loại, có ca sĩ chuyên và không chuyên.Ca sỉ chuyên thì là Synthesizer V, còn không chuyên thì là Suno. Ca sĩ chuyên thì mệt với nó lắm, phải biết nhạc và biết cả ngôn ngữ của nó để điều khiển, còn ca sĩ không chuyên thì...
-
Channel: Tâm tình dân kỹ thuật
04-05-2026, 21:33 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chúc mừng bác có ca khúc hay tặng bà xã nhé! Nếu muốn hát đúng ý mình thì bác chịu khó... thuê ca sĩ nha!!!!😁😁😁...
-
Channel: Tâm tình dân kỹ thuật
04-05-2026, 15:43 -
-
bởi dinhthuong92Trong các công thức không có mặt L bạn. Trước mình nghĩ cứ phải có L cơ....
-
Channel: Nguồn!
04-05-2026, 15:35 -

Comment