历史上的今天
返回首页

历史上的今天

今天是:2024年09月16日(星期一)

2020年09月16日 | 用51单片机控制两相四线步进电机

2020-09-16 来源:51hei

最近学习步进电机的驱动原理,照着教材自己实践了一下用ULN2003驱动28BYJ-48两相5线步进电机,可以正常转动。手头有一个旧光驱,拆开发现里面有三个电机,其中有一个控制激光头寻迹的两相四线步进电机,我就用51的单片机让它也转起来。一开始照葫芦画瓢用ULN2003驱动,结果发现无论如何也不行。原来ULN2003基本没输出电流,只能驱动有公共端的两相五线、两相六线步进电机,不能驱动2相4线步进电机。然后改用L293D驱动,可以转动。通过按钮控制正反转时发现,按键释放后,电机迅速发热,烫手。用万用表测量,发现电机A,A-或B,B-直接存在电位差!应该是按键释放时,IN1-IN4没有归零。找到问题,就容易解决了。修改程序,可以完美运行,键1按下正转,释放停下,键2按下反转,释放停下。IN1-IN4分别接P1口的低四位。工作方式选用8拍。
A       1     1     0     0     0     0     0     1
A-      0     0     0     1     1     1     0     0
B       0     1     1     1     0     0     0     0
B-      0     0     0     0     0     1     1     1
附上源程序,仅供参考。
#include
#define uint unsigned int
#define uchar unsigned char
sbit K3=P2^5;
sbit K4=P2^4;
//k3正转。k4反转。释放停止
uchar code step_table[]={0x8,0xa,0x2,0x6,0x4,0x5,0x1,0x9};
void delay(unsigned int m)
    {
      unsigned int i,j;
      for(i=m;i>0;i--)
       for(j=110;j>0;j--);
         }
void xp()//x轴正转
{
while(!K3)
        {
                        uint i;
                for(i=0;i<8;i++)
                {
                        P1=step_table[ i];
                        delay(10);
                }
        
        }
P1=0;//按键释放时,反转P1停在table某处,导致电机有电压从而使电机发热,需要归零。
}
void xn()//x轴反转
{
                        uint i;
while(!K4)
        {
                for(i=8;i>0;i--)
                {
                        P1=step_table[ i];
                        delay(10);
                }
        
        }
P1=0;//按键释放时,反转P1停在table某处,导致电机有电压从而使电机发热,需要归零。
}
void main()
{
while(1)
{
                if(K3==0)
                {
                        delay(20);
                        if(K3==0)
                        {
                //        LED1=0;
                        xp();
                        }
                }
                if(K4==0)
                {
                        delay(20);
                        if(K4==0)
                        {
                //        LED1=0;
                        xn();
                        }
                }

}
}

推荐阅读

史海拾趣

ECS公司的发展小趣事

面对云计算技术的不断发展和市场竞争的加剧,ECS公司制定了面向未来的战略布局。他们将继续加大在研发方面的投入,推动ECS服务的不断升级和创新;同时,他们还将积极探索新的业务领域和市场机会,为客户提供更加全面、丰富的服务。此外,ECS公司还注重可持续发展和社会责任。他们致力于降低能耗和排放、推动绿色计算等方面的工作;同时,他们还积极参与社会公益事业和慈善活动,回馈社会。这些举措使得ECS公司不仅成为了一家领先的云服务提供商,还成为了一家具有社会责任感的企业。

Hirschmann公司的发展小趣事
在电子测量仪器中,定时电路常用于产生精确的定时信号或控制信号的延时。通过编程控制TC4066的开关状态,可以精确调整测量过程中的时间参数,提高测量精度和稳定性。
DBS Microwave Inc公司的发展小趣事

DBS Microwave始终将产品质量放在首位。公司建立了一套严格的质量管理体系,从原材料采购到产品生产的每一个环节都进行严格的质量控制。此外,公司还注重员工的培训和技能提升,确保每一位员工都能够熟练掌握生产技能和质量要求。这些措施使得DBS Microwave的产品质量得到了客户的高度认可。

Fluke公司的发展小趣事

