搜索
bottom↓
回复: 53

[原创]彩色mini摇摇棒(双色)+ 实拍视频 mhlyjay (首发于OurDev.cn )

[复制链接]

出0入0汤圆

发表于 2010-11-26 22:58:28 | 显示全部楼层 |阅读模式
[原创]彩色mini摇摇棒(双色)

OurDev.cn 首发

------1--------

首先,请有兴趣的先了解 杜洋的摇摇棒 http://www.doyoung.net/works/SHOOK16/index.html ,不过本人不推荐也不反对 你去购买他的套件,

不过我还是喜欢自己完全DIY,包括 我做的 其他业余作品,有些创新的小点子是汲取 别人的 ,但实现过程 ,思路和程序 完全 是自己 的 。  
     
     我自己 的实物图:
      
(原文件名:20100530(001).jpg)
                 
        这段是电池部分 ,还弄了个自锁开关,电源 是 3.7V 的锂电池,从小的MP3上拆下的 。



(原文件名:20100530(002).jpg)
        这段 是 单片机 部分,照得不怎么清楚(200w),


(原文件名:20100530.jpg)
        这是 全貌,就这个样子,中间的 很长的线是电源线 和 用来 下载的 。
        
        拍摄视频:(复制下面地址,用浏览器打开观看)
        1.

        http://player.youku.com/player.php/sid/XMjI1NTQxNjMy/v.swf

       2.
      
       http://player.youku.com/player.php/sid/XMjI1NTQxNTA4/v.swf

        


      我用 国产的 89C51 单片机上 实现了 彩色显示(两种颜色,红色和绿色 混合显示),这个东东今年四月份做的,做了已经有大半年了,本来不想公布出来,但最终 还是转变了 思想 ,哈哈

      大概的原理图如下(本人 因正在 做一个项目,没什么时间,所以 这个图随便画了下,请见谅):

(原文件名:100_9115.jpg)



      我自己 的实物是 使用的 P1 和 P3 口,有个复位的 引脚 去掉,没有复位部分没什么 问题,单片机 能正常工作,把P3口 的引脚 朝 P1 口那边扭弯点。有两排贴片(0805封装)的LED 灯 1和2,1那一排 LED 左为负极,右为正极。2那一排 LED 右为负极,左为正极。
      这样 就行了,但是 亮度较低,最好 分别加个 470~1K 的上拉电阻,那样 就比较亮,但单片机 可能 会有点 微热,不过 没事 的 ,没那么容易 坏 。
      最好 能 用 12C5A 系列 的 ,它的IO 口 有个 强上拉 达20 mA,那驱动就 足够 了,,,唉 ,只是 我做的 时候 手头没有。
,因为我们学校 实验室只有 国产单片机(s x x,这个关键字似乎被屏蔽了)的,懒得自己 买了,穷人 啊>...

   上图,我的做的东东实拍图,送给一女生的,每个字的颜色是会换的,还有更强大 的功能,包括动态显示温度(加ds18b20),显示动态的3d图,以后再公布:
                  

(原文件名:http_imgload.jpg)


(原文件名:http_imgloadCAMZYWG8.jpg)


  希望 大家拍砖和仿制,时间 匆忙,写的 不好,有问题请大家多留言,今天 暂时 写道这里,以后我会继续公布,我是mhlyjay,Q我:492364042.





------2------
部分原理:


(原文件名:QQ截图未命名1.jpg)


(原文件名:QQ截图未命名2.jpg)


(原文件名:QQ截图未命名3.jpg)


(原文件名:复件 http_imgload.jpg)


有时间 我再把视频传上来,程序写的不够好,大家就看看吧

**********************************************************/

//                  mini LED摇摇棒
//                  显示64*16像素(x*15)



#include <AT89X52.h>
#define uchar unsigned char
#define uint unsigned int   

sbit KeyChoose=P0^3;
sbit KeyLeft=P2^7;
sbit KeyRight=P2^6;
sbit Zero=P2^0;

uchar Color;


uchar code LEDDriverTable[]=
{
        0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,        // 1~ 8
        0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff                // 9~15


};


