电机控制方案
登录
直播中
手托初梦
9年用户
873经验值
擅长:可编程逻辑 嵌入式技术
私信
关注
[问答]
怎样使用三个开关去控制电机的正反转和停转呢?
开启该帖子的消息推送
开关
控制电机
正反转
怎样使用三个开关去控制电机的正反转和停转呢?其
电路
设计图是怎样的?
回帖
(1)
刘锦
2021-6-29 14:18:31
通过三个开关控制直流电机的正反转以及停止。
当按下开关一,电机正转;按下开关二,电机反转;按下开关三,电机停止转动。
准备材料:Arduino nano开发板*1,L293D直插式电机驱动芯片*1,10KΩ电阻*3,直流电机*1,开关*3。
电路图如下:
代码如下:
#define M1 8 //定义端口 #define M2 9 #define BUTTON1 10 #define BUTTON2 11 #define BUTTON3 12 int val1 = 0; //变量val用来储存按钮状态 int val2 = 0; int val3 = 0; int state1 = 0; //0表示关闭,1表示打开 int state2 = 0; void setup(){ pinMode(M1,OUTPUT); //设定引脚为输出状态 pinMode(M2,OUTPUT); pinMode(BUTTON1,INPUT); //设定引脚为输入状态 pinMode(BUTTON2,INPUT); pinMode(BUTTON3,INPUT); } void loop(){ val1 = digitalRead(BUTTON1||BUTTON2||BUTTON3); //读取按钮状态并储存 //检查按钮的变化情况 val2 = digitalRead(BUTTON2); val3 = digitalRead(BUTTON3); if(val1 == HIGH) //判断val,输出对应状态 { state1 = 1 - state1; if ((state1 == 1)&&(state2 == 0)) { digitalWrite(M1,HIGH); digitalWrite(M2,LOW); } } if(val2 == HIGH) { state2 = 1 - state2; if ((state1 == 0)&&(state2 == 1)) { digitalWrite(M1,LOW); digitalWrite(M2,HIGH); } } if(val3 == HIGH) { state1 = 0; state2 = 0; if ((state1 == 0)&&(state2 == 0)) { digitalWrite(M1,LOW); digitalWrite(M2,LOW); } } }
通过三个开关控制直流电机的正反转以及停止。
当按下开关一,电机正转;按下开关二,电机反转;按下开关三,电机停止转动。
准备材料:Arduino nano开发板*1,L293D直插式电机驱动芯片*1,10KΩ电阻*3,直流电机*1,开关*3。
电路图如下:
代码如下:
#define M1 8 //定义端口 #define M2 9 #define BUTTON1 10 #define BUTTON2 11 #define BUTTON3 12 int val1 = 0; //变量val用来储存按钮状态 int val2 = 0; int val3 = 0; int state1 = 0; //0表示关闭,1表示打开 int state2 = 0; void setup(){ pinMode(M1,OUTPUT); //设定引脚为输出状态 pinMode(M2,OUTPUT); pinMode(BUTTON1,INPUT); //设定引脚为输入状态 pinMode(BUTTON2,INPUT); pinMode(BUTTON3,INPUT); } void loop(){ val1 = digitalRead(BUTTON1||BUTTON2||BUTTON3); //读取按钮状态并储存 //检查按钮的变化情况 val2 = digitalRead(BUTTON2); val3 = digitalRead(BUTTON3); if(val1 == HIGH) //判断val,输出对应状态 { state1 = 1 - state1; if ((state1 == 1)&&(state2 == 0)) { digitalWrite(M1,HIGH); digitalWrite(M2,LOW); } } if(val2 == HIGH) { state2 = 1 - state2; if ((state1 == 0)&&(state2 == 1)) { digitalWrite(M1,LOW); digitalWrite(M2,HIGH); } } if(val3 == HIGH) { state1 = 0; state2 = 0; if ((state1 == 0)&&(state2 == 0)) { digitalWrite(M1,LOW); digitalWrite(M2,LOW); } } }
举报
更多回帖
rotate(-90deg);
回复
相关问答
开关
控制电机
正反转
怎样
通过
三个
开关
去
控制
直流
电机
的
正反转
以及停止
呢
2021-10-15
2444
怎样
用倒顺
开关
去
控制单相电机
的
正反转
呢
2021-10-18
5790
blinker平台是
怎样
去
控制
步进
电机
正反转
及加减速的
2021-10-15
1878
如何通过
三个
按键
去
控制
四相双极性步进
电机
的
正反转
和停止?
2021-10-15
4305
怎样
通过光电管
去
控制
步进
电机
的
正反转
呢
2021-10-18
1359
如何
去
控制
步进
电机
的
正反转
?
2021-06-29
2120
怎样
去
控制
基于两路继电器直流
电机
的
正反转
和转速
呢
2021-09-16
1484
三
相电动机为什么可以
正反转
2021-10-14
2653
请问
怎样
利用红外遥控
去
控制
电机
的
正反转
?
2021-06-29
1090
怎样
去
设计一种基于STM32的
控制
直流
电机
加减速及
正反转
系统
2021-09-14
1434
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分