使用arduino驱动光驱步进电机
今日偶尔得到光驱电机一个,经查为一个两项四线步进电机一个,由于电机驱动电流较小,经过一天论证试验,采用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驱动光驱步进电机相关推荐
- arduino 步进电机驱动库_一文看懂arduino驱动uln2003操作步进电机的方法
arduino驱动uln2003操作步进电机的方法 1.网上买的步进电机,很多接线顺序都不对.经过不懈努力查资料,终于找到了能用的接线方式: 电机上的12345针脚,对应着接线端子的42135. 2. ...
- Arduino 调用Stepper库驱动28BYJ-48步进电机,电机振动不转、无法反方向转的解决办法
电机堵转 首先检查杜邦线是否正常联通,如GND线接触不良,电机也会导通,但无法正常工作. 检查Arduino和驱动板接线是否正确,正确硬件接线如下图,即板子IO 8.9.10.11分别对应 驱动IN ...
- Arduino CNC电机扩展板详解(A4988驱动42步进电机)
原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/ ...
- Arduino驱动L298N控制直流电机的正反转和调速
Arduino驱动L298N控制直流电机的正反转和调速 一.前言 二.产品参数 三.驱动直流电机 三.接线图 四.程序 五.实验结果 总结 一.前言 本模块使用ST公司的L298N作为主驱动芯片,具有 ...
- Arduino单片机控制步进电机,关于步进电机的细分
关于步进电机的细分 查询的资料说:增加细分数并不能增加力矩.但是,细分后会运行更平稳,减少低频振动和噪声.驱动器输出的工作电流越大,力矩越大.转速越快,工作电流会减小越快,力矩也会减小越快.建议步进电 ...
- 解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题
解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题 date: 2021-09-19 lastmod: 2021-09-19 问题描述 Esp 32 在 mqtt 消息下通过 Ste ...
- Arduino-TB6600驱动42步进电机
设计者:STCode (公众号同名) Arduino控制42 步进电机 串口控制旋转位置 1)描述 42步进电机的驱动方式有多种,例如用A4988步进电机模块,这次我们使用TB6600驱动器驱动一个4 ...
- A4988驱动NEMA步进电机(42步进电机)
A4988驱动NEMA步进电机(42步进电机) 原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-in ...
- 树莓派入门(八)之树莓派与A4988 驱动42步进电机
在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机.当然,这里我还是以arduino为例,但是会给出树莓派的代码. ...
最新文章
- JS-DOM-元素节点
- 图解NHibernate项目框架
- 使用关指定中断解决资源冲突问题
- Facebook这次开源的代码名为“Big Sur”,
- 覆盖 19 个城市,19,000 个样本,零售业深度研究报告发布
- python 列表比较不同物质的吸热能力_python列表里面根据一定的条件挑选元素
- 安卓系统通过陀螺仪计算当前坐标(焦点位置)
- oracle恢复RAC到单机
- linux 网络有关的5个命令
- Python字典(二)
- factory setup 序列号_麻烦哪位大侠帮我把改一下setup factory 中生成16位注册码的脚本,(在线等)急!!!...
- 诚龙网刻报错_诚龙网刻图文教程
- pycharm 输入法光标跟随
- 圆柱体积计算机公式,圆柱的体积计算公式是什么 怎么计算
- windows输入法输入英文字母中间有空格
- 电子书管理软件Calibre使用
- 【java】输入一个数输出它的绝对值
- LeetCode 561 Array Partition I(数组划分)
- 解谜2019文娱产业,猫眼的互联网升级方法论
- 计算机软考网络管理员满分,2016年计算机软考网络管理员必做试题