Thông báo

Collapse
No announcement yet.

Mạch LED đa màu hiển thị hình ảnh

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • cái này dùng tín hiệu logic để điều khiển cho mỗi chân của led rgb nên hiển thị tối đa được 8 màu.
    Với dung lượng bộ nhớ hạn chế của con chip AT được sử dụng thì cái code này viết theo kiểu tra bảng rồi hiển thị. Mỗi trạng thái đèn ứng với tưng thời điểm xuất led sẽ gồm 6 byte được dịch, ở đây các màu RBG được tách ra thành các đường data riêng nên thực tế là dịch 2 byte ở mỗi đường.
    Sử dụng một ngắt timer làm nhiệm vụ dịch các bit này đầu vào là 3 số 16 bit uint
    void xuat_spi(uint R,uint G, uint B)
    {
    char i;
    for(i=0;i<16;i++)
    {
    PinR= (R&0x8000);
    PinG= (G&0x8000);
    PinB = (B&0x8000);
    shift() //macro
    B<<=1;
    R<<=1;
    G<<=1;
    }
    Latch() //macro
    }
    Dùng một timer TF tính thời gian của một frame hay thời gian để quay hết một vòng
    Dùng timer TD để xác định thời gian giữa 2 lần dịch spi
    Dùng ngắt ngoài để xác định bắt đầu của vòng

    Khi có ngắt ngoài xảy ra thì các quá trình sau được thực hiện.
    cập nhật thời gian của timer TV.
    Đặt TV= 0 cho lần giám sát sau.
    Chia TV cho số điểm ảnh trên cái vòng to nhất ví dụ như 20
    Giá trị này được cài đạt cho timer TD PRELOAD
    Đặt biến status để biết đây là bắt đầu frame
    Giảm biến Delay (số frame cần lặp lại để mắt người có thể thấy được và thời gian duy trì của ảnh hiện tại)
    Nếu delay = 0 cập nhật biến status để báo hiển thị sang hình mới
    /////////////////////////////////
    Khi ngắt timer TD xảy ra thì:
    (Nạp lại giá trị PRELOAD cho timer nếu timer ko phải chế độ autoload)
    Đọc biến status xác định giá trị offset vào bảng dữ liệu và đặt lại biến status
    Đọc dữ liệu cần hiển thị
    Xuất ra led
    ............
    Thực ra thì cái này nó cũng đơn giản nếu mọi người có ý muốn làm thì vẫn tự làm được> Mình cũng từng làm 1 cái nhưng không phải xoay kiểu đó mà nó tạo thành một phần của hình cầu gồm 24 led RGB Sử dụng 9 con 74HC595 tạo ra ma trận cầu 24x80. Các thức lập trình cũng kiểu như thế nhưng có vài điểm khác.
    Mình không đọc trực tiếp bảng dữ liệu rồi xuất thực tế nó đọc một bộ đệm dữ liệu dữ trạng thái của tất cả các điểm ành tại các thời điểm trong một khung hình xác định.
    Việc tạo hiệu ứng hay hiển thị được thực hiện trong hàm main. hàm này có nhiệm vụ đọc dữ liệu, thực hiện các thao tác trên cái mảng dữ liệu này.
    Có thể lập trình ở hai chế độ là hiển thị text hoặc đồ họa
    Ở chế độ text thì 24 led này được xem như là có 3 dòng
    Mỗi dòng sẽ có một bộ đệm text để chứa chữ cần hiển thị
    Một bộ đệm Font để chứa các thành phần cấu thành nên kí tự hiện hành
    Một biến để chỉ vị trí hiện tại trên mỗi dòng
    Một biến chỉ số vào bộ đệm text
    Một biến chỉ số vào bộ đệm font,....
    ...............
    Còn ở chế độ đồ họa thì xem nó như một ma trận 24x80
    vì vậy sẽ có một hàm cơ sở cấp thấp là hàm
    Pixel(byte x,byte y,color);
    phần còn lại là thư viện đồ họa, mấy cái hàm nhỏ chơi vui thôi
    ......
    VÌ code chiếm phần lớn dung lượng nên các bảng dữ liệu, mã điều khiển hiển thị ko nằm trong bộ nhớ flash mà được lưu trong eeprom.
    Vì mấy con eeprom tốc độ khá chậm nên mình thay bằng Sram.
    .....
    Em càng nâng cấp lên thì dần dần nó thiên về với thiét kế cho hệ VXL nên đã dừng phát triển, quay sang học ARM.
    Hết.

    Comment


    • Chính xác! nhìn sơ đồ cũng đủ hiểu người ta lập trình như thế nào rồi. Cái mạch 7 màu này với nhu cầu đơn giản nên chỉ dùng chip AT thôi, tất cả đều là kiến thức cơ bản, vấn đề là kết hợp các kiến thức đó thế nào thôi. Mình cũng là dân amateur mấy năm trước bắt đầu làm quen với trở, tụ điện...., không được đào tạo về điện tử ngày nào, tất cả là học qua Internet. Nếu có đam mê và quyết tâm bạn có thể làm được bất cứ thứ gì bạn muốn!
      Mình đang làm mạch 16,7 triệu màu. Đối với hình tĩnh thì chỉ cần dùng chip Mega và bộ nhớ Flash; Đối với hình động như video thì phải dùng ARM và thẻ nhớ

      Comment


      • a xbike cho e hỏi em thấy mạch đó hình như có 1 bên led phải không vậy khi em đặt vào xe thì nhìn vào chắc chỉ có 1 bên hiển thị thôi fai ko,hay cả 2 bên bánh xe đều cho ra hình ảnh

        Comment


        • Nguyên văn bởi xbikevn Xem bài viết
          700k/bộ fullbox đầy đủ phụ kiện kèm theo
          nếu thế thì ở bánh xe máy loại vành đúc thì gắn hơi khó. sao anh không làm thêm cái gắn sẳn để dể gắn mạch vào tăm xe hơn và dể tháo lắp nửa.
          mà nếu mua trọn bộ có cả chương trình nạp không a?
          ★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★

          Comment


          • thật đẹp làm sao, thớt cho mình sơ đồ mạch và nạp hình cho minhgf tham khảo với, muốn làm thử như thớt, có gì cho e qua mail thu6ngay6@gmail.com, cám ơn thớt nhiều

            Comment


            • em co mach nay xin cac anh cho em biet tai sao chi chay duoc 2 led den cai thu 3 thi sap ca luôn cac anh co cach nao de khắc phục không nói cho em với
              Click image for larger version

Name:	Chưa có tên.png
Views:	1
Size:	14.2 KB
ID:	1379255

              Comment


              • đẹp quá . à có thể cho e xin cho em sơ đồ mạch và cái phần mềm bác tự design đó . gửi vào maill của e linhdaicabi@gmail.com

                Comment


                • Thành phẩm bao nhiêu tiền thế bác

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X