今日偶尔得到光驱电机一个,经查为一个两项四线步进电机一个,由于电机驱动电流较小,经过一天论证试验,采用arduino来模仿步进电机驱动器来实现此步进电机的驱动。

将四个引脚引出导线,用万用表确定两个线圈。连接arduino,如下图:


确定供电顺序,由于是两项四线制,根据步进电机原理供电过程如下;
1)A相(D8,D9端口) D8 ON ,D9 OFF
2)B相(D10,D11口)D10 ON ,D11 OFF
3)A相(D8,D9端口) D8 OFF ,D9 ON
4)B相(D10,D11口)D10 OFF ,D11 ON

示意波形如下:
由于示波器只有两个通道,无法监控四通道所以下图仅为(D8,D9)端口波形
每个相位完成后,关闭所有输出
如此循环,即可驱动电机。若要改变电机旋转方向,对调D8,D9或D10,D11任意一对即可。
程序如下:


int phaseone_go=8;     //线圈1前进(IN2)
int phaseone_back=9;     //线圈1后退(IN1)int phasetwo_go=10;    // 线圈2前进(IN3)
int phasetwo_back=11;    // 线圈2后退(IN4)
int freq=10;void setup()
{pinMode(phaseone_go,OUTPUT);pinMode(phaseone_back,OUTPUT); pinMode(phasetwo_go,OUTPUT);pinMode(phasetwo_back,OUTPUT);}void loop()
{//由于没有找到合适的步进电机驱动器,本文采用端口直接输出//由于光驱电机功率较小,5V,20-40ma可以缓慢旋转,启动时有时需要辅助一下//若要高速旋转则需采用合适的步进电机驱动器testCWCCW();
}
void testCWCCW()
{//若进行旋转方向改变,将线圈1,线圈2任意一对信号对调即可digitalWrite(phaseone_go,HIGH);  // 线圈1前进digitalWrite(phaseone_back,LOW);delay(freq);allsigoff();digitalWrite(phasetwo_go,HIGH);  // 线圈1前进digitalWrite(phasetwo_back,LOW);delay(freq);allsigoff();digitalWrite(phaseone_go,LOW);  // 线圈2前进digitalWrite(phaseone_back,HIGH);    delay(freq);allsigoff();digitalWrite(phasetwo_go,LOW);  // 线圈2前进digitalWrite(phasetwo_back,HIGH);    delay(freq);allsigoff();
}//关闭所有输出,进行延时
void allsigoff()
{digitalWrite(phaseone_go,LOW);  // 线圈2前进digitalWrite(phaseone_back,LOW);    digitalWrite(phasetwo_go,LOW);  // 线圈2前进digitalWrite(phasetwo_back,LOW);  delay(2*freq);
}```c
在这里插入代码片

效果如下:

使用arduino驱动光驱步进电机相关推荐

  1. arduino 步进电机驱动库_一文看懂arduino驱动uln2003操作步进电机的方法

    arduino驱动uln2003操作步进电机的方法 1.网上买的步进电机,很多接线顺序都不对.经过不懈努力查资料,终于找到了能用的接线方式: 电机上的12345针脚,对应着接线端子的42135. 2. ...

  2. Arduino 调用Stepper库驱动28BYJ-48步进电机,电机振动不转、无法反方向转的解决办法

    电机堵转 首先检查杜邦线是否正常联通,如GND线接触不良,电机也会导通,但无法正常工作. 检查Arduino和驱动板接线是否正确,正确硬件接线如下图,即板子IO 8.9.10.11分别对应 驱动IN ...

  3. Arduino CNC电机扩展板详解(A4988驱动42步进电机)

    原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/ ...

  4. Arduino驱动L298N控制直流电机的正反转和调速

    Arduino驱动L298N控制直流电机的正反转和调速 一.前言 二.产品参数 三.驱动直流电机 三.接线图 四.程序 五.实验结果 总结 一.前言 本模块使用ST公司的L298N作为主驱动芯片,具有 ...

  5. Arduino单片机控制步进电机,关于步进电机的细分

    关于步进电机的细分 查询的资料说:增加细分数并不能增加力矩.但是,细分后会运行更平稳,减少低频振动和噪声.驱动器输出的工作电流越大,力矩越大.转速越快,工作电流会减小越快,力矩也会减小越快.建议步进电 ...

  6. 解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题

    解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题 date: 2021-09-19 lastmod: 2021-09-19 问题描述 Esp 32 在 mqtt 消息下通过 Ste ...

  7. Arduino-TB6600驱动42步进电机

    设计者:STCode (公众号同名) Arduino控制42 步进电机 串口控制旋转位置 1)描述 42步进电机的驱动方式有多种,例如用A4988步进电机模块,这次我们使用TB6600驱动器驱动一个4 ...

  8. A4988驱动NEMA步进电机(42步进电机)

    A4988驱动NEMA步进电机(42步进电机) 原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-in ...

  9. 树莓派入门(八)之树莓派与A4988 驱动42步进电机

    在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机.当然,这里我还是以arduino为例,但是会给出树莓派的代码. ...

最新文章

  1. JS-DOM-元素节点
  2. 图解NHibernate项目框架
  3. 使用关指定中断解决资源冲突问题
  4. Facebook这次开源的代码名为“Big Sur”,
  5. 覆盖 19 个城市,19,000 个样本,零售业深度研究报告发布
  6. python 列表比较不同物质的吸热能力_python列表里面根据一定的条件挑选元素
  7. 安卓系统通过陀螺仪计算当前坐标(焦点位置)
  8. oracle恢复RAC到单机
  9. linux 网络有关的5个命令
  10. Python字典(二)
  11. factory setup 序列号_麻烦哪位大侠帮我把改一下setup factory 中生成16位注册码的脚本,(在线等)急!!!...
  12. 诚龙网刻报错_诚龙网刻图文教程
  13. pycharm 输入法光标跟随
  14. 圆柱体积计算机公式,圆柱的体积计算公式是什么 怎么计算
  15. windows输入法输入英文字母中间有空格
  16. 电子书管理软件Calibre使用
  17. 【java】输入一个数输出它的绝对值
  18. LeetCode 561 Array Partition I(数组划分)
  19. 解谜2019文娱产业,猫眼的互联网升级方法论
  20. 计算机软考网络管理员满分,2016年计算机软考网络管理员必做试题

热门文章

  1. 怎么把qlv格式转换成mp4?快速转换qlv格式的方法
  2. dw选项卡代码_dreamweaver cs6快捷注释方法
  3. 一千万数据,怎么快速查询
  4. 全网最通俗易懂的 Self-Attention自注意力机制 讲解
  5. 复合牛奶的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. HTML无序列表四大名著
  7. 第七章·【第一次上岗:核桃编程】
  8. 跟着我学习 AI丨语音识别:将语音转为数字信号
  9. 用DIV+CSS技术设计的游戏企业网页(网页制作课作业)
  10. 东华大学专业英语 词汇学习