使用Arduino+L298N控制光驱两项四线步进电机

一、所需配件

  1. Arduino 开发板 x1

  2. L298N步进电机驱动模块 x2

  3. 5V电源模块 x1

  4. 12V电源 x2

  5. 杜邦线(公对母) x15

  6. 其他铜导线 x10

  7. 红波按钮 x1

  8. 光驱步进电机 x2

  9. 激光头 x1


二、步进电机与L298N接线说明

  1. 电机按下图摆放,4根线依次命名1、2、3、4

  2. L298N模块按下图摆放,电机的1、2、3、4分别与L298N的1、2、3、4相对应


三、L298N与Arduino开发板接线说明

  1. 将第一块L298N的IN1~IN4分别连接Arduino的2、3、4、5,如下图:

  2. 第二块L298N同理,IN1~IN4分别连接Arduino的6、7、8、9,如下图:


四、激光头与Arduino接线说明

  1. 激光头有三根线,分别标号1、2、3,其中1为电源正极,2为电源负极,3为信号控制,如图:

  2. 将1电源正极接入Arduino的5V,2接Arduino的GND,3接Arduino的10,如图:


五、红波按钮与Arduino接线说明

  1. 红波按钮未到,暂未调试……
  2. 将普通开关的其中一条线接入Arduino12号引脚,另一根线与GND相连

六、控制代码

已烧制,运维人员无需关心

