找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机+ULN2003A步进电机控制系统仿真图与源码(正反转+加减速)

查看数: 25907 | 评论数: 38 | 收藏 29
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-9-10 19:01

正文摘要:

51单片机步进电机的正反转。加减速控制 电路原理图如下:

回复

ID:97678 发表于 2023-5-16 18:10
compiling 电机调速 2.c...
linking...
*** WARNING L15: MULTIPLE CALL TO SEGMENT
    SEGMENT: ?PR?_WRITE_SFM?_________2
    CALLER1: ?PR?TIME0?_________2
    CALLER2: ?PR?TIME1?_________2
*** WARNING L15: MULTIPLE CALL TO SEGMENT
    SEGMENT: ?PR?_WRITE_SFM?_________2
    CALLER1: ?PR?TIME1?_________2
    CALLER2: ?C_C51STARTUP
Program Size: data=84.0 xdata=0 code=2569
creating hex file from ".\Objects\222"...
".\Objects\222" - 0 Error(s), 2 Warning(s).
Build Time Elapsed:  00:00:00

怎么会有这样的错误?
ID:1067962 发表于 2023-5-15 17:44
Similarv 发表于 2019-5-31 11:04
楼主的键值扫描函数写得太长了,帮你优化一下
/******************************************************* ...

你好,请教一下,为什仿真图中电机转好几圈,显示圈数才加一,怎么更改程序呢
ID:1067962 发表于 2023-3-30 10:11
请教一下,这个步进电机一档到十二档的转速怎么算呢
ID:793311 发表于 2021-4-12 10:30
Build target 'Target 1'
assembling STARTUP.A51...
A51 MACRO ASSEMBLER V8.02 - SN: T1PMC-AH696C
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2008
"D:\Keil\C51\BIN\A51.EXE" "F:\My C51\步进电机标准\STARTUP.A51" SET (SMALL) DEBUG PRINT(.\STARTUP.lst) OBJECT(.\STARTUP.obj) EP
A51 FATAL ERROR -
  FILE:       F:\My C51\步进电机标准\STARTUP.A51
  ERROR:      FILE DOES NOT EXIST
A51 TERMINATED.
Target not created

这是为什么
ID:369050 发表于 2021-4-1 16:24
直接仿真不能用?一直抖动,
ID:120672 发表于 2021-1-28 18:34
饿了喝露水 发表于 2019-6-7 11:34
请问LM7805稳压电路在步进电机驱动里面起什么作用?为什么要加一个稳压电路呢?

图上不是有写么,输入电压是9V,单片机工作电压是5V ,所以需要加7850做电压转换。
ID:875327 发表于 2021-1-23 11:11
楼主好,想问一下,电机是不是会抖动,不能很好转动?还有电机转速大致范围方便说一下吗?
ID:776223 发表于 2020-6-16 20:06
Similarv 发表于 2019-5-31 11:04
楼主的键值扫描函数写得太长了,帮你优化一下
/******************************************************* ...

为什么电机只抖不转,求解
ID:776223 发表于 2020-6-15 15:56
如果加上看门狗的话应该怎么加
ID:754663 发表于 2020-5-26 18:07
为什么编译没有错误,重建却有警告
ID:761534 发表于 2020-5-26 16:39
谢谢分享
ID:697653 发表于 2020-2-26 12:36
谢谢分享
ID:697653 发表于 2020-2-26 12:31
有温度控制步进电机的吗,我自己改了,可是电机不转动
ID:682467 发表于 2020-1-6 21:10
为什么我的会显示
LINK/LOCATE RUN COMPLETE.  2 WARNING(S),  28 ERROR(S)
ID:340256 发表于 2019-12-30 16:34
感谢分享 但是感觉代码还可以再精简一点
ID:670994 发表于 2019-12-24 10:24
为什么电机不转,加减转速也无法操控
ID:670994 发表于 2019-12-23 10:16
设计的非常好
ID:670994 发表于 2019-12-23 10:12
谢谢分享
ID:669441 发表于 2019-12-20 22:01
楼主,能把你这个程序的全部代码给我吗?
ID:16462 发表于 2019-12-11 09:21
定时器控制转速的正好想看看,谢谢分享
ID:564933 发表于 2019-6-27 19:36
2956905260 发表于 2019-5-7 10:51
为什么电机只抖动不转?

你解决了没有,我这也是只抖不转
ID:557193 发表于 2019-6-8 19:59
怎么用单片机控制三个电机呢
ID:557241 发表于 2019-6-8 17:26
求汇编啊
ID:557241 发表于 2019-6-7 16:15
有汇编的吗
ID:557163 发表于 2019-6-7 14:29
饿了喝露水 发表于 2019-6-7 11:34
请问LM7805稳压电路在步进电机驱动里面起什么作用?为什么要加一个稳压电路呢?

仿真可以没有,实际使用时如果电机功率较大,需要单独供电。所以有些开发板提供单独的电机电源供选择。用uln2003这类达林顿驱动时,电压也可以不是5V,可以更高一些和电机配套。
ID:425288 发表于 2019-6-7 11:34
请问LM7805稳压电路在步进电机驱动里面起什么作用?为什么要加一个稳压电路呢?
ID:476527 发表于 2019-6-6 10:57
zys1998 发表于 2019-6-5 11:41
怎么再加一个显示电机运行时间的啊

定义一个全局变量time_moto,初始化为0;
在定时器中断里,当电机开启你就++time_moto;
电机没开就不管他;
在lcd1602的显示函数里把time_moto显示出来即可。
ID:552098 发表于 2019-6-5 11:41
Similarv 发表于 2019-5-31 11:04
楼主的键值扫描函数写得太长了,帮你优化一下
/******************************************************* ...

怎么再加一个显示电机运行时间的啊
ID:476527 发表于 2019-5-31 11:04
楼主的键值扫描函数写得太长了,帮你优化一下
/******************************************************************/
/*              独立键盘扫描函数                                  */
/******************************************************************/
void keyscan()
{
    uchar key_data;
   
    P3 = 0xff; //拉高P3口,以读取P3口的值
    if( (P3 & 0x1f) !=0x1f)
    {
        key_data = P3 & 0x1f;
        delay(5);//延时消抖
        P3 = 0xff;
        if( (P3 & 0x1f) == key_data;)
        {
            switch(key_data)
            {
                case 0x0f: flag = 5;
                    break;
                case 0x17: flag = 4;
                    break;
                case 0x1b: flag = 3;
                    break;
                case 0x1d: flag = 2;
                    break;
                case 0x1e: flag = 1;
                    break;
                default:
                    //do you want to do here; such as error_flag;or nothing;
                    break;
            }
            do{
                P3 = 0xff;
            }while((P3 & 0x1f)!= 0x1f); //等待松键
        }
    }
}
ID:476527 发表于 2019-5-31 11:04
楼主的键值处理函数写得太长了,我帮你优化一下:
ID:549166 发表于 2019-5-31 10:06
有参考价值,感谢
ID:318987 发表于 2019-5-10 21:35
select1 是起什么作用的
ID:505406 发表于 2019-5-7 10:51
为什么电机只抖动不转?
ID:511290 发表于 2019-4-20 21:07
谢谢分享
ID:498802 发表于 2019-3-26 23:00
sidhc 发表于 2018-12-7 12:07
感谢分享

THX a lot
ID:467912 发表于 2019-3-26 12:16

感谢分享
感谢分享
ID:496108 发表于 2019-3-22 14:23
想要学习单片机控制,请多多分享资料哦
ID:419310 发表于 2018-12-7 12:07
感谢分享

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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