/////////////////////////////////////////////////////////////////////////
// 汉字字模表                                                          //
// 纵向取模下高位,数据排列:从上到下从左到右                            //
/////////////////////////////////////////////////////////////////////////
uchar code GB16wo[] =          // 数据表
{

//"你",
      0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,
      0x40,0x00,0x20,0x08,0x18,0x04,0x0F,0x43,
      0x08,0x80,0xC8,0x7F,0x08,0x00,0x08,0x01,
      0x28,0x06,0x18,0x0C,0x00,0x00,0x00,0x00,
//"爱",
      0x40,0x00,0xB0,0x00,0x92,0x40,0x96,0x30,
      0x9A,0x8C,0x92,0x83,0xF2,0x46,0x9E,0x2A,
      0x92,0x12,0x91,0x2A,0x99,0x26,0x95,0x42,
      0x91,0xC0,0x50,0x40,0x30,0x00,0x00,0x00,
//"我",
      0x20,0x00,0x24,0x08,0x24,0x48,0x24,0x84,
      0xFE,0x7F,0x23,0x02,0x22,0x21,0x20,0x10,
      0xFF,0x09,0x20,0x06,0x22,0x1A,0xAC,0x61,
      0x20,0x80,0x30,0xE0,0x20,0x00,0x00,0x00,
//"吗",
      0x00,0x00,0xFC,0x1F,0x04,0x08,0x04,0x08,
      0xFE,0x1F,0x04,0x08,0x02,0x08,0xFA,0x09,
      0x02,0x09,0x02,0x09,0x02,0x0D,0xFF,0x49,
      0x02,0x81,0x80,0x7F,0x00,0x01,0x00,0x00,

//"?",
      0x00,0x00,0x00,0x00,0x30,0x00,0x38,0x00,
      0x28,0x00,0x04,0x00,0x04,0x20,0x04,0x70,
      0x84,0x73,0x84,0x21,0xC4,0x00,0x4C,0x00,
      0x78,0x00,0x30,0x00,0x00,0x00,0x00,0x00
};










/*****n(us)延时子程序*****/
void Delay(uint N)
{
        uint x,y;
        for(x=0; x<=N;x++)
                for(y=0;y<=2;y++);
}

void DisplayPoint(uchar LEDChoose, uchar Color)//bit Color)?//,uint DisplayTime)   //15(×2)LED    //LEDChoose(Up 1~15 Down),Color(0:Green;1:Blue),DisplayTime ()
{//        uchar t;
       
        //t=(LEDChoose-1)+Color*8;
        if(LEDChoose>=1&LEDChoose<=8)
        {       
                P1=LEDDriverTable[(LEDChoose-1)+Color*8];
                P3=(!Color)*0xff;                                                                           //!or~
        }                                                                                                            
        else if(LEDChoose>=9&LEDChoose<=15)
        {       
                P3=LEDDriverTable[(LEDChoose-1-8)+(Color*8)];
                P1=(Color)*0xff;
        }                                                  
        else
        {       
                P1=0xff;
                P3=0xff;
        }
        //Delay(DisplayTime);                                                                                   //

}


void YScanDisplay(uchar YDisplay,uint DisplayTime,uchar UorD)                                   //YScanDisplayData(8bit)        ;
{
        //bit PointTable[8];
//        uchar PointTable[8];                                                                                   //! LEDChoose is (Up 1~15 Down)
        uchar i=0;

        for(i=1;i<=8;i++)
        //{
//        while(YDisplay!=0)
        {   
        //        PointTable=(bit)(YDisplay&0x01);                          
            if((bit)(YDisplay&0x01)!=0)                                              //target:  (共阴~取反~共阳)
                {
                        DisplayPoint(i+UorD*8,Color);                                                                         //Color
                        Delay(DisplayTime);
                }
                YDisplay>>=1;
       
//                 i++;
            
        }

        //}

       
//        for(i=0;i<=7;i++)       
        //while(PointTable!='\0')
//        {                     
               
         //        i++;                       
//        }


                               

}


void XScanDisplay()
{
       

}




