Nguyên văn bởi nghaiha
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
-
anh Hà ơi anh chỉ em cách điều khiển ledmatrix bằng bàn phím loại AT đi!
Ý tưởng là như thế này:
đầu tiên bảng led chạy chữ "vui long nhap chu"
khi nhấn Esc thì bảng led tắt
sau đó nhập dòng chữ mình muốn chạy và "Enter" thì sẽ chạy dong chữ vùa nhập
muốn chạy chữ khác thì nhấn Esc rồi nhập vào như trên là được.
đây là bảng led em làm nè:
http://www.youtube.com/watch?v=Van09SnpiCk
Comment
-
Tôi có 1 vấn đề về bảng led nhưng chưa có giải pháp nào khắc phục được đó là khi dịch dòng chữ đi thì các nét chữ có cảm giác rung nhoè ra( không phải bị bóng led ) không còn nét nữa, hiện tượng này theo tôi nghĩ là do hiện tượng lưu ảnh trên mắt người, khi ta dịch led đó qua 1 cột nhưng do độ lưu ảnh trên mắt mình vẫn thấy led đó đang còn ở vị trí cũ, hiện tượng này phát sinh khi ta đưa vào giữa 2 lần dịch chữ 1 khoảng thời gian delay.
Có ai đã khắc phục hiện tượng này xin chỉ giáo
Comment
-
cái này không phải do AVR hay gì hết mà nó do thế này khoảng các các điểm led trên ma trận led 8x8 lớn nên khi dịch chuyển từ điểm này sang điểm khác sẽ không mịnh được nên sẽ gây hiện tượng này, cái này là chắc chắn có , ngay cả các cty quang báo nó làm những bảng lớn khi nhìn vào mình vẫn thấy hiện tượng đó mà.
Nó giống như thế này nè.
ý mình ở đây là cách thức khắc phục hiện tượng này, theo kinh nghiệm của mình thì chỉ có đường ngồi chỉnh thời gian delay giữa mỗi lần dịch đến khi nào thầy vừa mắt là được (hahah cái này hơi bị đuối). Ai có cách nào khác thì mình cùng thảo luận nha.
Comment
-
Gởi bạn leemjngwuong!
Chương trình của tôi chỉ dùng để tham khảo các phương pháp quét hàng,dịch bit,hiển thị dùng phương pháp 2 màn hình.Khi hiển thị màn hình 1 trong lúc chờ ngắt xảy ra ,ta lấy dữ liệu tiếp theo ra và dịch bit để sắp xếp cho màn hình 2. Khi hiển thị xong màn hinh 1 thì ta
cho hiển thị màn hình 2 và sắp xếp tiếp dữ liệu cho màn hình 1.Cứ như thế cho đến khi hết nội dung bảng mã mà ta lưu trong flash.
Comment
-
Nguyên văn bởi nghaiha Xem bài viếtQua bài trước các bác đã nắm được phương pháp "tạo hình" rồi. Tức là nội dung sẽ hiển thị lên bảng led thế nào do ta thiết kế. Nó có thể là kí tự, bông hoa hay bất cứ cái gì. Và công việc bây giờ là hiển thị nó lên màn hình.
Data của chúng ta ban đầu lưu ở trong Flash ROM. Do đó em đã khai báo
Code:unsigned char flash XINCHAO[]={156,136,112,162,72,137,130,40,138,130,47,138,130,232,139,162,40,138,156,40,114,0,0,0};
Code:unsigned char DMem[24]; // Bo nho man hinh, 3 byte dau cho hang 1, 3 byte tiep theo cho hang 2 ...
Code:for (i=0;i<=23;i++){ DMem[i]=~XINCHAO[i]; }
Code:// Timer 1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void){ spi(DMem[r*3+2]); //byte thứ 2 ở hàng thứ r spi(DMem[r*3+1]); // byte thứ 1 ở hàng thứ r spi(DMem[r*3]); // byte thứ 0 ở hàng thứ r LatchData(); PORTC=r+8; // để Enable chú 74138 r++; if (r==8) r=0; }
Đây là full source code của chúng ta cho đến thời điểm này
Code:6. Hien chu CHAO (giong chuong trinh XINCHAO) /***************************************************** This program was produced by the CodeWizardAVR V1.25.8 Standard Automatic Program Generator © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 7/27/2008 Author : Nguyen Hai Ha Company : www.softviet.net Comments: Chip type : ATmega8515L Program type : Application Clock frequency : 16,000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 128 *****************************************************/ #include <mega8515.h> #include <delay.h> // SPI functions #include <spi.h> #define SCK PORTB.7 #define DATA PORTB.5 #define SCL PORTB.3 #define B PORTC.1; #define C PORTC.2; #define OE PORTC.3; char lenX=9; char NoLed=3; unsigned char flash XINCHAO[]={156,136,112,162,72,137,130,40,138,130,47,138,130,232,139,162,40,138,156,40,114,0,0,0}; unsigned char DMem[24]; // Bo nho man hinh, 3 byte dau cho hang 1, 3 byte tiep theo cho hang 2 ... unsigned char r=0; unsigned char i; void LatchData(){ SCL=0; SCL=1; } // Timer 1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void){ spi(DMem[r*3+2]); spi(DMem[r*3+1]); spi(DMem[r*3]); LatchData(); PORTC=r+8; r++; if (r==8) r=0; } void main(void){ // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 15.625 kHz // Mode: CTC top=OCR1A // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x25; // Quyet dinh toc do quet OCR1BH=0x00; OCR1BL=0x00; DDRB=0xFF; DDRC=0xFF; SCL=1; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x40; // Global enable interrupts #asm("sei") // SPI initialization // SPI Type: Master // SPI Clock Rate: 4000,000 kHz // SPI Clock Phase: Cycle Half // SPI Clock Polarity: Low // SPI Data Order: MSB First SPCR=0x50; SPSR=0x00; for (i=0;i<=23;i++){ DMem[i]=~XINCHAO[i]; } while (1){ } }
Bác nghaiha cho e hỏi chút xíu.Hai dòng lệnh khai báo màu đỏ sao e không thấy sử dụng.E đã mô phỏng theo bài của bác nhưng chữ hiển thị không dc đầy đủ.
Những ô màu xanh không sáng.Bác xem và kiểm tra lại giúp e.E rất thích bài viết của bác về chủ đề này.E cám ơn!YM :
Comment
-
Tôi có 1 vấn đề về bảng led nhưng chưa có giải pháp nào khắc phục được đó là khi dịch dòng chữ đi thì các nét chữ có cảm giác rung nhoè ra( không phải bị bóng led ) không còn nét nữa, hiện tượng này theo tôi nghĩ là do hiện tượng lưu ảnh trên mắt người, khi ta dịch led đó qua 1 cột nhưng do độ lưu ảnh trên mắt mình vẫn thấy led đó đang còn ở vị trí cũ, hiện tượng này phát sinh khi ta đưa vào giữa 2 lần dịch chữ 1 khoảng thời gian delay.
Có ai đã khắc phục hiện tượng này xin chỉ giáocái này không phải do AVR hay gì hết mà nó do thế này khoảng các các điểm led trên ma trận led 8x8 lớn nên khi dịch chuyển từ điểm này sang điểm khác sẽ không mịnh được nên sẽ gây hiện tượng này, cái này là chắc chắn có , ngay cả các cty quang báo nó làm những bảng lớn khi nhìn vào mình vẫn thấy hiện tượng đó mà.
Nó giống như thế này nè.
ý mình ở đây là cách thức khắc phục hiện tượng này, theo kinh nghiệm của mình thì chỉ có đường ngồi chỉnh thời gian delay giữa mỗi lần dịch đến khi nào thầy vừa mắt là được (hahah cái này hơi bị đuối). Ai có cách nào khác thì mình cùng thảo luận nha.
Ai có ý hay thì góp ý thêm.|
Comment
-
Nhân đây cho hỏi luôn các phần tính toán dòng cho 595:
- Dòng tối đa của 595 là 35mA (một hay nhiều ngõ ra cũng vậy).
- 1 led cho là 10mA khi sáng.
- Quét hàng: giả sử khi trên hàng đó tất cã các led đều sáng thì dòng vào các 595 có phải là 80mA không? mà 595 chịu được chỉ 35mA thôi cho nên chỗ này sáng mờ.
Không biết phân tích như vậy có đúng không các bác.|
Comment
-
Em hỏi thêm bác Hà và các bác trên diễn đàn chút. Em tra datasheet của PIC16F877A để tìm hiểu module SPI và xem cả example trong CCS nữa nhưng khi thí nghiệm trên bo cắm với 5 con 595 thì 40 con LED sáng loạn cả lên. Liệu em có dùng sai hay không? Bác Hà hay bác nào có dùng SPI của PIC ko chỉ cho em với?
Code:#include <16F877A.h> #device *=16 ADC=8 #fuses NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP #use delay(clock=4000000) #use fast_io(b) #byte portb=0x6 #bit SCL = portb.0 void latch_data() { SCL=0; SCL=1; } main() { byte i; set_tris_b(0); setup_spi(SPI_MASTER | SPI_H_TO_L | SPI_CLK_DIV_16); // tham kha?o Help SCL=1; while (true) { for (i=1; i<=5; ++i) {spi_write(0xAA);} latch_data(); delay_ms(1000); for (i=1; i<=5; ++i) {spi_write(0x55);} latch_data(); delay_ms(1000); } }
Theo như datasheet thì em dùng chân RC5 của PIC16F877A để xuất data ra chân 14 của con 595 đầu tiên, chân RC3 làm chân clock (SCK), chân RB0 chọn để chốt.Last edited by bravesoldier; 23-06-2009, 16:27.Manchester United FC forever!
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamTrước tiên giúp các bạn hiểu rõ vấn đề, tôi giải thích hiện tượng vật lý trên video:
Lớp Cu sau khi mạ quá tệ do Cu bám trên Fe, thầy giáo đã đốt Cu thành CuO (oxid đồng) đồng thời Fe ( cây đinh) thành Fe2o3. Như vậy lớp CuO...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 23:42 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi mèomướpDạ cháu cũng xin phép dơ tay like ạ. Vậy là được 3 người rồi ạ, chờ thêm 1 người nữa để thành trên 3 ạ...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:25 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi bqvietBqv dơ tay đồng thuận, dù rằng đã mua loại flux trợ hàn thiếc chuyên dụng rồi. Có thêm một cách khác để hàn nhôm để dắt lưng dự phòng cũng hay.
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:17 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi dinhthuong80Cháu đang chờ thêm 2like nữa để xem bác chia sẻ ạ!
Đã xem clip bác giới thiệu!
Cảm ơn bác chia sẻ kinh nghiệm cho thợ điện tử....-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 10:45 -
-
Trả lời cho Hàn chì thiếc lên nhôm.bởi vi van phamCác bạn xem video này, cách mạ đồng lên sắt và inox chắc chắn, không bong tróc của 1 thầy giáo dạy Hóa ( Video chỉ nói mạ lên sắt, inox mà thôi), không giảng dạy lý thuyết phản ứng. https://www.youtube.com/watch?v=gVtN...h%E1%BB%8DcABC
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 07:56 -
-
bởi vi van phamHàn chì thiếc lên dây điện nhôm luôn là sự khó khăn của anh em thợ. Dung dịch trợ hàn nhôm quãng cáo mua về chỉ hàn được sắt và inox. Tôi tìm thấy trên mạng người ta dùng sulfat đồng CuSo4 mạ đồng lên nhôm rồi hàn. Cách này không dùng...
-
Channel: Tâm tình dân kỹ thuật
04-03-2025, 20:04 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi nguyendinhvanNó là di chứng của cái bệnh thành tích, hình thức. Nếu không chữa trị đúng thày đúng thuốc thì sau này dễ biến chứng thành căn bệnh ảo.
Dẫu sao thì khoa học kỹ thuật công nghệ cũnc· cần kết hợp với cúng lễ ạ.
Cầu Thiên...-
Channel: Tâm tình dân kỹ thuật
03-03-2025, 22:15 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi mèomướpDạ hồi năm ngoái cháu trốn học buổi sáng về rình rồi ạ. Cụ trưởng bản vào nhà chị ấy thì chính cụ ấy mới là người rên la ấy ạ, khi đi ra thì cụ ấy tóc tai quần áo xộc xệch chân đi loạng quạng lắm ạ. Chỉ có anh thợ sửa...
-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 10:57 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi vi van phamHôm nào mèo rình cụ trưởng bản sang nhà chị hàng xóm, chờ khi chị hàng xóm rên la, méo phá cửa vào nhà giúp đỡ chị ấy rồi báo cáo kết quả lên diễn đàn nhé.
Chúc mèo lành lặn, ko mất sợi lông mèo nào. đó là kết quả chữ Tâm của người không cần sự giúp đỡ....
-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 08:00 -
-
Trả lời cho Biết gì nói nấy, cãi chửi thoải máibởi vi van phamOK với bác.
Máy nó bán còn không cho tài liệu s/c. Phải bỏ tiền ra mua mới có tài liệu sc, nó chỉ cho tài liệu sử dụng mà thôi....-
Channel: Tâm tình dân kỹ thuật
02-03-2025, 07:56 -
Comment