hithyy 发表于 2008-10-26 22:26:47

我也来个旋转LED【恢复】

旋转LED挺好玩,简单的电路就能获得不错的显示效果,看到论坛有不少旋转LED的帖子,就参考做了一个,效果还不错。

下面是硬件的照片:

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_469992.JPG

 (原文件名:旋转LED硬件照片.JPG) 

能转的部分被架在一个小直流电动机轴上,万用板上面放了一个最小89S52系统和16个发光二极管。单片机通过电动机轴和简易电刷供电,因为配重不很平衡会震动,有时会瞬间掉电,为了稳定加了一个1000uF的电容。在万用板上的89S52引出了MISO,MOSI,SCLK,RST四个引脚通过插针引脚和我的89S52实验板的对应引脚相连,以便ISP编程(要拔掉实验板上的89S52芯片)。另外单片机的电源也是通过引线来自于实验板。电动机是用1节5号电池供电。

程序设定为显示电动机转过的总圈数。

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_469995.JPG

 (原文件名:AT89S52板子照片-上传版.JPG) 

转起来之后显示的效果如下:

http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_469993.JPG

 (原文件名:旋转LED效果照片1.JPG) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_469994.JPG

 (原文件名:旋转LED效果照片.JPG) 



补充以下源代码:

#include"at89x52.h"

/*

P2口连接外侧8个led

P0口连接内侧8个led

MISO,MOSI,SCLK,RST通过插针引出



旋转LED显示当前电机转过的圈数

*/

//0-9数字编码库8*8数字的编码库 

code unsigned char NumTable=

{

        {0x00,0xFF,0x81,0x81,0x81,0xFF,0x00,0x00},/*"0"*/

        {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00},/*"1"*/

        {0x00,0xF1,0x91,0x91,0x91,0x9F,0x00,0x00},/*"2"*/

        {0x00,0x91,0x91,0x91,0x91,0xFF,0x00,0x00},/*"3"*/

        {0x00,0x1F,0x10,0x10,0x10,0xFF,0x00,0x00},/*"4"*/

        {0x00,0xCF,0x89,0x89,0x89,0xF9,0x00,0x00},/*"5"*/

        {0x00,0xFF,0x89,0x89,0x89,0xF9,0x00,0x00},/*"6"*/

        {0x00,0x01,0x01,0x01,0x01,0xFF,0x00,0x00},/*"7"*/

        {0x00,0xFF,0x89,0x89,0x89,0xFF,0x00,0x00},/*"8"*/

        {0x00,0x8F,0x89,0x89,0x89,0xFF,0x00,0x00} /*"9"*/

};

unsigned char DisplayBuffer;

unsigned char counter=0;

unsigned char index=0;  //180份之一的指针

unsigned char old_th1,old_tl1;

unsigned char Round=0;

unsigned long RoundCounter=0;

void int0Svr(void) interrupt 0

{

    unsigned long temp32;

    unsigned char orderOfNum=0;

    unsigned char temp,i,j;

    temp32 = counter;

    temp32 = temp32<<16;

    temp32 = temp32+TH0*256+TL0;

    temp32 = temp32/180;

    temp32 = 0xffff - temp32;

    TL1 = temp32 & 0xff;

    old_tl1 = TL1;

    TH1 = (temp32>>8)&0xff;

    old_th1 = TH1; 

    RoundCounter++;//圈数加1

//取出圈数的对应位(个位、十位、百位、千位,万位,十万位)

//从个位取起

    orderOfNum = 0;

    temp32 = RoundCounter;

    for(i=0;i<6;i++)

                {

            temp = temp32 %10;

                   for(j=0;j<8;j++)

                         {

                           DisplayBuffer[(5-i)*8+j] = NumTable;//数字

                         }

                         temp32 = temp32/10;

                }

                index = 0;

                P0++;//修改P0口内容,增强显示效果



                if(Round==0)

                {

            TR0 = 1;         

            Round++;

                }else

                {

            TR1 = 1;

            TR0 = 1;

                } 

                counter = 0;

        TH0 =0;

        TL0 =0;

}

