当前位置:   article > 正文

STC89C52之直流电机 ----自学笔记_stc89c52rc直流电机连接位置

stc89c52rc直流电机连接位置

一、什么是直流电机

1.1、直流电机简述

  1. 直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转化成直流电能(直流发电机)的旋转电机。
  2. 它能实现直流电能和机械能相互转换的电机。
  3. 当它作电动机运行时直流电动机,将电能转化为机械能;作发电机运行时是直流发电机,将机械能转化为电能。

1.2、本单片机中直流电机的组成

二、ULN2003 芯片

2.1、简述

  1. ULN2003 是一个单片高电压高电流的达林顿晶体管阵列集成电路
  2. 它是由 7 对 NPN 达林顿管组成它的高电压输出特性和阴极箝位二极管可以转换感应负载。

 

       从上图可以很容易理解该芯片的使用方法,其内部实际上就相当于非门 电路,即 输入高输出为低,输入低输出高 。 若使用该芯片驱动直流电机,只可实 现单方向控制 ,电机一端接电源正极,另一端接芯片的输出口。若想控制五线四相步进电机,则可将四路输出接到 步进电机的四相上,电机另一条线接电源正。
 

2.2、特点

 

  1. 500mA 额定集电极电流(单个输出
  2. 高电压输出:50V
  3. 输入和各种逻辑类型兼容
  4. 继电器驱动器

2.3、原理图

三、代码

3.1、让电机一直旋转

  1. #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
  2. #include<intrins.h> //因为要用到左右移函数,所以加入这个头文件
  3. typedef unsigned int u16; //对数据类型进行声明定义
  4. typedef unsigned char u8;
  5. sbit moto=P1^0;
  6. /*******************************************************************************
  7. * 函 数 名 : delay
  8. * 函数功能 : 延时函数,i=1时,大约延时10us
  9. *******************************************************************************/
  10. void delay(u16 i)
  11. {
  12. while(i--);
  13. delay(1000); // 递归:函数字节调用字节 使电机一直工作
  14. }
  15. void main()
  16. {
  17. u8 i;
  18. moto=0; //关闭电机
  19. for(i=0;i<100;i++) //循环100次,也就是大约5S
  20. {
  21. moto=1; //开启电机
  22. delay(1000); //大约延时50ms
  23. }
  24. moto=0; //关闭电机
  25. while(1)
  26. {
  27. }
  28. }

3.2、电机旋转5s

  1. #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
  2. #include<intrins.h> //因为要用到左右移函数,所以加入这个头文件
  3. typedef unsigned int u16; //对数据类型进行声明定义
  4. typedef unsigned char u8;
  5. sbit moto=P1^0;
  6. /*******************************************************************************
  7. * 函 数 名 : delay
  8. * 函数功能 : 延时函数,i=1时,大约延时10us
  9. *******************************************************************************/
  10. void delay(u16 i)
  11. {
  12. while(i--); // 递归:函数字节调用字节 使电机一直工作
  13. }
  14. void main()
  15. {
  16. u8 i;
  17. moto=0; //关闭电机
  18. for(i=0;i<100;i++) //循环100次,也就是大约5S
  19. {
  20. moto=1; //开启电机
  21. delay(1000); //大约延时50ms
  22. }
  23. moto=0; //关闭电机
  24. while(1)
  25. {
  26. }
  27. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/717922
推荐阅读
相关标签
  

闽ICP备14008679号