使用Arduino+L298N控制光驱两项四线步进电机
使用Arduino+L298N控制光驱两项四线步进电机
一、所需配件
Arduino 开发板 x1
L298N步进电机驱动模块 x2
5V电源模块 x1
12V电源 x2
杜邦线(公对母) x15
其他铜导线 x10
红波按钮 x1
光驱步进电机 x2
激光头 x1
二、步进电机与L298N接线说明
电机按下图摆放,4根线依次命名1、2、3、4
L298N模块按下图摆放,电机的1、2、3、4分别与L298N的1、2、3、4相对应
三、L298N与Arduino开发板接线说明
将第一块L298N的IN1~IN4分别连接Arduino的2、3、4、5,如下图:
第二块L298N同理,IN1~IN4分别连接Arduino的6、7、8、9,如下图:
四、激光头与Arduino接线说明
激光头有三根线,分别标号1、2、3,其中1为电源正极,2为电源负极,3为信号控制,如图:
将1电源正极接入Arduino的5V,2接Arduino的GND,3接Arduino的10,如图:
五、红波按钮与Arduino接线说明
- 红波按钮未到,暂未调试……
- 将普通开关的其中一条线接入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.电机原理: 2.步进电机概念名词: 3.驱动芯片 4.调试总结: 概述 说明:本文主要说明一下使用驱动芯片驱动两相四线步进电机. 关联关键词:如何驱动步进电机/步进电机驱 ...
- 两相四线步进电机与LMD18200驱动器与电机加速减速
两相四线步进电机 1.工作功率条件 电压12V直流电流,静态电流<0.5A(测试为0.032A)功,恒压工作电流是0.7-1.1A,功率=8.4W-13.2W. 横流0.24-0.28A之间,电 ...
- 两相四线步进电机C语言程序,求大神帮忙看单片机控制两相四线步进电机的程序!...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define uchar unsigned char #define uint unsigned int uchar code tim ...
- 【芯片介绍】两相四线步进电机驱动芯片SMG42630
目录 1. 引脚功能介绍 2. 逻辑驱动信号 3. 程序实施 3.1 前期准备 4. 全速模式下实验 5. 八倍细分实验 6. 通信协议格式分析 7. STM32CobeProgramer读取芯片 ...
- tb6600 两相四线步进电机相关参数计算关系
假设细分数为16细分 ,步距角为1.8°,则每个脉冲产生的电机转动角度为 1.8°/16 = 0.1125°. 电机转 一圈所需的脉冲数量为 S 360°/0.1125° = 3200个脉冲. 同理求 ...
- 两相四线步进电机时序
一 八拍 八个状态: 1 给A与A-正电压,B与B-不给电压: 2 给A与A-正电压,给B与B-正电压: 3 A与A-不给电压,给B与B-正电压: 4 给A与A-负电压,给B与B-正电压: 5 给A与 ...
- 【电机应用控制】——步进电机控制原理(四相五线/两相四线/细分驱动)驱动器梯形/S形加减速算法直线/圆弧插补
目录 一.步进电机简介 二.步进电机控制原理 1.四相五线 2.两相四线 3.细分驱动 三.步进电机驱动器 四.梯形加减速算法 五.S形加减速算法 六.直线插补 七.圆弧插补 八.步进电机闭环系统(位 ...
- 利用Arduino+TB6600驱动模块控制两相四线42减速步进电机
实验目的:利用Arduino+TB6600驱动模块控制两相四线42减速步进电机 材料: Arduino Nano *1 TB6600驱动器 *1 42减速步进电机*1 面包板 ...
- Arduino教程-09.L298N控制直流电机(避障小车)
目录 3.1 电机 3.2 控制直流电机 PWM – 控制速度 H桥 – 控制转动方向 L298N 电机驱动芯片 技术规格 L298N 电机驱动器模块引脚排列 电源引脚 输出引脚 方向控制引脚 速度控 ...
- Arduino驱动L298N控制直流电机的正反转和调速
Arduino驱动L298N控制直流电机的正反转和调速 一.前言 二.产品参数 三.驱动直流电机 三.接线图 四.程序 五.实验结果 总结 一.前言 本模块使用ST公司的L298N作为主驱动芯片,具有 ...
最新文章
- QuartZ.net 常用配置说明
- arp病毒利用的Javascript技术
- c#: using Microsoft.Office.Interop.Excel 异常
- 因特网人群信息的应用-通过人群性格特点投放定制广告
- mount failed: mount failed: exit status 1
- 微电子电路——例题总结
- 统一认证 ldap mysql_Centos7 Ldap统一认证部署
- C# 创建 Word 并另存为PDF格式
- UE 5_可交互的门
- 操作系统13章(个人笔记)
- Kotlin 笔记 纯属娱乐萌新大佬绕道
- 自由职业一时爽,一直自由一直爽
- vue 中使用$refs,报this.$refs.xxx.xxx() is not a function
- 四大主流CA机构——国产占据其一
- 同样诞生于顶尖大学,一个市值千亿,一个曾经仅次腾讯百度,如今却。。。...
- C语言 编一程序,从键盘输入一个实数,输出其绝对值。
- Pandas 数据结构
- Oracle数据库(二)多表联合查询
- 重阳节[转自百度]---又到重阳节了
- luogu 3618 误会 关于字符串Hash
热门文章
- 学会忘记其实是一种美德
- 什么是POE交换机?POE交换机的作用
- ai怎么渐变颜色_AI的渐变工具为什么如此难用?
- 用 BusyBox 构建根文件系统
- php汉字转拼音插件,PHP中文转拼音优质解决方案-composer转拼音第三方插件-爱测速网...
- 南京大学计算机系2019复试离散题目-逻辑与推理
- scrapy 抓取 google play 应用信息
- zmq Pub-Sub 模式
- Word文档怎么删除html标签,word删除指定页面
- 计算机网易云不能一键升级音质,网易云电脑版怎么调音效(一览网易云音效最佳调节技巧)...