找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8742|回复: 4
打印 上一主题 下一主题
收起左侧

L298N+光耦驱动步进电机测试程序和原理图

[复制链接]
跳转到指定楼层
楼主
ID:140725 发表于 2017-3-20 22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


采用L298N模块带光耦来驱动步进电机与原理图与资料详见:
http://www.51hei.com/bbs/dpj-79474-1.html

下面是程序源码:

  1. /******************************步进电机的驱动*************************************
  2. ;FOSC = 12MHz
  3. ;---------------------------------------------------------------------------------
  4. ; 步进电机的驱动信号必须为脉冲信号!!! 转动的速度和脉冲的频率成正比!!!
  5. ; 本步进电机步进角为 5.625度 . 一圈 360 度 , 需要64个脉冲完成!!!
  6. ;---------------------------------------------------------------------------------
  7. ; A组线圈对应 P0.0
  8. ; B组线圈对应 P0.1
  9. ; C组线圈对应 P0.2
  10. ; D组线圈对应 P0.3
  11. ; 正转次序: AB组--BC组--CD组--DA组 (即一个脉冲,正转5.625度)
  12. ;----------------------------------------------------------------------------------
  13. **********************************************************************************/

  14. /*头文件*/
  15. #include <reg52.h>      
  16. #include <intrins.h>
  17. #define uint unsigned int
  18. #define uchar unsigned char
  19. #define nop() _nop_()

  20. uchar code table1[]={0x03,0x06,0x0c,0x09};  /*正转表*/
  21. uchar code table2[]={0x03,0x09,0x0c,0x06};  /*反转表*/
  22. #define motor P0

  23. void delay(uchar ms) /*延时*/
  24. {
  25.     uchar j;
  26.     while(ms--){
  27.         for(j=0;j<250;j++)
  28.             {;}
  29.         }   
  30. }

  31. void main()
  32. {
  33.         uchar i,j;
  34.         while(1){
  35.             //正转3圈共192个脉冲
  36.                 j=0;
  37.                 for(i=0;i<192;i++){
  38.                         motor = 0x00;
  39.                         motor = table1[j];
  40.                         j++;
  41.                         if(j>=4) j=0;
  42.                         delay(2);
  43.                         }
  44.                 delay(200);
  45.                 delay(200);       
  46.                 delay(200);
  47.                 delay(200);       
  48.                 delay(200);       
  49.                 //反转2圈共128个脉冲
  50.                 j=0;
  51.                 for(i=0;i<128;i++){
  52.                         motor = 0x00;
  53.                         motor = table2[j];
  54.                         j++;
  55.                         if(j>=4) j=0;
  56.                         delay(2);
  57.                         }


  58. …………余下代码请下载附件…………
复制代码
下载:
L298N加光耦电机驱动.rar (898.33 KB, 下载次数: 88)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:164988 发表于 2017-3-21 14:31 | 只看该作者
下载学习,谢谢楼主!
回复

使用道具 举报

板凳
ID:176854 发表于 2017-3-21 14:41 | 只看该作者
学到东西了!谢谢
回复

使用道具 举报

地板
ID:641607 发表于 2019-11-14 00:44 来自手机 | 只看该作者
下载下载
回复

使用道具 举报

5#
ID:495287 发表于 2020-6-25 00:29 | 只看该作者
谢谢楼主分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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