电路的供电和LED
的定位是本制作的一个难点。装在电机上的电路始终在高速旋转,我们就无法使用通常的方法来给电路供电。但我们可以通过对电机的改造来解决。我们都知道,一般的直流电机是线圈作为转子,而永磁体作为定子的。他是通过电刷来实现给线圈供电的,而且直流电机的旋转需要交变的电流,这是由固定在转子轴上的换向器来巧妙的实现直流变为交流的。我们的电路是固定在电机的转子上的,它和转子是保持相对静止的。因此,我们可以从电机的转子中取得电源。方法很简单,也就是从电机的换向器上用漆包线把电引到电路板上,经整流,滤波后给单片机电路供电。换向器上的每个电极什么时候变化,是和电机转子的位子有关的,我们正好可以使用其中的一路信号来给LED
显示的起始位置定位。
具体改装过程如下:
1)拆开电机(我使用的是录音机上的12V直流电机),注意拆的时候别弄坏了电机的电刷!
2)小心地从电机换向器上的三个电极引出三条漆包线
(由于我改装到这步时忘了拍照了,此图略)
3)取下电机外壳的含油轴承
4)我用原来装在电机上的皮带轮试了一下,正好可以放进拆掉含油轴承的地方,而且可以和外壳之间灵活旋转(运气不错!大家也可以试试别的)。于是我在这个上面钻了几个小孔,把那三条漆包线从小孔里穿出来。从而可以用来保护漆包线在转子和定子结合出的安全。(注意:替代上去的部分是和转子保持固定,和外壳之间是可以旋转的)。
5)组装回整个电机,电机改装至此结束
电路结构的安排见上面整体结构图,需要注意的是要安排好电机轴两边的电路重量尽量相近。
程序很简单,我这里给出一个C51
的示例程序,大家可以按自己的需要来改,做成旋转时钟等什么的。
/******************************************************************* 名称:旋转LED 作者:章健 日期:2006.1.5 *******************************************************************/ #include<REG2051.H> #define uchar unsigned char void delay(); uchar zimo[16] = {0xff, 0x7d, 0x00, 0x7d, 0xff, //字母“I” 0xc7, 0x83, 0xc1, 0x83, 0xc7, //心形图案 0xff, //用来搁开心形图案和字母U 0x03, 0xfd, 0xfd, 0xfd, 0x03 }; //字母“U” //0xc9,0xb6,0xb6,0xb6,0xc9}; void main() { TCON |= 0x01; //外部中断0,下降沿触发 IE = 0x81; //开中断 while (1); } //延时子程序,延时长短请根据的你的电机转速进行调整 void delay() { uchar j; for (j = 0; j < 255; j++) {;} } //中断处理 void display() interrupt 0 { uchar i; for (i = 0; i < 16; i++) { P1 = zimo[i]; delay(); } P1 = 0xff; }
四.最后祝大家制作成功!