/*****主函数*****/
void main(void)
{       
        uchar tt,ccc=1;
        bit cc=0;
        Zero = 0;
        while(520)

//        if(KeyRight=0)
        {
                if(KeyChoose=0)cc=!cc;
                while(KeyLeft);
                Delay(1400);
                for(tt=1;tt<=160;tt++)
                {
                       
                        YScanDisplay(GB16wo[tt],2,tt%2);
                        if(++ccc==32){
                        Color=!Color;
                        ccc=0;}
                }
                P1=0xff;
                P3=0xff;

                while(KeyRight);
                Delay(1400);
                for(tt=160;tt>=1;tt--)
                {
                       
                        YScanDisplay(GB16wo[tt],2,tt%2);
                        if(++ccc==32){
                        Color=!Color;
                        ccc=0;}
                }
                P1=0xff;
                P3=0xff;
        };
















//////////////////////以下为最开始 的硬件测试程序,用来检测LED 有没有焊接好,有没有焊接烧坏等///////////////////////////

//效果是 :首先是第一排亮,然后是第二排亮,最后 全亮,当然这只是看起来全亮,但是 LED 不可能真正同时亮,实际上,某一时刻,只有一个被点亮
/*
//        P1=0x80;
//        P3=0x80;

        for(tt=0;tt<=15;tt++)
        {
        DisplayPoint(tt,1);
        Delay(10000);
        }

        for(tt=0;tt<=15;tt++)
        {
        DisplayPoint(tt,0);
        Delay(10000);
        }

        while(520){
        for(tt=0;tt<=15;tt++)
        {
        DisplayPoint(tt,1);
        Delay(350);
        DisplayPoint(tt,0);
        Delay(700);
        }}


while(520);



//        while(1)  
//        {
   //-----------忧伤的分割线-----------//
        P1=0xfe;           //0b
        delay(100);
        P1=0x01;           //0r
        delay(100);

        P1=0xfc;           //1b
        delay(100);
        P1=0x03;           //1r
        delay(100);

        P1=0xf8;           //2b
        delay(100);          
        P1=0x07;
        delay(100);           //2r

        P1=0x;               //b
        delay(100);
        P1=0x;               //r
        delay(100);

        while(1);

//        }
*/



}

/*****END*****/

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-11-26 23:18:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-27 00:09:11 | 显示全部楼层
不错。。顶一个。。

出0入0汤圆

发表于 2010-11-27 00:43:51 | 显示全部楼层
真不错

出0入0汤圆

发表于 2010-11-27 09:00:41 | 显示全部楼层
喜欢

出0入42汤圆

发表于 2010-11-27 09:05:23 | 显示全部楼层
不错

出85入4汤圆

发表于 2010-11-27 09:10:13 | 显示全部楼层
有创意,很不错

出0入0汤圆

发表于 2010-11-27 09:12:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-27 09:13:33 | 显示全部楼层
cool

出0入42汤圆

发表于 2010-11-27 09:20:39 | 显示全部楼层
楼主实物图错了吧?接的不是P1,P3的样子,
IC缺口方向不对吧?

出0入0汤圆

发表于 2010-11-27 10:58:59 | 显示全部楼层
传感器用的什么呢?

出0入0汤圆

 楼主| 发表于 2010-11-27 13:49:46 | 显示全部楼层
回复【9楼】canback
-----------------------------------------------------------------------

我画的图接不是接的P1,P3,那只是 示意,但我自己 做的 是的,我没有 好的 照相机,拍不清楚 ,

出0入0汤圆

发表于 2010-11-27 13:54:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-27 15:35:50 | 显示全部楼层
很不错 啊,有创意,

出0入0汤圆

发表于 2010-11-27 22:25:01 | 显示全部楼层
方法不错,支持一下。

出0入0汤圆

 楼主| 发表于 2010-12-12 00:00:52 | 显示全部楼层
回复【楼主位】mhlyjay
-----------------------------------------------------------------------

彩色 mini摇摇棒(双色)时间 + 温度显示 + 实拍视频 mhlyjay (miniPOV)

http://u.youku.com/mhlyjay  欢迎观赏

出0入0汤圆

发表于 2010-12-12 13:37:01 | 显示全部楼层
有意思,才不久做了一个单色的

出0入0汤圆

发表于 2010-12-12 18:41:06 | 显示全部楼层
不错,学习了

出0入0汤圆

发表于 2010-12-12 19:21:51 | 显示全部楼层
cool!!!

出0入0汤圆

发表于 2010-12-12 20:43:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-1 23:39:50 | 显示全部楼层
技术含量!

出0入0汤圆

