Nguyên văn bởi MicroDuyphi
Xem bài viết
Thông báo
Collapse
No announcement yet.
Tutorial: Led ma trận bằng hình ảnh (completed)
Collapse
This is a sticky topic.
X
X
-
PHP Code:Bác cho em hỏi, không biết phải điều khiển 16 dòng như thế nào, tại vì chỉ có một chân dữ liệu Data của SPI, mỗi lần gửi dữ liệu ra thì cả hàng led8x8 phía trên và phía dưới đều nhận được dữ liệu. Có thể dữ liệu sẽ hiện thị lên cả hàng trên và hàng dưới.
Em có cách sau bác thử góp ý dùm em.
+ em sẽ tạo 2 mảng dữ liệu: hangtren[]={156,136,112,162,72,137,130,40,138,130,47,138,130,232,139,162,40,138};
hangduoi[]={156,136,112,162,72,137,130,40,138,130,47,138,130,232,139,162,40,138};
+ em sẽ tạo 2 mảng âm bản hiện thị:
for (i=0;i<=23;i++){
Dmem1[i]=~hangtren[i];
Dmem2[i]=~hangduoi[i];
}
+ trong ngat timer
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void){
spi(DMem[r*5+4]); // byte thứ 4 ở hàng thứ r
spi(DMem[r*5+3]); // byte thứ 3 ở hàng thứ r
spi(DMem[r*5+2]); // byte thứ 2 ở hàng thứ r
spi(DMem[r*5+1]); // byte thứ 1 ở hàng thứ r
spi(DMem[r*5]); // byte thứ 0 ở hàng thứ r
LatchData(); //ở đây có cần chân chốt 1 không bác?
PORTC=r+8; // để Enable chú 74138 thu 1 hoat dong
spi(Dmem1[r*5+4]); // byte thứ 4 ở hàng thứ r
spi(Dmem1[r*5+3]); // byte thứ 3 ở hàng thứ r
spi(Dmem1[r*5+2]); // byte thứ 2 ở hàng thứ r
spi(Dmem1[r*5+1]); // byte thứ 1 ở hàng thứ r
spi(Dmem1[r*5]); // byte thứ 0 ở hàng thứ r
LatchData(); // ở đây có cần chân chốt 2 không bác?
PORTD=r+8; // để Enable chú 74138 thu 2 hoat dong
r++;
if (r==8) r=0;
}
Không biết cách này có được ko vậy bác. Tại em thấy dữ liệu lúc nào cũng nằm ở cả hàng led trên và dưới hết, nên rất khó hiện thị theo ý muốn.
Em thấy phần cứng trong hình vẽ bác cho nhưng không biết chi tiết, bác có thể chỉ giáo cho em , để em thiết kế. Em cảm ơn bác. Bài hơi dài.
Web:[url]www.ledviet.info/url]
Email:
DĐ:0949299699
Comment
-
Nguyên văn bởi manhha2799 Xem bài viếtPHP Code:Bác cho em hỏi, không biết phải điều khiển 16 dòng như thế nào, tại vì chỉ có một chân dữ liệu Data của SPI, mỗi lần gửi dữ liệu ra thì cả hàng led8x8 phía trên và phía dưới đều nhận được dữ liệu. Có thể dữ liệu sẽ hiện thị lên cả hàng trên và hàng dưới.
Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
-
Nguyên văn bởi manhha2799 Xem bài viếtHình của em đây. Bác cho em hỏi nếu làm matrix 16x48 thì cách điều khiển hiển thị dữ liệu lên 16 dòng như thế nào? Bác có thể hướng dẫn sơ sơ về mạch của bác bữa hôm gửi cho em không? Thanks.
Công việc bây giờ là làm sao có nhiều hơn 1 ngõ SPI.
Có các cách sau:
- Sử dụng MCU có nhiều hơn 1 ngõ SPI
- Sử dụng IC phân kênh 4052
- Sử dụng PLD (khuyên dùng GAL16V8)
Trong đó cách thứ 2 là cách đơn giản nhất đấy.
PS: Cái hình vẽ của bác rất chuẩn rồi đấy. Chúc mừng.Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
-
Hay quá Pác ơi ! em cũng đang tìm hiểu về AVR8515 và dùng nó để làm matrix để chơi cho khoái . thanks pác nhiều nhéchỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
Everything should be made as simple as possible, but not simpler
Comment
-
em hỏi cái này mấy pác ơi !
nếu dùng con 8515 này thì có thể làm được matrix có kích thước lớn nhất là bao nhiêu (không dùng con Ram ngoài)?Last edited by daohuytien; 09-09-2008, 09:07.chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
Everything should be made as simple as possible, but not simpler
Comment
-
Nguyên văn bởi daohuytien Xem bài viếtem hỏi cái này mấy pác ơi !
nếu dùng con 8515 này thì có thể làm được matrix có kích thước lớn nhất là bao nhiêu (không dùng con Ram ngoài)?
Kích thước phụ thuộc vào rất nhiều yếu tố chẳng hạn như hiệu ứng, dữ liệu động hay tĩnh, thiết kế phần cứng đã tối ưu chưa...
Nói đơn giản thế này nếu chỉ làm hiệu ứng sáng hết các led rồi tắt hết hay các con led đuổi nhau thì dài được khoảng ... 1km.Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
-
to pác nghaiha
to pác nghaiha
Pác nói thế thì còn gì bằng nữa !
thế matrix này có thể làm hàng rào cho thành phố Hà Nội này chắc ?
nếu phần cứng các pác làm theo kiểu màn hình offscreen và dùng RAM ngoài cộng với cái SPI của pác nghaiha ( đối với bảng chỉ có hiệu ứng là dịch chữ sang trái không thôi ) thì cũng có khi làm được tới vài trăm cột chứ chả chơi đâu nhỉ ?chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
Everything should be made as simple as possible, but not simpler
Comment
-
Nguyên văn bởi daohuytien Xem bài viếtto pác nghaiha
Pác nói thế thì còn gì bằng nữa !
thế matrix này có thể làm hàng rào cho thành phố Hà Nội này chắc ?
nếu phần cứng các pác làm theo kiểu màn hình offscreen và dùng RAM ngoài cộng với cái SPI của pác nghaiha ( đối với bảng chỉ có hiệu ứng là dịch chữ sang trái không thôi ) thì cũng có khi làm được tới vài trăm cột chứ chả chơi đâu nhỉ ?
Nếu sử dụng bộ nhớ RAM và màn hình offscreen. Lúc đó ta có thể làm hàng trăm hiệu ứng thì ATMEGA8515 chỉ quản lý nổi một bảng cỡ 16 dòng và 40 cột do bộ nhớ RAM của nó chỉ có 512 bytes.
Nếu sử dụng ATMEGA128 thì cũng chỉ được 16 dòng 480 cột là hết cỡ do bộ nhớ RAM của nó là 4k.
(Lưu ý sử dụng màn hình offscreen nên tốn gấp đôi bộ nhớ RAM, còn nếu không xài thì các kích thước ở trên nhân lên 2 lần)
Tuy nhiên, nếu chỉ sử dụng hiệu ứng chạy từ trái sang phải và nội dung là cố định thì nội dung này ta sẽ lưu thẳng vào bộ nhớ ROM, một mảng con trỏ (trên RAM) sẽ trỏ vào bộ nhớ ROM này. Khi muốn dịch chữ trên màn hình ta thay đổi vị trí trỏ của các con trỏ này. Cách này em đã giới thiệu trên diễn đàn.
Như vậy bác có thể thấy được với ATMEGA8515 (8k ROM) thì em cũng quản lý được cỡ 16 dòng 1280 cột. Một con số cũng không đến nỗi tồi đúng không ạ?Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
-
Nguyên văn bởi nghaiha Xem bài viếtBác hãy xem file đi kèm
Nếu sử dụng bộ nhớ RAM và màn hình offscreen. Lúc đó ta có thể làm hàng trăm hiệu ứng thì ATMEGA8515 chỉ quản lý nổi một bảng cỡ 16 dòng và 40 cột do bộ nhớ RAM của nó chỉ có 512 bytes.
Nếu sử dụng ATMEGA128 thì cũng chỉ được 16 dòng 480 cột là hết cỡ do bộ nhớ RAM của nó là 4k.
(Lưu ý sử dụng màn hình offscreen nên tốn gấp đôi bộ nhớ RAM, còn nếu không xài thì các kích thước ở trên nhân lên 2 lần)
Không thay đổi đc nội dung của flash để dùng nó như ram à.
Nếu vậy thì mình nghĩ là nghaiha nên thử với PIC xem sao.
PIC24f là 1 giải pháp đấy.
Sông dài, Thuyền lớn, Biển rộng bao la.
Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.
Comment
-
Nguyên văn bởi quoc_thaibk Xem bài viếtKhông thay đổi đc nội dung của flash để dùng nó như ram à.
Nếu vậy thì mình nghĩ là nghaiha nên thử với PIC xem sao.
PIC24f là 1 giải pháp đấy.
Trên đây là em đang nói không xài RAM ngoài thì quản lý được bao nhiêu. Còn thực tế thì không ai làm như vậy cả.
Cám ơn bác về lời khuyên, em đang làm lại mạch điều khiển với dsPIC33 bác ạ.Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
-
HTML Code:if ((r>=0)&&(r<=7)) { spi_write(nho_chu_ha[3][r-8]); spi_write(nho_chu_ha[2][r-8]); spi_write(nho_chu_ha[1][r-8]); spi_write(nho_chu_ha[0][r-8]); spi_write(0b11111111); spi_write(0b11111111); spi_write(0b11111111); spi_write(0b11111111); } else if ((r>7)&&(r<=15)) { spi_write(nho_chu_ha[3][r-8]); spi_write(nho_chu_ha[2][r-8]); spi_write(nho_chu_ha[1][r-8]); spi_write(nho_chu_ha[0][r-8]); spi_write(0b11111111); spi_write(0b11111111); spi_write(0b11111111); spi_write(0b11111111); } LatchData(); PORTD=dong[r]; r++; if (r==8) { r=0;
Web:[url]www.ledviet.info/url]
Email:
DĐ:0949299699
Comment
-
Nguyên văn bởi manhha2799 Xem bài viếtBác nghaiha cho em hỏi em đã làm mạch 16x32, phần cứng của em cũng nối tiếp 8 con 74HC595, chân 9 con này nối vào 14 con kia. Em chỉ dùng 1 chân spi.Từ dòng 1->8 thì em cho ở trên hiện chữ, ở dưới dòng Từ dòng 9->16 không hiện, và ngược lại. Khi em lập trình thì nửa phần đầu của nó hiện màu xanh, nửa phần sau hiện màu đỏ. Đáng lẽ đoạn code ở trên phải là đỏ hết chứ ?, hoặc là xanh hết?
Như chương trình của bác, em thấy 2 lệnh if cho dòng từ 0->7 và 8->15 có khác gì nhau đâu.Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
Bài viết mới nhất
Collapse
-
Comment on Đồng hồ công tơ điện tửbởi qpdt03
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 17:03 -
-
Comment on Đồng hồ công tơ điện tửbởi qpdt03
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 17:03 -
-
Trả lời cho Đồng hồ công tơ điện tửbởi qpdt03Hình ảnh mạch của nó đây, mình mang đồng hồ điện tử ra đo giá trị điện trở dán ghi trên lưng các con điện trở trong mạch đều đúng, mà công tơ điện tử vẫn đo sai, không biết nó hỏng chỗ nào; đã ấn nút reset lại nhưng vẫn không đc. Nhờ các bác có kinh nghiệm giúp đỡ. Thanks!
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 17:03 -
-
bởi qpdt03Mình mới mua 1 cái đồng hồ công tơ điện tử trên shopee; loại hiển thị 4 thông số V,A,W và tổng số Kwh nhưng về cắm thử đc 1 hôm thì chỉ số V báo 378v, cắm về 100v cũng báo 350v có bác nào biết cách sửa chữa nó không chỉ giúp mình nhé. Xin cảm ơn mọi người đã đọc bài.
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 16:46 -
-
bởi notooth1Các bạn xem giúp mình đây là tụ phân cực hay không phân cực nhé.
...-
Channel: Hướng dẫn tìm thông tin linh kiện
20-03-2024, 18:06 -
-
bởi carl22Xin chào tất cả mọi người.
Tôi hiện đang chế tạo một máy phay CNC. Máy phay được điều khiển thông qua Raspberry Pi 3 b+ và Smoothieboard v1.1 với trình điều khiển động cơ bước ACT DM 542 và động cơ 1,8° 2A.
Trục X 1,8° 3 A chạy qua trình điều khiển động cơ bước vì bảng sinh tố chỉ...-
Channel: Cơ cấu chấp hành (Actuator)
20-03-2024, 15:48 -
-
bởi ningoleChào các bác! Em là newbie về điện tử đang muốn làm một cái đèn báo cho ổ cắm nhưng chưa rành về mạch mong các bác giúp đỡ!
Nhu cầu của e là muốn làm 1 đèn báo nguồn AC 220V:
Nguồn 220v -> Phích cắm -> nối với 1 ổ cắm....-
Channel: Điện tử dành cho người mới bắt đầu
20-03-2024, 11:09 -
-
Trả lời cho có cần thiết phải lắp mạch bms cho khối pin ?bởi bao98Tất nhiên là bạn cần nó!
BMS là một phần không thể thiếu trong hệ thống ắc quy của xe điện.
nếu bạn không cài đặt BMS, có thể xảy ra vấn đề về pin, thậm chí có thể dẫn đến tai nạn-
Channel: Điện tử dành cho người mới bắt đầu
19-03-2024, 22:51 -
-
Trả lời cho [đồ án] xung đột nguồn điện 12vbởi bao98Để tìm hiểu xem bộ điều hợp UART của bạn được kết nối với cổng USB nào trên Raspberry Pi, bạn có thể sử dụng lệnh ls /dev/ttyUSB* hoặc ls /dev/ttyACM* trong thiết bị đầu cuối. Điều này sẽ liệt kê các cổng USB có sẵn để liên lạc nối tiếp. Cáp có thể được xem ở đây. Bạn cũng có thể kết nối và...
-
Channel: Hỗ trợ học tập
19-03-2024, 22:38 -
-
Trả lời cho cho hỏi move điện là g?bởi DiennuocAQLà sự tiếp xúc giữa 2 tiếp điểm không được tốt gây ra. Ví dụ như đầu dây điện cắm vào chân attomat nhưng lâu ngày ốc siết lỏng dần ra, làm dòng điện chuyển tiếp không tốt, gây ra hệ thống điện chập chờn gọi là move ạ
-
Channel: Điện tử dành cho người mới bắt đầu
19-03-2024, 12:40 -
Comment