#include <intrins.h>
void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i
while(ms--)
{
for(i = 0i <120i++)
}
}
main()
{
unsigned char LED
LED = 0xfe //0xfe = 1111 1110
while(1)
{
P2 = LED
delayms(250)
LED = LED <<1 //循环右移1位,点碧腔嫌亮下一个LED "<<"为左圆桥移位
if(P2 == 0x00 ) {LED = 0xfe } // 0xfe = 1111 1110
}
}
方法如下:1、LED和单片机改用电池供电,让电池和单片机以及LED在马达上一起旋转。2、要是电机的轴够长的话,在电机轴上装两个电刷通过电刷给单片机和LED供电,为了防止电刷引起的电火花干扰单片机,最好在单片机的电源处加上个10uF--50uF的电解电容。
3、用两台电机,同含辩轴安装,电机轴分别连接在单片机的正负电源上,用两个电机的机体作为导线给单片机供电。
4、将单片机和LED装在一个圆盘上,在圆盘的底部安放两稿老握道同心的圆形滑轨作为受电极,再在圆形滑轨的下面安装两个d性铜片最为供电极。这样电机键庆旋转的时候通过滑轨可以不断的给单片机供电了。这个和方法2有点相近,不过这个方法更容易实现。
霍升衫尔元件来测速,使用的是开关型霍尔元件即可,把打印面朝向自己,从左到右1脚为电源正极,2脚为负极,3脚为信号输出。霍尔元件只是能把电机转动的频率通过信号输出给控制单元,霍尔本身是不具备限速功能的,只是起到反馈的作用。如果要起到限速的作用,还需要在程序中添加您给电机规定吵仔腔限速的相应代码限制最高速率,然后和霍尔反馈的实际测戚如量的速率(频率)来作为比较,从而通过控制单元实现速率的调整。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)