树莓派入门(三)之步进电机控制
树莓派这个东西,一定要亲自动手玩一玩,多实践。所以,我打算录几期视频带大家动手做一做东西。估计要等到下半年,因为目前宿舍地方有限。
上一次我们说到了如何控制超声波传感器,这一次我们来介绍一下如何控制步进电机。
这里,我以arduino为例驱动步进电机,同样我会给出树莓派的驱动代码。
28BYJ48步进电机的详细参数网上百度一下就知道了。
这里有三种减速比:分别是1:16,1:64,1:32,我感觉我手中拿着的是1:32的,因为网上大家都说是4096步转一圈,而我实验发现是2048步转一圈。
一、首先弄明白什么是:四拍,双四拍,八拍。
四拍是说步进电机A,B,C,D四组线圈的通电时序,四拍的驱动正转通电顺序为A-B-C-D-A-B-C-D-A-……循环往复,-A-B-C-D-四拍为一个循环周期。双四拍的通电时序为AB-BC-CD-DA-AB-BC-CD-DA-...…,-AB-BC-CD-DA-四拍为一个循环周期。相对应的还有八拍的通电时序,A-AB-B-BC-C-CD-D-DA-A。
具体的arduino代码如下:
int flag=1;void setup() {// put your setup code here, to run once:for(int i=2;i<=5;i++){pinMode(i,OUTPUT);}
}
void loop() {// put your main code here, to run repeatedly:if(flag==1){for(int i=0;i<512;i++){Coil_A1();delay(5);Coil_B1();delay(5);Coil_C1();delay(5);Coil_D1();delay(5);}flag=0;}
}void Coil_A1()
{digitalWrite(2,HIGH);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,LOW);
}
void Coil_B1()
{digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,LOW);digitalWrite(5,LOW);
}
void Coil_C1()
{digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,HIGH);digitalWrite(5,LOW);
}
void Coil_D1()
{digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,HIGH);
}
下面我来解释一下:
电机是64步/圈,每步360° / 64 = 5.625°,出来还有1 / 32减速箱,所以是64 * 32 = 2048步/圈。
每一次for循环都是步进电机内部转了一圈,也就是4步(注意是内部,看看上一篇拆机就懂啦),外面实际我们看到的只动了5.625°*4=22.5°,然而这个时候,用时是5*4=20ms,所以根据这个我们可以推算出步进电机转一圈需要10.24秒(这里的一圈指的是我们所能观察到的),具体的算法是:每步耗时5ms,一共2048步,也就是耗时10240ms,所以也就是10.24s(秒)。
不知道大家用的步进电机是不是1:32的,如果你是1:64的那就把上面i<512改为i<1024,这样也是转一圈,具体怎么算我想你应该会了吧。
如果还是不会,那就请多思考和多实验几次。
树莓派的代码如下:
#include <stdio.h>
#include <wiringPi.h>void init();
void Coil_A1();
void Coil_B1();
void Coil_C1();
void Coil_D1();
void Coil_OFF();int main()
{init();for(int i=0;i<512;i++){Coil_A1();delay(5);Coil_B1();delay(1500);Coil_C1();delay(5);Coil_D1();delay(5);}return 0;
}void init()
{wiringPiSetup();for(int i=22;i<=25;i++){pinMode(i,OUTPUT);}
}void Coil_A1()
{digitalWrite(22,HIGH);digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,LOW);
}
void Coil_B1()
{digitalWrite(22,LOW);digitalWrite(23,HIGH);digitalWrite(24,LOW);digitalWrite(25,LOW);
}
void Coil_C1()
{digitalWrite(22,LOW);digitalWrite(23,LOW);digitalWrite(24,HIGH);digitalWrite(25,LOW);
}
void Coil_D1()
{digitalWrite(22,LOW);digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,HIGH);
}
void Coil_OFF()
{digitalWrite(22,LOW);digitalWrite(23,LOW);digitalWrite(24,LOW);digitalWrite(25,LOW);
}
欢迎关注我们的公众号,本人知识能力有限,如果文章中有错误的地方欢迎向我反馈或者留言,十分感谢!
树莓派入门(三)之步进电机控制相关推荐
- 树莓派入门(八)之树莓派与A4988 驱动42步进电机
在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机.当然,这里我还是以arduino为例,但是会给出树莓派的代码. ...
- 【树莓派入门】实验一 树莓派基本配置(基于Python)
[树莓派入门]初学树莓派(实验一 树莓派基本配置(基于Python) 一 格式化 SD 卡 二 下载官方镜像 三 烧录 SD 卡 四 Putty 连接 4.1 设置网络共享 4.2 查询树莓派的 IP ...
- 【2018】使用CD4013,CD4017,CD4053模拟三项步进电机
想必大家小时候都玩过磁铁,两个磁铁的同极靠近彼此产生一个斥力,两个磁铁的异极靠近彼此,产生一个引力,步进电机用的便是这个原理,只是将其中的一个磁铁换成电磁铁,然后将磁铁们做成弧形,最终形成一个圆筒,三 ...
- 树莓派入门萌新快速上手指南
树莓派入门第一步:购买一个树莓派 文末有我分享的关于树莓派的资料以及系统镜像,里面有我在文中提到的系统和软件. 树莓派又称卡牌电脑,可外接显示器,键盘,鼠标,相信既然大家都打算买树莓派了,那肯定是已经 ...
- 基于ESP8266WiFi步进电机控制
■ 步进平台驱动模块 在 基于ESP8266WiFi控制的不仅升降机械平台 介绍了该机械平台的特性和支持命令,但还存在一下两部分内容需要改造: 在步进电机控制的升降平台运动过程中,两端的极限位置没有能 ...
- 【STM32 .Net MF开发板学习-11】步进电机控制(非PWM模式)
选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用 uln2003芯片的驱动板,其控制时序图如下: 四相八拍:A->AB->B ->BC - ...
- 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
为什么80%的码农都做不了架构师?>>> 本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...
- .Net 3.5 Remoting编程入门三
VS2008 .Net 3.5 Remoting编程入门三 信道 什么是信道?信道有哪些类型呢? 信道顾名思意就是通信的通道.就想那些宣传标语说的,"要想富,先修路!".同理,要学 ...
- vue(vue-cli+vue-router)+babel+webpack项目搭建入门(三)
vue(vue-cli+vue-router)+babel+webpack项目搭建入门<三> 本系列文章将介绍基于vue+webpack的前端项目的构建过程.文章分为四章内容,第一章介绍开 ...
- 松下伺服电机pwm控制连线_从零打造树莓派家庭监控 (一): 伺服电机控制
本文首发自我的博客 MikeTech 现在很多家庭喜欢购买一个摄像头来监控家里的情况,但是往往却无法了解购买第三方摄像头的安全性,摄像头泄露的新闻也每过一段时间就会出现在人们的视野当中.如果购买的摄像 ...
最新文章
- 微信服务通知消息找回_第三方平台微信服务号模板消息怎么发送
- 同一个类 cannot be cast to_2021年动漫类年历推荐
- unity2019,打包APK时的gradle错误问题
- Caffe中Interp层的使用
- NopCommerce用.net core重写ef
- STM32 Flash详解
- python将数值进行关联_小疯谈python:(三)数据类型之数值类型
- java规范 控制语句
- java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】
- 在VIM中使用GDB调试 – 使用pyclewn
- vue: table制作发货单表格并打印
- mapgis注释文字文件完整转换成arcgis格式注记shp 2019视频教程
- 使用GDAL库读取SRTM格式的高程数据
- jQuery,JS实现自定义鼠标右键菜单
- theano java_Windows Theano GPU 版配置
- Java的第一个你好世界
- 瀚高数据库适配定时框架Quartz
- 我的世界服务器修改spawn,《我的世界》1.8命令方块原版/spawn指令教程
- 计算机丢失UxTheme无法修复,Win7开机遇到uxtheme.dll丢失无法进入桌面怎么解决
- Meta AI西雅图研究负责人Luke Zettlemoyer|万亿参数后,大模型会持续增长吗?