分享

arduino学习笔记17

 小烧猪的天空 2019-01-06
步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。你可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时你也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

下面这个就是本次实验使用的步进电机




工业使用的步进电机与本次实验使用的不同,下面图式两种不同款式的工业用步进电机



使用步进电机前一定要仔细查看说明书,确认是四相还是两相,各个线怎样连接,本次实验使用的步进电机是四相的,不同颜色的线定义如下图:



下面是电机的端口结构图,1,3为一组,2,4为一组,5号是共用的VCC。



因本次使用的步进电机功率很小,所以可以直接使用一个ULN2003芯片进行驱动,如果是大功率的步进电机,是需要对应的驱动板的。



ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。可以用来驱动步进电机。

其结构图如下




硬件连接图如下





把代码下载到arduino控制板中看看效果ARDUINO 代码复制打印

  • /*
  • * 步进电机跟随电位器旋转
  • * (或者其他传感器)使用0号模拟口输入
  • * 使用arduino IDE自带的Stepper.h库文件
  • */
  • #include <Stepper.h>
  • // 这里设置步进电机旋转一圈是多少步
  • #define STEPS 100
  • // attached to设置步进电机的步数和引脚
  • Stepper stepper(STEPS, 8, 9, 10, 11);
  • // 定义变量用来存储历史读数
  • int previous = 0;
  • void setup()
  • {
  •   // 设置电机每分钟的转速为90步
  •   stepper.setSpeed(90);
  • }
  • void loop()
  • {
  •   // 获取传感器读数
  •   int val = analogRead(0);
  •   // 移动步数为当前读数减去历史读数
  •   stepper.step(val - previous);
  •   // 保存历史读数
  •   previous = val;
  • }

附件为ULN2003A说明文档
uln2003a.pdf (809.67 KB, 下载次数: 1064)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多