void temer0Svr(void) interrupt 1

{

  counter++;

}



void timer1Svr(void) interrupt 3

{

    TR1 = 0;

    TL1 = old_tl1+8;

        TH1 = old_th1;

     TR1 = 1;

    if(index<90)

        {

        P2 = ~DisplayBuffer;        

    }else 

        {

        P2 = ~DisplayBuffer;         

        }

        index++;        

//达到180说明原定速度下一周已经完成

//如果还没有重新被归零说明没有经过磁铁,可能减速或者要停下来了

  if(index==180)// 

        {

                TR1 = 0;

                P2 = 0xff;

                P0 = 0xff;

        }

}



void main(void)

{

        EA=1;

        IT0=1;

        EX0=1; 

        SP=128;

    P0=0;

    P2=0;

    TMOD=0x11;//定时器T0工作于方式1由TR0开启,定时器T1工作于方式1由TR1开启

        TCON=1;//INT0边沿触发方式

    IE=0x8b;

        TR0 = 1;

        while(1)

        {        

          if(counter>30)  //30*定时器1溢出周期,30*64ms=1.9s,这么久没有归零一般电机停下来了

                {

                        P2 = 0xff;

                        P0 = 0xff;

                        counter = 0;

                        TR0 = 0;  //关闭2个定时器

                        TR1 = 0;

                        PCON = PCON & 0x02;//进入掉电模式,节能;由中断重新激活                  

                }

        }

} 





本贴被 hithyy 编辑过,最后修改时间:2008-10-27,12:53:32.

coole 发表于 2008-10-26 22:53:46

不错

nokia0310 发表于 2008-10-26 22:58:31

用什么设备转动的,貌似速度挺高,电扇?

做的不错!

nokia0310 发表于 2008-10-26 22:59:35

看到了,小直流电机

wpp_2124 发表于 2008-10-27 10:01:53

不錯啊!

346675655 发表于 2008-10-27 10:26:57

  用什么传感器检测的转速阿 ?  顶头起的那个“三极管”?

hellok 发表于 2008-10-27 11:22:36

看起效果还不错

erxun 发表于 2008-10-27 12:32:29

一头那个应该是霍尔传感器,作者在底板子上贴了一个小磁铁

hithyy 发表于 2008-10-27 12:48:43

转速其实不高,大概1秒钟10转左右,如果2节5号电池会转的快点。



7楼说的对,顶头的是一个霍尔传感器,白胶布底下是一个小磁铁。

gyzzg2030 发表于 2008-10-27 15:00:15

程序研究一下

thoro_avr 发表于 2008-10-27 15:13:15

不错

tomy 发表于 2008-11-4 09:10:52

把它放直着转效果上会不会更好,



至少字不会变形,,



顶了~~~

barrie_xie 发表于 2009-12-15 01:24:48

mark~

yanxinboy 发表于 2009-12-16 09:18:48

记号拉

fshunj 发表于 2009-12-16 16:12:36

mark!

Pyrrho 发表于 2009-12-16 16:34:11

Mark

cgc_good 发表于 2009-12-20 20:57:01

有意思!

lin112907 发表于 2009-12-21 15:39:03

好像数字显示的效果不是很好。。

wenming 发表于 2009-12-21 15:43:02

你们做得都太小,我们做得是个大的.

分辨率是560*128.

yvhksovo 发表于 2009-12-24 21:39:04

mark

yvhksovo 发表于 2009-12-24 21:56:01

越看越美好。楼主可不可以分享下原理图啊。

cgc_good 发表于 2010-1-16 10:54:27

有没有人尝试在遥控直升飞机的扇叶上用高亮的LED做旋转呢?我突发想到的……那样晚上多么美!

yqldt 发表于 2010-1-16 12:01:01

有意思!

chenloveyj 发表于 2010-1-22 10:44:23

