当前位置: 首页 > news >正文

arduino 步进电机控制程序示例

注意下面Stepper steppermotor(STEPS_PER_ROTOR_REV, 8, 10, 9, 11);这句话有坑,并不是按顺序的。

#include<Stepper.h>
 
// 定义电机控制用常量
 
// 电机内部输出轴旋转一周步数
const int STEPS_PER_ROTOR_REV = 32; 
 
//  减速比
const int GEAR_REDUCTION = 64;
 
/*
 * 转子旋转一周需要走32步。转子每旋转一周,电机输出轴只旋转1/64周。
 * (电机内部配有多个减速齿轮,这些齿轮会的作用是让转子每旋转一周,
 * 输出轴只旋转1/64周。)
 * 因此电机输出轴旋转一周则需要转子走32X64=2048步,即以下常量定义。
*/
 
// 电机外部输出轴旋转一周步数 (2048)
const float STEPS_PER_OUT_REV = STEPS_PER_ROTOR_REV * GEAR_REDUCTION;
 
// 定义电机控制用变量
 
// 电机旋转步数
int StepsRequired;
 
// 建立步进电机对象
// 定义电机控制引脚以及电机基本信息。
// 电机控制引脚为 8,9,10,11 
// 以上引脚依次连接在ULN2003 驱动板 In1, In2, In3, In4 
 
Stepper steppermotor(STEPS_PER_ROTOR_REV, 8, 10, 9, 11); 
 
void setup()
{
//setup函数内无内容
}
 
void loop()
{
  // 极慢转动4步用于观察ULN2003电机驱动板LED变化
  steppermotor.setSpeed(1);    
  StepsRequired  =  4;
  steppermotor.step(StepsRequired);
  delay(1000);
 
   // 慢速顺时针旋转一圈
  StepsRequired  =  STEPS_PER_OUT_REV; 
  steppermotor.setSpeed(500);   
  steppermotor.step(StepsRequired);
  delay(1000);
  
  // 快速逆时针旋转一圈
  StepsRequired  =  - STEPS_PER_OUT_REV;   
  steppermotor.setSpeed(800);  
  steppermotor.step(StepsRequired);
  delay(2000);
 
}

相关文章:

  • arduino AccelStepper库 控制步进电机的示例
  • P1598 垂直柱状图
  • P1914 小书童——密码
  • P1028 数的计算
  • EEPROM、EPROM、FLASH、SRAM、DRAM、SDRAM的区别
  • P1063选数
  • P1149 火柴棒等式
  • 非常规的变量交换里的坑
  • P3366 最小生成树
  • P1177 快速排序
  • Arduino 控制小车转动程序
  • Arduino 超声波模块测距 示例程序
  • 从位式控制算法到PID算法
  • P1618 三连击(升级版)
  • P1579 哥德巴赫猜想(升级版)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • ES6 ...操作符
  • Java教程_软件开发基础
  • Nodejs和JavaWeb协助开发
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SpringCloud集成分布式事务LCN (一)
  • yii2权限控制rbac之rule详细讲解
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 十年未变!安全,谁之责?(下)
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 栈实现走出迷宫(C++)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (笔试题)分解质因式
  • (七)Knockout 创建自定义绑定
  • (一)基于IDEA的JAVA基础1
  • (译)2019年前端性能优化清单 — 下篇
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .Net 6.0 处理跨域的方式
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net FrameWork总结
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 程序发生了一个不可捕获的异常
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .net专家(张羿专栏)
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @RunWith注解作用
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • []串口通信 零星笔记
  • [BZOJ2208][Jsoi2010]连通数
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [C#7] 1.Tuples(元组)
  • [CF494C]Helping People
  • [ffmpeg] x264 配置参数解析
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页
  • [IE编程] 如何获得IE版本号
  • [Java][Android][Process] 暴力的服务能够解决一切,暴力的方式运行命令行语句