Thông báo

Collapse
No announcement yet.

Mạch led cube 8*8*8

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

  • Mạch led cube 8*8*8

    Các bác à. Em học bên cơ khí nên kém về điện tử lắm. Chả là có thằng bạn nó làm mạch led cube 8*8*8 em thấy đẹp quá nên cũng đánh đu theo nhưng lại đu nhầm. Chả là nó dùng 64 chân dương để điều khiển mấy cái đó thì có trên trang ni hết LED Cube 8x8x8 Nhưng khổ nỗi làm cuống cuồng hấp tấp + một ít ngu dốt tiềm ẩn bên trong con người em + sự bộc phát đúng thời điểm vậy là em làm ngược nó hoàn toàn chơi 64 chân âm để điều khiển luôn. Vấn đề đặt ra bây giờ là 512 con led mất gần 300 bạc. Em đã chịu hi sinh đôi dày đi tết cho đẹp lao thân vào con đường đau khổ này mà nó thì cũng không khun hơn em được bao nhiêu nên có hỏi nó thì cũng như bản thân em tự tâm sự với em thôi. Nói chung em là một con người cũng chịu khó vớt vát nên em đã đặt ra 3 trường hợp mà bản thân em cho là cũng có ní.
    + T Hợp 1: tháo tưng bừng 512 con led đã làm ra để nối lại. Cách này có thằng em làm mạch 5*5*5 đã làm vì nó lại đấu lộn nhèo chân âm dương lại với nhau. Thằng này học xây dựng năm nhất loại ni không nên tính vào được bởi vì sự chịu thương chịu khó của nó là hết sức pro. Sau khi tháo ra nó kết luận một câu: " Kính thưa mấy anh may mà tổ tiên phù hộ em thi rớt ngành điện tử".
    +T Hợp 2: Lập trình lại. Cái ni thì chắc mấy kiếp nữa thì em mới có thể làm được. Nó mà được cái dễ như lập trình CNC thì em cũng đu. Nói tóm lại cách ni thì (*_*).
    + T Hợp 3: Sửa lại mạch
    Đây là cái cách mà em nghĩ chắc cũng có chút ít hi vọng. Bởi vì em cũng biết 1 tí. Đây này các bác em đưa nguyên si cái mạch của thằng bạn em đã làm và đã chạy tưng bừng và cái mạch của em đã sửa lại cho phù hợp với code
    Đây là của nó: machcuano.rar
    Là mạch của em nez: machcuaem.rar
    Vấn đề đặt ra của em đó là Em chưa hiểu về con ni lắm nó tên là uln2803 . Cũng tìm hiểu và mày mò 1 tí về con ni nhưng em vẫn chưa hiểu lắm. Vì em muốn lấy nguyên cái code của thằng bạn nhưng do em nối ngược lại led của thằng bạn nên em dổi lại phần cứng bằng cách em thêm vào con uln2803 vào phía xuất ra led vì tín hiệu vào của nó 1 thì cho tín hiệu ra là 0 còn cái tín hiệu vào là 0 thì cho tín hiệu ra là không có chi cả. Mà theo cái sơ đồ của con uln và khi đọc sơ cái datashet của nó thì em thấy lo lo ở cái chân 10 chỗ thì họ bảo chân 10 nối đất khi thì chân 10 nối với vcc 5v khi thì vcc12v lại có anh bạn hồn nhiên hơn lại bảo chân 10 để trống mà cái ni nguy hiểm nha. Còn về riêng em sau khi nhìn cái sơ đồ đó em nghĩ như sau:
    + TH1: chân 10 khi mà nối đất thì tín hiệu vào là 1 qua cổng đảo là 0 so với đất suy ra tín hiệu ra bằng 0, còn nếu là 0 thì sau khi qua cổng đảo là 1 so với đất nên diode sẽ dẫn về đất suy ra tín hiệu ra là 0 luôn vì vậy vào 1 ra 0 vào 0 không có chi cả.
    + TH2: chân 10 nối lên vcc tín hiệu vào là 1 qua cổng đảo là 0 xuất ra tín hiệu cũng là 0 vì diode không dẫn. Nếu vào là 0 qua đảo là 1 nhưng do 10 nối vcc diode cũng 0 dẫn nên ra cũng là 1 luôn. vì vậy vào 1 ra 0 vào 0 ra 1.
    Mấy cái còn lại chưa hỉu.
    Nói tóm lại với mấy anh là ngày tết sắp đến nhà ai cũng muốn đẹp cũng muốn lộng lẫy hơn, cũng không được ngoại trừ nhà em nên các anh giúp em với nhé em lỡ trót trao thân cho nó rồi giờ cũng không rút ra được mong các anh xem qua sơ đồ của em và có thể sử lại những lỗi lầm cho em cái. Tâm huyết em viết ra hơi dài mong các bác đừng chửi em là thằng nói nhiều vì ngoài đời em còn nói nhiều hơn nữa. Các anh giúp em với nhé.

  • #2
    sax,đọc thấy mà chán,học cơ khí mà văn chương dài dòng,người đọc nhìn vào đã ko muốn đọc rồi.
    Hỏi thì vào thằng vấn đề và liệt kê câu hỏi cho nó dễ nhìn chút,đánh số hay gạch đầu dòng cũng đc,đọc lướt từ trên xuống dưới (ko đủ kiên nhẫn để đọc hết) thì trả lời cho bạn một cài vấn đề sau.
    Trên là góp ý của mình nếu có đụng chạm mong bỏ qua!

    - mạch bạn làm ngược thì một là lập trình lại,mà lập trình thì bạn chưa đủ trình như bạn nói thì chỉ có cách sửa phần cứng thôi.
    - con ULN2803 là con đệm đảo,vào 1 ra 0,mạch của bạn là 8*8=64 cột,mà con ULN2803 có 8 cổng đảo,vậy phải mất 8 con ULN để điều khiển cột.
    +con ULN chân 10 đc dùng để nối lên Vcc dùng để chống dòng cảm ứng khi điều khiển tải cảm như relay,cuộn dây => khỏi chết con ULN,chứ chân 10 ko dùng thì để trống chứ ko nói xuống mass.

    - hàng bạn điều khiển mức dương mà nếu vdk xuất mức âm thì bạn dùng tran thuận để điều khiển,ví dụ như A1013,dùng 8 con cho 8 hàng.
    ĐT: 0972 20 58 68
    Gmail:

    Comment


    • #3
      Hj , có j mà bạn fai than vãn nhìu thế nhỉ ! do sự chuẩn bị chưa kĩ nên bạn fai trả giá thôi , giá này theo mình là rẻ mà ^^ . Tốt nhất bạn nên tháo khối led ra và hàn lại là tối ưu nhất , vì code đc viết theo phần cứng , bạn sửa 1 trong 2 phần code hay phần cứng thì bạn cũng fai sửa nốt phần còn lại . Biết đâu ngồi hàn lại khối led , bạn lại dc khối led đẹp hơn thì sao ^^ . Nhìn sơ đồ thì mình cũng đã làm khối này rồi , ko cần xài ULN 2803 vẫn dc bạn àh . Code của nó đọc mà chả hỉu mô tê j nổi chứ đừng nói là sửa . mình thay transitor = tip41 cho nó hút dòng về . nói chung là sáng đẹp . Mỗi tội bị hiện tượng bóng ma mà chưa khắc phục được .
      Như bạn trên đã nói thì con ULN nó tích cực mức 1 và đảo . vào 1 ra 0 và ko có chuyện ngược lại , chân 10 fai nối lên Vcc . nó dùng để hút dòng về .đơn giản thế thôi . Mạch trên mà bạn sửa phần cứng như vậy mình nghĩ mạch sẽ chạy sai nội dung của code .
      ................. Pleiku .................... GIA LAI ...................

      Comment


      • #4
        Bạn còn tài liệu gì liên quan đến led cube 8x8x8 không?
        có thể chia sẻ với mình được không? quoclap9x@gmail.com
        Thank...

        Comment


        • #5
          Chuẩn bị ok rùi chờ thêm vài ngày nữa

          Comment


          • #6
            Thế thì fai ngồi đây me xem mý dc ! hồi hộp wa
            ................. Pleiku .................... GIA LAI ...................

            Comment


            • #7
              Nguyên văn bởi dat 302 Xem bài viết
              Chuẩn bị ok rùi chờ thêm vài ngày nữa
              Làm xong post cái video lên nhá bạn, hồi hộp
              Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
              Liên hệ sđt: 0902.808.371

              Comment


              • #8
                Mình có code Trái đất xoay viết bằng C# cho LED Cube 8x8x8 nè (dành cho hiệu ứng chạy kèm PC, mình giao tiếp = USB), có bạn nào cần ko mình share cho.
                Ngoài ra còn có code pháo bông, chữ bay và tứ diện 3D xoay nữa.
                LED Cube mà ko có hiệu ứng đặc sắc thì cũng như là cục nhựa.
                Computer Science major - Vietnamese-German University
                Sponsored by

                Comment


                • #9
                  Nguyên văn bởi minh_cly Xem bài viết
                  Mình có code Trái đất xoay viết bằng C# cho LED Cube 8x8x8 nè (dành cho hiệu ứng chạy kèm PC, mình giao tiếp = USB), có bạn nào cần ko mình share cho.
                  Ngoài ra còn có code pháo bông, chữ bay và tứ diện 3D xoay nữa.
                  LED Cube mà ko có hiệu ứng đặc sắc thì cũng như là cục nhựa.
                  Bạn có thể vui lòng up lên để chia sẻ cho mọi người với được không vậy, mình cũng đã làm nhưng với 5*5*5 nay cũng đang muốn tăng lên 8*8*8 cho đẹp.
                  Cảm ơn bạn trước nhé.
                  VNATR Forum:

                  Comment


                  • #10
                    Code:
                    class Earth : Effect
                        {
                            Bitmap bmp = LED_Cube.Properties.Resources.Earth;
                            int period = 45;
                            double angfreq;
                            int count = 0;
                            string name = "Earth";
                            DPoint[] map;
                            int[] ppl;
                            public Earth()
                            {
                                angfreq = 2 * Math.PI / period;
                                setup();
                            }
                            public Earth(int period, Bitmap bmp, string name)
                            {
                                this.bmp = bmp;
                                this.period = period;
                                this.name = name;
                                angfreq = 2 * Math.PI / period;
                                setup();
                            }
                            private void setup()
                            {
                                ppl = new int[8];
                                ArrayList dpa = new ArrayList();
                                for (int z = 0; z < 8; z++)
                                {
                                    int numlat = 0; ;
                                    for (int y = 0; y < 8; y++)
                                    {
                                        for (int x = 0; x < 8; x++)
                                        {
                                            double radius = Math.Sqrt(Math.Pow(x - 3.5, 2) + Math.Pow(y - 3.5, 2) + Math.Pow(z - 3.5, 2));
                                            if (Math.Abs(radius - 3.5) < 0.5)
                                            {
                                                DPoint dpp = new DPoint();
                                                dpp.x = Convert.ToByte(x);
                                                dpp.y = Convert.ToByte(y);
                                                dpp.z = Convert.ToByte(z);
                                                dpa.Add(dpp);
                                                numlat++;
                                            }
                                        }
                                    }
                                    ppl[z] = numlat;
                                }
                                map = (DPoint[])dpa.ToArray(typeof(DPoint));
                            }
                            public override DPoint[] next()
                            {
                                DPoint[] dp = new DPoint[0];
                                ArrayList dpa = new ArrayList();
                                double origin = angfreq * (count % period);
                                int h = bmp.Height;
                                int w = bmp.Width;
                                for (int i = 0; i < map.Length; i++)
                                {
                                    DPoint dpp = map[i];
                                    double ang = 2 * Math.PI / ppl[dpp.z];
                                    double angp = Math.Atan2(dpp.y - 3.5, dpp.x - 3.5);
                                    if (angp < 0) angp = angp + 2 * Math.PI;
                                    if (angp >= 2*Math.PI) angp = angp - 2 * Math.PI;
                                    double fang = angp + origin + ang / 2;
                                    if (fang < 0) fang = fang - 2 * Math.PI;
                                    if (fang >= 2 * Math.PI) fang = fang - 2 * Math.PI;
                                    double sang = angp + origin - ang / 2;
                                    if (sang < 0) sang = sang + 2 * Math.PI;
                                    if (sang >= 2 * Math.PI) sang = sang - 2 * Math.PI;
                                    int fhp = Convert.ToInt32(h*dpp.z / 8);
                                    int shp = Convert.ToInt32(h*(dpp.z+1) / 8);
                                    int fp = Convert.ToInt32(fang * w / (2 * Math.PI) - 0.5);
                                    int sp = Convert.ToInt32(sang * w / (2 * Math.PI) - 0.5);
                                    int pro;
                                    int cnt;
                                    if (sang <= fang)
                                    {
                                        pro = (shp - fhp) * (fp - sp);
                                        cnt = 0;
                                        for (int hc = fhp; hc < shp; hc++)
                                        {
                                            for (int j = sp; j < fp; j++)
                                            {
                                                if (bmp.GetPixel(j, hc).R == 0) cnt++;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        pro = (shp - fhp) * (fp + w - sp);
                                        cnt = 0;
                                        for (int hc = fhp; hc < shp; hc++)
                                        {
                                            for (int j = sp; j < w; j++)
                                            {
                                                if (bmp.GetPixel(j, hc).R == 0) cnt++;
                                            }
                                            for (int j = 0; j < fp; j++)
                                            {
                                                if (bmp.GetPixel(j, hc).R == 0) cnt++;
                                            }
                                        }
                                    }
                                    if (cnt >= (pro / 2))
                                    {
                                        dpp.z = Convert.ToByte(7 - dpp.z);
                                        dpa.Add(dpp);
                                    }
                                }
                                dp = (DPoint[])dpa.ToArray(typeof(DPoint));
                                count++;
                                return dp;
                            }
                            public override string getName()
                            {
                                return name;
                            }
                            public override void reset()
                            {
                                count = 0;
                            }
                        }
                    Effect là 1 lớp abstract (nếu ko bít thì học c# nhé), trong đó như thế này
                    Code:
                        abstract public class Effect
                        {
                            abstract public DPoint[] next();
                            abstract public String getName();
                            abstract public void reset();
                        }
                    Khi muốn chạy hiệu ứng thì gọi hàm next(), nó sẽ trả về 1 mảng chứa vị trí LED sáng:
                    Code:
                        public partial struct DPoint
                        {
                            public byte x;
                            public byte y;
                            public byte z;
                        }
                    File ảnh Trái đất đính kèm, add vào resource vs tên Earth.
                    Click image for larger version

Name:	earth.gif
Views:	1
Size:	1.0 KB
ID:	1355595

                    Code giao tiếp mình làm trên PIC, sorry các bạn AVR nhé.
                    Code mình tự sáng chế, khi chạy có vẻ hơi nặng nên là 1 hiệu ứng tính trên PC, ko nạp vào MCU đâu nhá.
                    Computer Science major - Vietnamese-German University
                    Sponsored by

                    Comment


                    • #11
                      Mình có code Trái đất xoay viết bằng C# cho LED Cube 8x8x8 nè (dành cho hiệu ứng chạy kèm PC, mình giao tiếp = USB), có bạn nào cần ko mình share cho.
                      Ngoài ra còn có code pháo bông, chữ bay và tứ diện 3D xoay nữa.
                      LED Cube mà ko có hiệu ứng đặc sắc thì cũng như là cục nhựa.
                      up up ! share cho e với ,e cũng muốn làm ,nếu có sơ đồ nguyên lý của led cube 8x8x8 nữa thì tốt quá

                      Comment


                      • #12
                        Bác minh_cly có thể post lên 1 số đoạn hiệu ứng của khối 5x5x5 viết dưới dạng mã "C" để anh em tham khảo đc không..!
                        Chú ý: phải dùng được nha..! ^^

                        Comment


                        • #13
                          Nguyên văn bởi Tuananh_95 Xem bài viết
                          Bác minh_cly có thể post lên 1 số đoạn hiệu ứng của khối 5x5x5 viết dưới dạng mã "C" để anh em tham khảo đc không..!
                          Chú ý: phải dùng được nha..! ^^
                          làm như ông trời không bằng.
                          email:
                          chỉ được liên lạc từ 19h00 - 21h30



                          Comment


                          • #14
                            Nguyên văn bởi onghesman Xem bài viết
                            up up ! share cho e với ,e cũng muốn làm ,nếu có sơ đồ nguyên lý của led cube 8x8x8 nữa thì tốt quá
                            Chưa làm xong LED Cube nữa, làm xong đi rồi tính chuyện viết hiệu ứng.
                            Computer Science major - Vietnamese-German University
                            Sponsored by

                            Comment


                            • #15
                              mong các bác pots cái sơ đồ chân của led cube 8*8*8 giúp em được ko ah
                              em cảm ơn nhìu lăm
                              dây là mail cua em
                              bayvsvc@yahoo.com

                              Comment

                              Về tác giả

                              Collapse

                              dat 302 Tìm hiểu thêm về dat 302

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

                              Collapse

                              Đang tải...
                              X