请大家帮帮忙 用ps2手柄摇杆控制arduino小车速度怎么写
#include <PS2X_lib.h>
PS2X ps2x; // 定义ps2x为PS2X类变量
//int PS_LY;//存储PS2手柄左摇杆Y轴数据
//int PS_RX;//存储PS2手柄右摇杆X轴数据
int flag;//存储PS2手柄按键标识
int EN2 = 2; //定义电机1的I1接口
int EN3 = 3; //定义电机1的I2接口
int EN4 = 4; //定义电机2的I3接口
int EN5 = 5; //定义电机2的I3接口
/****定义小车前后左右动作****/
void qian(void) //qian前进
{
digitalWrite(EN2,LOW);//低电位
digitalWrite(EN3,HIGH);//高电位
digitalWrite(EN4,LOW);
digitalWrite(EN5,HIGH);
}
void hou(void)//hou后退
{
digitalWrite(EN2,HIGH);
digitalWrite(EN3,LOW);
digitalWrite(EN4,HIGH);
digitalWrite(EN5,LOW);
}
void ting(void)//ting停止
{
digitalWrite(EN2,LOW);
digitalWrite(EN3,LOW);
digitalWrite(EN4,LOW);
digitalWrite(EN5,LOW);
}
void setup()
{
ps2x.config_gamepad(13,11,10,12, true, true);
pinMode(EN2, OUTPUT);
pinMode(EN3, OUTPUT);
pinMode(EN4, OUTPUT);
pinMode(EN5, OUTPUT);
Serial.begin(9600);
}
void loop()
{
ps2x.read_gamepad();//读PS2数据
ps2x.read_gamepad(false, 255);
int ps2_LY = 127;//手柄左摇杆Y值,中间默认为127
int ps2_RX = 128;//手柄右摇杆X值,中间默认为128
ps2_LY = ps2x.Analog(PSS_LY);
ps2_RX = ps2x.Analog(PSS_RX);
if ( ps2_LY != 127 )
//if(ps2x.Button(PSB_PAD_UP))
{
if ( ps2_LY < 127 )//摇杆前移
{
qian();
delay(20);
ting();
}
else if ( ps2_LY > 127 )//摇杆后移
{
hou();
delay(20);
ting();
}
}
else if(ps2x.Button(PSB_PAD_DOWN))
{
hou();
delay(20);
ting();
}
else if(ps2x.Button(false)) // 若没有按键按下
{
ting();
}
}
这样手柄摇杆不能控制速度 |