1、首先,请按照下图连接双路H桥驱动器和电机,4个按钮(右前进,右后退,左前进,左后退),以及核心板。
需要说明的是,双路H桥驱动器Vin和GND管脚,是接入驱动电机的电源的管脚,建议单独用一组负责动力的电池或电源,不要与单片机的供电混接,以防止大功率消耗瞬时拉低电压而死机。
完成好接线后,请在Arduino IDE中输入如下代码:(已提供源码下载)
int R_Q = 8//定义右前按钮管脚
int R_H = 4//定义右后按钮管脚
int L_Q = 7 //定义左前按钮管脚
int L_H = 2 基伍//定义左后按钮管脚
int MOTO_A_a = 3 //定义右电机控制端a
int MOTO_A_b = 5 //定义右电机控制端b
int MOTO_B_a = 6 //定义左电机控制端a
int MOTO_B_b = 9 //定义左电机控制端b
//需要注意的是,双路H桥驱动器支持PWM方式输入,故In1-In4接3,5,6,9端口,便于以后改造为PWM信号输入
void setup()
{
pinMode(R_Q,INPUT_PULLUP) //定义右前按钮为输入且上拉
pinMode(R_H,INPUT_PULLUP) //定义右后按钮为输入且上拉
pinMode(L_Q,INPUT_PULLUP) //定义左前按钮为输入且上拉
pinMode(L_H,INPUT_PULLUP) //定义左后按钮为输入且上拉
pinMode(MOTO_A_a,OUTPUT) //定义输出
pinMode(MOTO_A_b,OUTPUT) //定义输出神锋灶
pinMode(MOTO_B_a,OUTPUT) //定义输出
pinMode(MOTO_B_b,OUTPUT) //定义输出
}
void loop()
{
//如果不按下右前和右后,则停转
if(digitalRead(R_Q)==1 &&游扮 digitalRead(R_H)==1){STOP_Moto_A()}
//如果同时按下右前和右后,逻辑错误,则停转
if(digitalRead(R_Q)==0 &&digitalRead(R_H)==0){STOP_Moto_A()}
//如果按下右后,则向后转
if(digitalRead(R_Q)==1 &&digitalRead(R_H)==0){Driver_Moto_A(255,false)}
//如果按下右前,则向前转
if(digitalRead(R_Q)==0 &&digitalRead(R_H)==1){Driver_Moto_A(255,true)}
//如果不按下左前和左后,则停转
if(digitalRead(L_Q)==1 &&digitalRead(L_H)==1){STOP_Moto_B()}
//如果同时按下左前和左后,逻辑错误,则停转
if(digitalRead(L_Q)==0 &&digitalRead(L_H)==0){STOP_Moto_B()}
//如果按下左后,则向后转
if(digitalRead(L_Q)==1 &&digitalRead(L_H)==0){Driver_Moto_B(255,false)}
//如果按下左前,则向前转
if(digitalRead(L_Q)==0 &&digitalRead(L_H)==1){Driver_Moto_B(255,true)}
}
//驱动右边电机,pwm为能量值,对应转速,Is_Forward为转向
void Driver_Moto_A(int pwm, bool Is_Forward)
{
if(Is_Forward)
{
digitalWrite(MOTO_A_a,LOW)
analogWrite(MOTO_A_b,pwm)
}
else
{
digitalWrite(MOTO_A_b,LOW)
analogWrite(MOTO_A_a,pwm)
}
}
//停止右边电机
void STOP_Moto_A()
{
digitalWrite(MOTO_A_a,LOW)
digitalWrite(MOTO_A_b,LOW)
}
//驱动左边电机,pwm为能量值,对应转速,Is_Forward为转向
void Driver_Moto_B(int pwm, bool Is_Forward)
{
if(Is_Forward)
{
digitalWrite(MOTO_B_a,LOW)
analogWrite(MOTO_B_b,pwm)
}
else
{
digitalWrite(MOTO_B_b,LOW)
analogWrite(MOTO_B_a,pwm)
}
}
//停止左边电机
void STOP_Moto_B()
{
digitalWrite(MOTO_B_a,LOW)
digitalWrite(MOTO_B_b,LOW)
}
使用按键(pushbutton)控制led灯号的开关,当按键被按下时打开led灯号,按键放开时关闭led灯号。橡州材料
arduino的主板×1
梁亏蔽 led×1
按钮或开关开关×1
10k电阻×1
面包板×1
单心线x
n
接线
把led接到pin13,长脚(阳极)接到pin13,短脚(阴极)接到gnd;
按钮一支脚接到+5
v;
空物pin2接到按钮的另一支脚,同一支脚位接一个10k的电阻连到gnd;
#include<reg51.h>sbit key1=P1^0
sbit key2=P1^1
sbit led1=P1^2
sbit led2=P1^3
main()
{
led1=1
led2=1
while(1)
{
if(key1==0)led1=~led1
if(key2==0)led2=~led2
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)