int IN1 = 2; //定义L298N-1控制引脚
int IN2 = 3;
int IN3 = 4;
int IN4 = 5;int IN5 = 6; //定义L298N-2控制引脚
int IN6 = 7;
int IN7 = 8;
int IN8 = 9;
int switchPin = 12;   // 开关引脚
int ledPin = 10;      // 激光灯引脚
int waitTime = 40;    // 电机转动速度
int moveLen = 10;     // 移动长度
int ledLight = 255;   // 激光头亮度值 0~255
void setup() {pinMode(IN1, OUTPUT);pinMode(IN2, OUTPUT);pinMode(IN3, OUTPUT);pinMode(IN4, OUTPUT);pinMode(IN5, OUTPUT);pinMode(IN6, OUTPUT);pinMode(IN7, OUTPUT);pinMode(IN8, OUTPUT);pinMode(switchPin, INPUT_PULLUP);  //使用该内部上拉电阻Serial.begin(9600);
}void loop() {int switchStatus = digitalRead(switchPin);if (switchStatus == LOW) {// 开关被按下,激光灯亮起,电机正转然后反转,激光灯熄灭analogWrite(ledPin, ledLight);for(int i = 0; i < moveLen; i++) {go(); }for(int i = 0; i < moveLen; i++) {back(); }analogWrite(ledPin, 0);}}void go() {digitalWrite(IN2, HIGH);delay(waitTime);cleanOne();digitalWrite(IN4, HIGH);delay(waitTime);cleanOne();digitalWrite(IN1, HIGH);delay(waitTime);cleanOne();digitalWrite(IN3, HIGH);delay(waitTime);cleanOne();  // 控制第二个电机digitalWrite(IN6, HIGH);delay(waitTime);cleanTwo();digitalWrite(IN8, HIGH);delay(waitTime);cleanTwo();digitalWrite(IN5, HIGH);delay(waitTime);cleanTwo();digitalWrite(IN7, HIGH);delay(waitTime);cleanTwo();
}void back() {digitalWrite(IN3, HIGH);delay(waitTime);cleanOne();  digitalWrite(IN1, HIGH);delay(waitTime);cleanOne();digitalWrite(IN4, HIGH);delay(waitTime);cleanOne();digitalWrite(IN2, HIGH);delay(waitTime);cleanOne();// 控制第二个电机digitalWrite(IN7, HIGH);delay(waitTime);cleanTwo();  digitalWrite(IN5, HIGH);delay(waitTime);cleanTwo();digitalWrite(IN8, HIGH);delay(waitTime);cleanTwo();digitalWrite(IN6, HIGH);delay(waitTime);cleanTwo();
}void cleanOne() {digitalWrite(IN1, LOW);digitalWrite(IN2, LOW);digitalWrite(IN3, LOW);digitalWrite(IN4, LOW);
}void cleanTwo() {digitalWrite(IN5, LOW);digitalWrite(IN6, LOW);digitalWrite(IN7, LOW);digitalWrite(IN8, LOW);
}

七、运行效果

预览效果


八、实物图

使用Arduino+L298N控制光驱两项四线步进电机相关推荐

  1. 两相四线步进电机的驱动方法/驱动芯片用法

    目录 一.基本概念说明: 1.电机原理: 2.步进电机概念名词: 3.驱动芯片 4.调试总结: 概述 说明:本文主要说明一下使用驱动芯片驱动两相四线步进电机. 关联关键词:如何驱动步进电机/步进电机驱 ...

  2. 两相四线步进电机与LMD18200驱动器与电机加速减速

    两相四线步进电机 1.工作功率条件 电压12V直流电流,静态电流<0.5A(测试为0.032A)功,恒压工作电流是0.7-1.1A,功率=8.4W-13.2W. 横流0.24-0.28A之间,电 ...

  3. 两相四线步进电机C语言程序,求大神帮忙看单片机控制两相四线步进电机的程序!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define uchar unsigned char #define uint unsigned int uchar code tim ...

  4. 【芯片介绍】两相四线步进电机驱动芯片SMG42630

    目录 1. 引脚功能介绍 2. 逻辑驱动信号 ​3. 程序实施 3.1 前期准备 4. 全速模式下实验 ​5. 八倍细分实验 6. 通信协议格式分析 7. STM32CobeProgramer读取芯片 ...

  5. tb6600 两相四线步进电机相关参数计算关系

    假设细分数为16细分 ,步距角为1.8°,则每个脉冲产生的电机转动角度为 1.8°/16 = 0.1125°. 电机转 一圈所需的脉冲数量为 S 360°/0.1125° = 3200个脉冲. 同理求 ...

  6. 两相四线步进电机时序

    一 八拍 八个状态: 1 给A与A-正电压,B与B-不给电压: 2 给A与A-正电压,给B与B-正电压: 3 A与A-不给电压,给B与B-正电压: 4 给A与A-负电压,给B与B-正电压: 5 给A与 ...

  7. 【电机应用控制】——步进电机控制原理(四相五线/两相四线/细分驱动)驱动器梯形/S形加减速算法直线/圆弧插补

    目录 一.步进电机简介 二.步进电机控制原理 1.四相五线 2.两相四线 3.细分驱动 三.步进电机驱动器 四.梯形加减速算法 五.S形加减速算法 六.直线插补 七.圆弧插补 八.步进电机闭环系统(位 ...

  8. 利用Arduino+TB6600驱动模块控制两相四线42减速步进电机

    实验目的:利用Arduino+TB6600驱动模块控制两相四线42减速步进电机 材料: Arduino Nano   *1 TB6600驱动器  *1 42减速步进电机*1 面包板           ...

  9. Arduino教程-09.L298N控制直流电机(避障小车)

    目录 3.1 电机 3.2 控制直流电机 PWM – 控制速度 H桥 – 控制转动方向 L298N 电机驱动芯片 技术规格 L298N 电机驱动器模块引脚排列 电源引脚 输出引脚 方向控制引脚 速度控 ...

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

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

最新文章

  1. QuartZ.net 常用配置说明
  2. arp病毒利用的Javascript技术
  3. c#: using Microsoft.Office.Interop.Excel 异常
  4. 因特网人群信息的应用-通过人群性格特点投放定制广告
  5. mount failed: mount failed: exit status 1
  6. 微电子电路——例题总结
  7. 统一认证 ldap mysql_Centos7 Ldap统一认证部署
  8. C# 创建 Word 并另存为PDF格式
  9. UE 5_可交互的门
  10. 操作系统13章(个人笔记)
  11. Kotlin 笔记 纯属娱乐萌新大佬绕道
  12. 自由职业一时爽,一直自由一直爽
  13. vue 中使用$refs,报this.$refs.xxx.xxx() is not a function
  14. 四大主流CA机构——国产占据其一
  15. 同样诞生于顶尖大学,一个市值千亿,一个曾经仅次腾讯百度,如今却。。。...
  16. C语言 编一程序,从键盘输入一个实数,输出其绝对值。
  17. Pandas 数据结构
  18. Oracle数据库(二)多表联合查询
  19. 重阳节[转自百度]---又到重阳节了
  20. luogu 3618 误会 关于字符串Hash

热门文章

  1. 学会忘记其实是一种美德
  2. 什么是POE交换机?POE交换机的作用
  3. ai怎么渐变颜色_AI的渐变工具为什么如此难用?
  4. 用 BusyBox 构建根文件系统
  5. php汉字转拼音插件,PHP中文转拼音优质解决方案-composer转拼音第三方插件-爱测速网...
  6. 南京大学计算机系2019复试离散题目-逻辑与推理
  7. scrapy 抓取 google play 应用信息
  8. zmq Pub-Sub 模式
  9. Word文档怎么删除html标签,word删除指定页面
  10. 计算机网易云不能一键升级音质,网易云电脑版怎么调音效(一览网易云音效最佳调节技巧)...