遥控51单片机控制步进电机控制方向、速度

  • 控制开发板自带步进电机
  • 遥控控制
  • 控制42步进电机

大二在做srtp时做到了这部分内容,感觉C51控制起来挺简单的,之后有做关于MSP430的魂斗罗游戏和stm32的示波器,有时间也整理上来。
程序流程图:

控制开发板自带步进电机

最开始的时候想自己搭电路,还用protues画了仿真

但是后来综合考虑还是选了开发板,直接用开发板还是能省不少事。当时会的太少,代码写的很乱,参考着开发板的教程写的控制程序。原理就是通过改变电机相序来改变转动方向,延时控制速度,缺点就是无法精确控制。

void  motor_ffw(unsigned int dir,unsigned int speed)//电机控制函数{ unsigned int i;for (i=0; i<8; i++)      {if(dir==1){P1 = FFW[i]&0x1f;} else if(dir==2) {P1 = FFZ[i]&0x1f;}delay(speed);                 }}//部分主函数,当红外信号为1时进入以下情况case(0x06):                 //1LcdInit();for(i=0;i<11;i++){LcdWriteData(Disp1[i]);    }K=1;for(m=0;m<512;m++){DisplayData[2] = smgduan[IrValue[2]];if(DisplayData[2]==0x3f){goto switchcase;}motor_ffw(K,500); }K=2;for(n=0;n<512;n++){DisplayData[2] = smgduan[IrValue[2]];if(DisplayData[2]==0x3f){goto switchcase;}motor_ffw(K,500);}break;

遥控控制

遥控控制使用红外控制,也是开发板自带的模块。可以用华为手机的手机遥控app进行红外控制。在app里面自定义一个波长一致的遥控器就行。

