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
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • ufo25
    replied
    cho e hỏi làm cách nào để mình có thể điều khiển thay đổi đc nhiều hiệu ứng chạy khác nhau

    Leave a comment:


  • linuslu
    replied
    Công Thức tính tổng Cột và hàng cho Font Matrix trong Ễcl

    Dựa theo ví dụ tao chữ cho Matrix trên diễn đàn mình có lập công thức tính Tổng số hàng và cột cần tính cho bảng font Matrix. Nay mạo muội gởi lên diên đàn để các bạn sử dụng tạm để tính bảng Mã cho đỡ mệt. Mình làm bảng mở rộng lên đến 16X64, các bạn có thể mở rộng hoăc thu nhỏ lai. Mở rộng thì Copy công thức thêm ra. Bảng tinh mình gởi theo file đính kèm.
    Last edited by linuslu; 29-03-2010, 09:32.

    Leave a comment:


  • nhti
    replied
    to bác bockhoi: nó dùng một con 74138 để giải mã mà.chắc con này bác biết chứ.

    Leave a comment:


  • bockhoi
    replied
    Cám ơn bác nhti rất nhiều!
    Đúng rồi nó có 2 hàng 16 chân. và module có 16 hàng LED, nhưng bác bảo:
    2 chân để chọn hàng A B,vì thằng nằy quét 4 hàng thôi
    nghĩa là như thế nào ạ bác?
    Bác hướng dẫn cho em cách chọn hàng của module này với.
    Em xin chan thành cảm ơn!

    Leave a comment:


  • nhti
    replied
    cái module của TQ này mình có làm ròi,nếu bạn dùng PSOC thì mình sẻ gửi cho,nó có 2 hàng 16 chân ở đầu vào và 2 hàng chân 16 đầu ra, nhưng chỉ sử dụng có 6 chân thoi, 2 chân để chọn hàng A B,vì thằng nằy quét 4 hàng thoi,3 chân spi, 1 chân là OE của 74138,

    Leave a comment:


  • bockhoi
    replied
    Các bác ơi cho em hỏi cái modun LED một màu 16 x 32 của thằng TQ nó bố chí chân kiểu gì í nhỉ ?
    Em thấy nó có 2 jắc để cắm cáp tín hiệu, mỗi jắc khoảng chục chân, trên mỗi jắc chỉ có 5 chân có kí hiệu là: A, B, O, clk , Sck, vậy các chân còn lại là chân gì ? Chân C, D, là chân nào?
    Bác nào có sơ đồ chân của mấy thằng modun LED đó, thì chỉ cho em với.
    Em xin cảm ơn nhiều.

    Leave a comment:


  • bravesoldier
    replied
    Và đây là code
    Code:
    #include <16F877A.h>
    #include <DEFS_16F877A.h>
    #device *=16 ADC=8
    #fuses NOWDT,XT,NOLVP,NOPROTECT,NOBROWNOUT,NODEBUG,NOPUT
    #use delay(clock=4000000)
    
    #use fast_io(b)
    #byte portb=0x06
    #use fast_io(d)
    #byte portd=0x08
    #bit SCL=portb.0
    #bit OE=portb.1
    
    #include <birddata3.c>
    byte r=0;
    byte frame=0;
    
    //--------------------------------------------------------
    void latch() {SCL=0; SCL=1;}
    //--------------------------------------------------------
    
    
    #int_timer0
    void interrupt_timer0()
    {
     set_timer0(6);
     
     OE=0;
     spi_write(birdat[(r<<1)+1+(frame<<4)]); spi_write(birdat[(r<<1)+(frame<<4)]);
     latch();
     portd=r;
     OE=1;
     r++;
     if (r==8)r=0;
    }
    
    
    //--------------------------------------------------------
    void main()
    {
     byte sign;
     
     setup_spi(spi_master|spi_h_to_l|spi_clk_div_16);
     set_tris_b(0);
     set_tris_d(0);
     delay_ms(1000);
     SCL=1;
     
     enable_interrupts(int_timer0);
     setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
     enable_interrupts(global);
     set_timer0(6);
     
     //------------------------------------
     
     sign=1;
     while(true)
      {
       if (sign==1)frame++;else frame--;
       delay_ms(30);
       if (frame==7)sign=2;
       if (frame==0)sign=1;
      }
    }
    đây là file birddata3.c http://www.mediafire.com/file/m0ntmyyhtwm/birddata3.c
    Last edited by bravesoldier; 08-03-2010, 20:51.

    Leave a comment:


  • bravesoldier
    replied
    Đây là đoạn video vể cái board 8x16 của em dùng SPI của 16F877A, con chim (hoặc dơi) đang vẫy cánh.
    http://www.youtube.com/watch?v=1P2SbcQD2bw

    Leave a comment:


  • bravesoldier
    replied
    Nguyên văn bởi windly Xem bài viết
    Cảm ơn bác bravesoldier đã nhiệt tình chỉ giáo, vậy xin hỏi bác đã khắc phục hiện tượng gẫy chữ ở giữa như thế nào? Chân thành cảm ơn các bác
    theo như các sư phụ trong diễn đàn thì bác nên tìm mọi cách để giảm thời gian giữa 2 lần quét hàng: hạn chế dùng if mà dùng cách truy xuất bằng con trỏ: nếu một phép tính được dùng đi dùng lại trong vòng for chẳng hạn, có tính quy luật thì tạo sẵn một mảng chứa kết quả phép tính đó để truy xuất; hạn chế phép nhân, chia, thay phép nhân 2 bằng phép dịch bit sang trái; dùng timer để quét ... Phần mềm bác mà ổn thì sẽ có cơ sở để mở rộng kích thước bảng, khi đó thì nghĩ đến việc đẩy nhanh bit ra 595 bẳng SPI hay một giải pháp phần cứng nào đó (em không biết vì không chuyên).
    Sắp tới em sẽ mua PIC18F4550 để thay cho 16F877A trong cái hộp đèn treo ở trước cửa nhà vì theo em tài nguyên RAM ROM của nó lớn, không hạn chế kích thước mảng để xây dựng font. Em xây dựng bộ font VISCII dạng VnArial cho con 16F877A mà muốn chết vật, dùng quá nhiều lệnh if do mảng font bị chia cắt ra hơi bị nhiều, chữ còn rung giật nhiều và hơi gẫy nhè nhẹ. Mong các tiền bối có cách nào giúp anh em em với!

    Leave a comment:


  • windly
    replied
    Nguyên văn bởi bravesoldier Xem bài viết
    Đây là do thời gian quét mỗi hàng của bạn là hơi lớn => hàng nào quét trước sẽ ngả về trái nhiều hơn (chữ chạy từ phải qua trái). Giống như mình tạo modun 16x16 thực chất là 8x32 (2 mảng 8x16 chồng lên nhau thành 16x16) để quét 8 có hiện tượng là chữ bị gẫy đôi.
    Cảm ơn bác bravesoldier đã nhiệt tình chỉ giáo, vậy xin hỏi bác đã khắc phục hiện tượng gẫy chữ ở giữa như thế nào? Chân thành cảm ơn các bác

    Leave a comment:


  • thaielectric
    replied
    Nguyên văn bởi Zz_Bi_zZ Xem bài viết
    có 1 cách chữ chạy châm vẫn k bị giật ... mềm như bàn tay ng í ....---> PWM
    Đọc bài này của ông mấy bữa, suy nghĩ mãi vẫn ko nghĩ ra cách của ông. Ông bày cho tôi cũng như mọi người trên diễn đàn biết cách của ông đi.
    Thanks !

    Leave a comment:


  • nhti
    replied
    các bác cho em hỏi,nếu qét theo hàng mà sử dụng một con ROM ròi lưu font vào Rom này để hiển thị đc kô?e nghĩ là kô đc phải kô các bác,vì quét hàng thì các byte dữ liệu sẻ đc lấy theo hàng như rứa một byte dữ liệu có thể có của ký tự này và ký tự khác phải kô.em lấy byte dữ liệu như của bác Hải Hà đó?

    Leave a comment:


  • bravesoldier
    replied
    Nguyên văn bởi Zz_Bi_zZ Xem bài viết
    có 1 cách chữ chạy châm vẫn k bị giật ... mềm như bàn tay ng í ....---> PWM
    mong bác chỉ giáo về phần mềm cho anh em làm được như cái bảng của bác. thanks bác vô cùng

    Leave a comment:


  • Zz_Bi_zZ
    replied
    Nguyên văn bởi bravesoldier Xem bài viết
    chữ chạy nhanh thì sẽ mềm, chữ chạy chậm thì sẽ giật cục - tớ đã mất 1 đêm để điều chỉnh cho cái bảng 16x64. Để chữ mềm thật sự thì khoảng cách các LED phải đủ nhỏ => tốn LED, kích thước bé. Vậy nên bạn điều chỉnh cho chữ chạy nhanh còn tuỳ theo khoảng cách quan sát nữa. Mình đã thử trên bảng 8x16 (tiny), chữ nhanh thì đứng cách 1m mắt không đọc kịp, nhưng đứng xa 10m thì đọc vô tư (vì mắt không phải liếc nhiều)
    có 1 cách chữ chạy châm vẫn k bị giật ... mềm như bàn tay ng í ....---> PWM

    Leave a comment:


  • bravesoldier
    replied
    Nguyên văn bởi chipheo_505
    Mấy bác cho em hỏi lam sao cho chữ chạy mềm mại được ,em sữa cái code đủ kiểu nhưng nó chạy không được êm.
    chữ chạy nhanh thì sẽ mềm, chữ chạy chậm thì sẽ giật cục - tớ đã mất 1 đêm để điều chỉnh cho cái bảng 16x64. Để chữ mềm thật sự thì khoảng cách các LED phải đủ nhỏ => tốn LED, kích thước bé. Vậy nên bạn điều chỉnh cho chữ chạy nhanh còn tuỳ theo khoảng cách quan sát nữa. Mình đã thử trên bảng 8x16 (tiny), chữ nhanh thì đứng cách 1m mắt không đọc kịp, nhưng đứng xa 10m thì đọc vô tư (vì mắt không phải liếc nhiều)

    Leave a comment:

Về tác giả

Collapse

nghaiha Tìm hiểu thêm về nghaiha

Bài viết mới nhất

Collapse

Đang tải...
X