记号。。

bluefeel 发表于 2010-1-22 13:41:25

mark

sw821025 发表于 2010-1-25 14:22:13

慢慢研究

kongkingn78 发表于 2010-1-25 18:04:43

做的太好了,mark下

bbi3014 发表于 2010-1-27 23:29:22

mark

tomy 发表于 2010-1-28 16:05:26

支持原创

xbpkid 发表于 2010-1-28 19:03:27

额,先收藏,再慢慢研究
膜拜一下

zhubanmaoyan 发表于 2010-2-2 16:49:03

回复【21楼】cgc_good
有没有人尝试在遥控直升飞机的扇叶上用高亮的LED做旋转呢?我突发想到的……那样晚上多么美!
-----------------------------------------------------------------------

有创意啊~~~~呵呵

596562762 发表于 2010-2-2 17:09:57

你是怎么供电的?

zhangfuhg 发表于 2010-2-5 18:46:41

漂亮啊!

fan313220 发表于 2010-2-28 22:38:59

mark

guhenggao 发表于 2010-3-1 09:38:54

mark

aaron96031 发表于 2010-3-1 09:41:33

不错,LZ有创意

howmoney 发表于 2010-3-18 20:28:23

记号

fiction 发表于 2010-5-9 11:07:20

mark

imcc 发表于 2010-5-10 22:28:23

怎么供电的啊

zcronline 发表于 2010-7-11 18:04:58

mark

dufanfance1986 发表于 2010-7-13 17:44:44

Mark

wt19891211 发表于 2010-9-1 10:54:41

MARK `

Ian11122840 发表于 2010-9-2 12:40:10

求教,连接上下两部分的地方是怎么做的呢?是怎么给上板供电啊?求上图细解~~~

hithyy 发表于 2010-9-2 15:06:06

给上面供电一个5v一个gnd。采用的是一个空心金属管套一个空心小金属管,之间用热缩管隔离开。一个金属管接5v,另一个接gnd。通过自制的电刷(有弹性的导线摩擦金属管)连接5v,另一个通过固定触电连接在电路板上。详细资料,到网上搜下,有可借鉴的。

wenming 发表于 2010-9-2 15:41:02

你们做得都太小,我们做得是个大的.

分辨率是560*128.

我们专业做这个的一个网站:

http://www.xzfeida.com/
有兴趣的朋友也可以与我联系

http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_579713SZ82DV.jpg
(原文件名:001.jpg)

http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_579714TSABJ0.jpg
(原文件名:002.jpg)

wenming 发表于 2010-9-2 15:42:15

另外,44楼说的那种供电方式,是一种落后的方式.目前我们全系列采用的都是无线供电.

Ian11122840 发表于 2010-9-2 15:57:46

无线供电是个啥东西~~~强悍~~膜拜~~能不能讲下呢?

Ian11122840 发表于 2010-9-2 15:58:36

回复【44楼】hithyy 老实人
-----------------------------------------------------------------------

谢谢了·我想尝试做一下 呵呵

caonimab 发表于 2010-9-3 17:43:32

回复【12楼】barrie_xie
-----------------------------------------------------------------------

兄弟,你的头像让我以为是我屏幕上有虫,擦了好几遍。

slgyinqiang 发表于 2010-9-4 20:32:57

回复【12楼】barrie_xie
-----------------------------------------------------------------------

兄弟,你的头像让我以为是我屏幕上有虫,擦了好几遍。


这图像就是逼真啊、

poet_lee 发表于 2010-9-4 23:19:09

mark~学习一下

wt19891211 发表于 2010-9-6 13:57:21

MARK `

H007 发表于 2010-9-10 21:28:47

回复【21楼】cgc_good
有没有人尝试在遥控直升飞机的扇叶上用高亮的led做旋转呢?我突发想到的……那样晚上多么美!
-----------------------------------------------------------------------