void ReadIr() interrupt 0 //红外
{u8 j,k;u16 err;Time=0;                     delay(700);    if(IRIN==0)       {    err=1000;             while((IRIN==0)&&(err>0))      {           delay(1);err--;} if(IRIN==1)      {err=500;while((IRIN==1)&&(err>0))         {delay(1);err--;}for(k=0;k<4;k++)        {               for(j=0;j<8;j++)  {err=60;       while((IRIN==0)&&(err>0)){delay(1);err--;}err=500;while((IRIN==1)&&(err>0))   {delay(10);     //0.1msTime++;err--;if(Time>30){return;}}IrValue[k]>>=1;   if(Time>=8)         {IrValue[k]|=0x80;}Time=0;                        }}}if(IrValue[2]!=~IrValue[3]){return;}}
}

控制42步进电机

在进一步做项目时。发现自带的步进电机无法实现所要求的扭矩,改用42步进电机,采用TB6600驱动器控制。改用42步进电机好处是能提供足够的扭矩,控制器也可以精确控制速度和转动角度,只需要改中断和控制电平就能实现,接线图如下

void Timer0() interrupt 1  //中断
{TH0=(65536-cycle)/256; TL0=(65536-cycle)%256;CLK=~CLK;count++;DisplayData[2] = smgduan[IrValue[2]];if(DisplayData[2]==0x3f){count=2*step;}if(count==step){DIR=~DIR;}if(count==2*step){count=0;TR0=0;ENA=0;}
}
//部分主函数,当红外信号为6时进入以下情况case(0x7d):                 //6LcdInit();for(i=0;i<11;i++){LcdWriteData(Disp6[i]);   }count=0;DIR=0;ENA=1;cycle=5000;Timer0Init();DisplayData[2] = smgduan[IrValue[2]];if(DisplayData[2]==0x3f){goto switchcase;}break;

当时做得比较简陋,但也算是第一个独立完成的项目吧。

遥控51单片机控制42步进电机(TB6600驱动)控制方向、速度相关推荐

  1. 【电机控制】Arduino mega 2560控制42步进电机接线

    Arduino mega 2560控制42步进电机接线图 ****TB6600驱动器与42步进电机接线图**** 接线: 12V电源适配器正负极分别接驱动器VCC和GND 步进电机黑绿红蓝线分别接驱动 ...

  2. 基于51单片机宠物自动投料喂食器控制系统仿真设计( proteus仿真+程序+讲解视频)

    基于51单片机宠物自动投料喂食器控制系统仿真设计( proteus仿真+程序+讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S00 ...

  3. 51单片机NTC热敏电阻温度采集及控制ADC0832 LCD1602

    实践制作DIY- GC0051-NTC热敏电阻温度采集及控制 一.功能说明: 基于51单片机设计-NTC热敏电阻温度采集及控制 功能介绍: STC89C52单片机(STC89C51/52 AT89C5 ...

  4. 51单片机K型热电偶温度采集及控制温控模块MAX6675热电偶LCD1602

    实践制作DIY- GC0068-K型热电偶温度采集及控制温控 一.功能说明: 基于51单片机设计-K型热电偶温度采集及控制温控 功能介绍: STC89C52单片机(STC89C51/52 AT89C5 ...

  5. 51单片机最完美数码管驱动,仿真无缺显,实物无鬼影,最高亮度无黯淡.

    51单片机最完美数码管驱动,仿真无缺显,实物无鬼影,最高亮度无黯淡 驱动程序https://blog.csdn.net/xianfajushi/article/details/89448933 #in ...

  6. 单片机51---步进电机的设计(4相5线步进电机的驱动控制)

    单片机51-步进电机的设计 禁止作为商用,仅供学习交流. 0.本文主要内容 本文主要介绍了为实现步进电机的控制,先在电脑编写程序,仿真成功后,在进行实物的制作,最终独立自主的完成51单片机的编程,硬件 ...

  7. 使用51单片机来实现步进电机的控制

    一.实验器件 1.STC89C52RC的学习板子一个 2.电机型号为28-YJ-的步进电机一个 3.图片如下 二.电路的设计 我们都知道,根据单片机的控制程序根据电路的不同,程序也是不同的.其实说白了 ...

  8. 【51单片机多机通信】主机控制从机1步进电机、从机2超声波测距(主机可集中显示步进电机的转速、转向、启停状态以及超声波测距结果)

    一.设计目标 使用三个51单片机,实现多机通信. 二.实现功能 1号单片机可遥控2.3号单片机.超声波测距等: 1号单片机可集中显示步进电机的转速.转向.启停状态以及超声波测距结果. 三.硬件原理 5 ...

  9. 【51单片机】28BYJ48步进电机花样控制

    文章目录 一.主要功能 二.硬件资源 1.硬件准备 2.硬件连接 三.软件设计 1.软件结构 2.主要代码 四.实验现象 联系作者 一.主要功能 系统运行后,当按下KEY1键可调节电机旋转方向:当按下 ...

最新文章

  1. UGUI 帧动画插件
  2. allocator_difference_type的实例
  3. hql懒加载后判断对象是否存在_hibernate延迟加载(懒加载)详解
  4. C#测试数据库连接是否成功
  5. 牛客网笔记之JAVA运算符
  6. 巧用HashSet装载非重数据(洛谷P2250题题解,Java语言描述)
  7. 腾讯云推出首款自研H265硬件编码器瑶池,助力云游戏降低15%带宽
  8. 容器技术20年:容器引擎与江湖门派
  9. 全局唯一编码ID生成器
  10. EFResume - 一个普通的 Swift 简历模板
  11. 【机器学习】机器学习中无意识偏见的分析与预防
  12. 求两个数的最小公倍数(C语言)
  13. [渝粤教育] 江苏医药职业学院 急救护理 参考 资料
  14. java method方法_Java Method getDeclaringClass()方法
  15. 公司知识库的搭建步骤
  16. react.createContext
  17. OneNET麒麟座应用开发之一:初识OneNET麒麟座
  18. ilm 和dlm差异_第八章 大数据对象设计与维护
  19. 简单十步创建个人博客网站
  20. Windows环境下安装PyMySQL(已安装Anaconda)

热门文章

  1. hijackthis日志祥解
  2. 一款c#实现的实用好玩儿的背单词程序
  3. 查看IC中文文档的网站
  4. 简单公司网络架构.......拓扑图讲解(华为)。
  5. 开发STC89C51系列单片机需要的单片机技术
  6. python输出矢量图_Jupyter Notebook输出矢量图实例
  7. 对口升学计算机试卷分析,语文试卷分析
  8. 从入门到真香!java截取字符串前两位
  9. 探索职场真我---“DISC测评”
  10. JS - 捕获打印窗口关闭事件