在DBS Microwave的发展过程中,技术创新一直是其核心竞争力。公司不断投入研发资源,突破技术瓶颈,推出了一系列具有创新性的产品。例如,在XXXX年,公司成功研发出了一款高性能的微波滤波器,其性能指标在当时的市场上处于领先地位。这一创新不仅为公司赢得了大量订单,也进一步巩固了其在行业内的技术领先地位。

Cambridge Electronic Industries Ltd公司的发展小趣事

Cambridge Electronic Industries Ltd(简称CEI)的创立,标志着剑桥地区电子工业的一次重要飞跃。在20世纪中期,随着电子技术的快速发展,CEI的创始人看到了其中的商机,并决定成立一家专注于电子设备和系统研发制造的公司。起初,CEI主要面向当地的小型企业和研究机构,提供定制化的电子解决方案。凭借创始人的技术背景和团队的辛勤努力,CEI逐渐在剑桥地区的电子市场中建立了良好的声誉。

GTE Microcircuits公司的发展小趣事
减少噪声的方法包括选用低噪声系数的放大器、优化电路布局以减少电磁干扰(EMI)、以及在关键信号路径上使用屏蔽和滤波技术。同时,合理设计电源去耦网络,避免电源噪声对电路的影响也是关键。

问答坊 | AI 解惑

ThinkPad将采用Intel新技术防盗技术vPro

本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 英特尔所提供的个人电脑防盗保护机制结合了Centrino 2平台及英特尔的芯片安全技术vPro。 联想集团在周一(12/1)宣布旗下ThinkPad T400系列的商务笔记型电脑将采用英特尔的防盗机制供消费者选 ...…

查看全部问答>

委托设计控制器的原理图和PCB板

①用ARM7。FLASH存储数据8M。板子有自己的时钟,可以校时,有看门狗,死机会重启。 ②一路RS232(COM1),一路RS485(COM2),一路RS232/RS485(COM3)可跳线设置。这三路串口独立。 ③两路RS232(COM4,COM5),这两路是共用的。程序设置哪路通讯 ...…

查看全部问答>

vxworks与simulink实时仿真,如何加载模型.lo?(急求)

rtw编译后生成.lo模型,各位大侠如何load模型.lo啊?用loadModule载入总是报未定义符号类型……,有参考文献指出要启动rt_main()函数,手动在shell里面可以用sp启动进行实时仿真,但是想实现自动链编启动却不行,也进行了rt_main的外部声明,但是不 ...…

查看全部问答>

wince中如何显示漏斗等待图标

用了以下两种方法,都没有显示漏斗: 1.   SetCursor(::LoadCursor(NULL,IDC_WAIT)) 2.   CWaitCursor wait;   wait.Restore(); 请各位指点思路 …

查看全部问答>

ds1085操作的c代码

maxim的时钟芯片ds1085,哪位有使用经验?提供下读写的代码,100分奉上。 …

查看全部问答>

EVC写的应用程序界面显示比较慢,如何解决

用EVC写wince的应用程序时,dialog中有比较多的标准控件(如按钮、Edit等,20多个),在显示dialog时比较慢,能看到控件先后出现,请问这个问题如何解决,望赐教! …

查看全部问答>

关于设备命名Device\Harddisk#\dr# 的意思

如题,主要是dr代表什么意思?…

查看全部问答>

CE5.0关于输入面板问题

1.请问CE5.0应用程序如何让输入面板不可移动 2.以及显示或隐藏输入面板并移动应用程序窗口使其不被挡住 3.在Commandbar上面又添加输入切换按钮,谢谢。…

查看全部问答>

msp430缺点

总线不开放,外接数据存储器很慢,而且程序麻烦 i/o口不够用 有同意的吗? 怎么解决…

查看全部问答>

家用红外防盗报警器原理及结构图分析

  家用红外防盗报警器原理及结构图分析   随着人们生活水平的提高,防盗报警系统也越来越受到人们的关注。最初它应用在企事业单位、厂房仓库或各大商场超市中,来保证国家和集体的财产安全;如今,在私家车上,甚至在家里都安装了这种家用防 ...…

查看全部问答>