貌似已经有人实现了、我前段时间就看到表演,晚上固定翼和直升机 用LED发出的光在夜空真的不错

sunhaojie 发表于 2010-9-11 16:14:59

好东西,顶一个!

beiguoqishi 发表于 2010-10-2 00:07:45

LZ能给发份相关资料吗?最近有老师让弄个和这相关的必须弄出来,可以考虑金钱上的交换也行。期待楼主回复,QQ;276794247 zhangchaofan118@163.com 万分感谢

forest_1252 发表于 2010-10-2 13:12:41

学习了!

ITOUR 发表于 2010-10-3 01:14:03

准备材料 呵呵

singleplay 发表于 2010-10-12 11:12:04

mark 楼主能给点详细资料吗?,谢谢楼主。初学者,我想研究一下

singleplay 发表于 2010-10-12 11:13:15

额。。。邮箱sk_single@163.com。。忘记打了。多谢楼主

intense 发表于 2010-10-22 16:42:18

mark

xiao_guo 发表于 2010-10-22 18:49:52

漂亮

yujian12365 发表于 2010-12-1 23:23:05

学习了。。。。。。

newhand1991 发表于 2011-5-23 11:12:17

mark!!!1

jeazen 发表于 2011-5-24 21:34:57

mark,3q!

274934344 发表于 2011-5-24 21:39:50

楼主厉害,向楼主学习

newhand1991 发表于 2011-7-11 02:23:56

我也做!

lipos 发表于 2011-11-11 12:45:32

mark

sweet2012 发表于 2011-11-11 15:56:16

mark

1031706774 发表于 2011-11-12 10:43:09

学习了 。。。。

y5000 发表于 2011-11-13 04:00:45

我还以为用了2快单片机,原来只是用来下载程序用。

jdlu 发表于 2011-11-13 14:20:54

旋转LED挺好玩,但供电用电刷,不好。用无线的。

liuboyf 发表于 2011-12-7 13:04:01

回复【7楼】erxun老孟
-----------------------------------------------------------------------

正确

ahncoo 发表于 2011-12-7 21:26:50

楼主很有才 在下学习了

welcome_cool 发表于 2011-12-8 10:44:44

以前做过一个用手摇的“摇摇棒棒钟”。

hnsfdxtanghao 发表于 2011-12-18 21:24:30

mark

l09046162 发表于 2011-12-19 11:42:11

mark!!!

15309893090 发表于 2011-12-19 15:19:13

回复【45楼】wenming 老王
-----------------------------------------------------------------------
顶羡慕

dodo505ourdev 发表于 2011-12-19 16:24:58

可以用无线供电方式,在淘宝搜 无线供电模块 即可

woshigeshuai 发表于 2011-12-19 20:21:14

不错,支持

649921581 发表于 2011-12-19 20:24:08

mark

xuboluan 发表于 2011-12-19 22:02:05

MARK

guoguocai1234 发表于 2011-12-21 17:44:59

太漂亮了。。。我也想做

beihu 发表于 2012-10-9 23:35:14

学习了!!!

feizi111 发表于 2012-10-12 14:45:57

cgc_good 发表于 2010-1-16 10:54 static/image/common/back.gif
有没有人尝试在遥控直升飞机的扇叶上用高亮的LED做旋转呢?我突发想到的……那样晚上多么美! ...

   
   想法不错,若是遥控飞机的话还没地方固定这个LED的{:tongue:}

Andy_MCU 发表于 2012-10-12 21:35:37

之前见过有人供电部分采用线圈感应模式供电的,不用电刷

山居笔记 发表于 2012-10-15 15:11:56

楼主求详细点的资料啊

山居笔记 发表于 2012-10-15 15:12:59

发给我啊邮箱7509545902@qq.com谢谢啦

dfzr 发表于 2012-11-27 15:31:26

不错,学习了!!!!!!!!

liujijian 发表于 2014-11-16 13:50:34

不错。学习了
页: [1]
查看完整版本: 我也来个旋转LED【恢复】