树莓派这个东西,一定要亲自动手玩一玩,多实践。所以,我打算录几期视频带大家动手做一做东西。估计要等到下半年,因为目前宿舍地方有限。

上一次我们说到了如何控制超声波传感器,这一次我们来介绍一下如何控制步进电机。

这里,我以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);
}

欢迎关注我们的公众号,本人知识能力有限,如果文章中有错误的地方欢迎向我反馈或者留言,十分感谢!

树莓派入门(三)之步进电机控制相关推荐

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

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

  2. 【树莓派入门】实验一 树莓派基本配置(基于Python)

    [树莓派入门]初学树莓派(实验一 树莓派基本配置(基于Python) 一 格式化 SD 卡 二 下载官方镜像 三 烧录 SD 卡 四 Putty 连接 4.1 设置网络共享 4.2 查询树莓派的 IP ...

  3. 【2018】使用CD4013,CD4017,CD4053模拟三项步进电机

    想必大家小时候都玩过磁铁,两个磁铁的同极靠近彼此产生一个斥力,两个磁铁的异极靠近彼此,产生一个引力,步进电机用的便是这个原理,只是将其中的一个磁铁换成电磁铁,然后将磁铁们做成弧形,最终形成一个圆筒,三 ...

  4. 树莓派入门萌新快速上手指南

    树莓派入门第一步:购买一个树莓派 文末有我分享的关于树莓派的资料以及系统镜像,里面有我在文中提到的系统和软件. 树莓派又称卡牌电脑,可外接显示器,键盘,鼠标,相信既然大家都打算买树莓派了,那肯定是已经 ...

  5. 基于ESP8266WiFi步进电机控制

    ■ 步进平台驱动模块 在 基于ESP8266WiFi控制的不仅升降机械平台 介绍了该机械平台的特性和支持命令,但还存在一下两部分内容需要改造: 在步进电机控制的升降平台运动过程中,两端的极限位置没有能 ...

  6. 【STM32 .Net MF开发板学习-11】步进电机控制(非PWM模式)

    选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用 uln2003芯片的驱动板,其控制时序图如下: 四相八拍:A->AB->B ->BC - ...

  7. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    为什么80%的码农都做不了架构师?>>>    本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...

  8. .Net 3.5 Remoting编程入门三

    VS2008 .Net 3.5 Remoting编程入门三 信道 什么是信道?信道有哪些类型呢? 信道顾名思意就是通信的通道.就想那些宣传标语说的,"要想富,先修路!".同理,要学 ...

  9. vue(vue-cli+vue-router)+babel+webpack项目搭建入门(三)

    vue(vue-cli+vue-router)+babel+webpack项目搭建入门<三> 本系列文章将介绍基于vue+webpack的前端项目的构建过程.文章分为四章内容,第一章介绍开 ...

  10. 松下伺服电机pwm控制连线_从零打造树莓派家庭监控 (一): 伺服电机控制

    本文首发自我的博客 MikeTech 现在很多家庭喜欢购买一个摄像头来监控家里的情况,但是往往却无法了解购买第三方摄像头的安全性,摄像头泄露的新闻也每过一段时间就会出现在人们的视野当中.如果购买的摄像 ...

最新文章

  1. 微信服务通知消息找回_第三方平台微信服务号模板消息怎么发送
  2. 同一个类 cannot be cast to_2021年动漫类年历推荐
  3. unity2019,打包APK时的gradle错误问题
  4. Caffe中Interp层的使用
  5. NopCommerce用.net core重写ef
  6. STM32 Flash详解
  7. python将数值进行关联_小疯谈python:(三)数据类型之数值类型
  8. java规范 控制语句
  9. java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】
  10. 在VIM中使用GDB调试 – 使用pyclewn
  11. vue: table制作发货单表格并打印
  12. mapgis注释文字文件完整转换成arcgis格式注记shp 2019视频教程
  13. 使用GDAL库读取SRTM格式的高程数据
  14. jQuery,JS实现自定义鼠标右键菜单
  15. theano java_Windows Theano GPU 版配置
  16. Java的第一个你好世界
  17. 瀚高数据库适配定时框架Quartz
  18. 我的世界服务器修改spawn,《我的世界》1.8命令方块原版/spawn指令教程
  19. 计算机丢失UxTheme无法修复,Win7开机遇到uxtheme.dll丢失无法进入桌面怎么解决
  20. Meta AI西雅图研究负责人Luke Zettlemoyer|万亿参数后,大模型会持续增长吗?

热门文章

  1. 文旅景区夜游该如何设计项目
  2. html连接sql基本语句,PostgreSQL 常用SQL语句
  3. Revers root
  4. 合振动的初相位推导_大学物理合振动的振动方程怎么求??求A的取值方法及初相位的取值方法 务必详细一些 书上看不懂...
  5. 使用Java蓝牙无线通讯技术API
  6. gaussdb 开源免费版本【包下载、安装部署】【01】
  7. html表格怎么控制文字大小,如何用html设置文本输入框输入字体的大小
  8. JavaScript 部分基础知识点
  9. stm32复用时钟AFIO什么时候开启
  10. 记录打卡假期的学习计划