发表于 2011-1-1 23:51:42 | 显示全部楼层
这个要顶

出0入0汤圆

发表于 2011-1-2 12:56:00 | 显示全部楼层
哈哈~~~做大一点,在女生楼下摇!不错~~~

出0入0汤圆

发表于 2011-1-2 14:50:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-9 21:04:46 | 显示全部楼层
顶一下  马上就去做一个

出0入0汤圆

发表于 2011-1-13 21:37:35 | 显示全部楼层
太棒了

出0入0汤圆

发表于 2011-1-14 12:38:29 | 显示全部楼层
请教!请教!  怎么判断它到了最边上呢?还是自己手动调节???

出0入0汤圆

发表于 2011-2-16 13:52:19 | 显示全部楼层
不知可否实现汉字描边?

出0入0汤圆

发表于 2011-2-16 13:58:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-17 18:02:29 | 显示全部楼层
有空也做一个

出0入0汤圆

发表于 2011-2-17 18:26:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-28 20:13:09 | 显示全部楼层
回复【楼主位】mhlyjay
-----------------------------------------------------------------------

怎么摇起来的

出0入0汤圆

发表于 2011-3-28 23:15:18 | 显示全部楼层
呵呵,很好玩的,我以前也做了一个。。。

出0入0汤圆

发表于 2011-4-17 16:42:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-17 17:09:13 | 显示全部楼层
这是 那些X粉们的最爱。

出0入0汤圆

发表于 2011-4-17 17:36:55 | 显示全部楼层
mark~

出0入0汤圆

发表于 2011-4-18 11:45:19 | 显示全部楼层
很有创意嘛。。。。mark

出0入0汤圆

发表于 2011-4-18 13:29:03 | 显示全部楼层
很烂。。这就叫做双色摇摇棒吗?真不知道lz怎么敢把这东西发不出来。。看视频,一定效果也没有
头像被屏蔽

出0入0汤圆

发表于 2011-4-18 19:40:49 | 显示全部楼层
看了楼主的YOUKU,发现楼主做的东西总是很小巧!强人!

出0入0汤圆

发表于 2011-5-27 19:36:47 | 显示全部楼层
收了

出0入0汤圆

发表于 2011-5-27 19:41:52 | 显示全部楼层
呵呵,顶~

出0入0汤圆

发表于 2011-5-27 21:08:16 | 显示全部楼层
不错,学习了,以前一直不明白一列灯怎么能显示字呢,现在明白了。

出0入0汤圆

发表于 2011-5-27 21:14:34 | 显示全部楼层
不错不错!!!

出0入0汤圆

 楼主| 发表于 2011-6-13 13:13:15 | 显示全部楼层
Led Cube 8*8*8
V1
[By ForeverTop]

多种 特效和功能,正在升级 程序中,继续更新;

待程序写强大,完整了 再传上来,先放个效果:

http://v.youku.com/v_show/id_XMjc1Mzg2NjE2.html




暂时需要源码的 ,可以 加Q:492364042交流交流,
另外,做了几块样品PCB,还有几块闲制的,要的赶快 Q我

哈哈,可不是 打广告啊,都 互相学习 下,交流交流。



(原文件名:1.gif)


(原文件名:28052011983.jpg)


(原文件名:100620111070.jpg)


(原文件名:120620111078.jpg)


(原文件名:QQ截图20110610092436.png)

出0入0汤圆

发表于 2011-6-13 13:28:55 | 显示全部楼层
图文并茂,德艺双馨

出0入0汤圆

发表于 2011-6-13 14:26:35 | 显示全部楼层
不错不错,mark一下,支持楼主

出0入0汤圆

发表于 2011-6-13 15:46:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-13 23:49:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-14 08:59:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-14 13:55:09 | 显示全部楼层
那个3D流水灯做的漂亮啊,感觉焊接很有功底,不知道有没有效果视频让我们瞧瞧

出0入0汤圆

发表于 2011-6-15 10:26:07 | 显示全部楼层

出0入0汤圆

发表于 2011-7-8 09:40:47 | 显示全部楼层
留名.
..............

出0入0汤圆

发表于 2011-7-8 09:55:10 | 显示全部楼层
mark=

出0入0汤圆

发表于 2012-11-14 13:00:19 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 04:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表