摇杆芯片速度测试软件,摇杆控制小车+L9110芯片

要把x&y的控制放到一起,下面是我这几天带孩子玩写的摇杆控制小车的程序,摇杆是PS2摇杆,两个可调电阻,中位时测过输出约2.5V,ADC值约500上下,写程序时这段是停止,程序刚刚前3天左右时间在小车上跑过,驱动模块用的是298N,LCD是I2C 1602~啃萝卜不知道咋回事,粘不上程序,用WORD粘上来~

#include

#include

LiquidCrystal_I2C lcd(0x3f, 16, 2);

int potpin1 =A0;  //

int potpin2=A1;

int val1;    //

int vala;

int valb;

int M1 = 6;

int M2 = 7;

int M3 = 8;

int M4 = 9;

int EN1 = 10;

int EN2 = 11;

uint8_t M1Status=LOW;

uint8_t M2Status=LOW;

uint8_t M3Status=LOW;

uint8_t M4Status=LOW;

int en1=0;

int en2=0;

void setup()

{

lcd.init();

lcd.init();

lcd.backlight();

//lcd测试

lcd.setCursor(0, 0);

lcd.print("System starting!");

pinMode(M1, OUTPUT);

pinMode(M2, OUTPUT);

pinMode(M3, OUTPUT);

pinMode(M4, OUTPUT);

pinMode(EN1, OUTPUT);

pinMode(EN2, OUTPUT);

lcd.setCursor(0, 1);

lcd.print("test engine......");

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Welcome!");

lcd.setCursor(0, 1);

lcd.print("Hello Sunny!");

}

void loop()

{

vala = analogRead(potpin1);

valb = analogRead(potpin2);

if (valb>=401 && valb<=599)

{

if(vala>599)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(2, 1);

lcd.print("car forward!");

val1 = map(vala,600, 1023, 0, 255);

analogWrite(en1, val1);

analogWrite(en2, val1);

front();

delay(15);

}  // waits for the servo to get there

else if(vala<401)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(1, 1);

lcd.print("car backward!");

val1 = map(vala,0, 400, 255, 0);

analogWrite(en1, val1);

analogWrite(en2, val1);

back();

delay(15);

}

else

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(3, 1);

lcd.print("car Stop!");

Stop();

delay(15);

}

}

else if(valb<400)

{

if(vala>599)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(1, 1);

lcd.print("Turning left!");

val1 = map(vala,600, 1023, 0, 255);

analogWrite(en1, val1);

analogWrite(en2, val1);

left();

delay(15);

}

else if(vala<401)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(1, 1);

lcd.print("car back&left!");

val1 = map(vala,0, 400, 255, 0);

analogWrite(en1, val1);

analogWrite(en2, val1);

right();

delay(15);

}

else

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(3, 1);

lcd.print("car Stop!");

Stop();

delay(15);

}

}

else

{

if(vala>599)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(0, 1);

lcd.print("Turning right!");

val1 = map(vala,600, 1023, 0, 255);

analogWrite(en1, val1);

analogWrite(en2, val1);

right();

delay(15);

}

else if(vala<401)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(0, 1);

lcd.print("car back&right!");

val1 = map(vala,0, 400, 255, 0);

analogWrite(en1, val1);

analogWrite(en2, val1);

left();

delay(15);

}

else

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(3, 1);

lcd.print("car Stop!");

Stop();

delay(15);

}

}

}

void front(void)

{

M1Status = LOW;

M2Status = HIGH;

M3Status = LOW;

M4Status = HIGH;

SetEN();

}

void back(void)

{

M1Status = HIGH;

M2Status = LOW;

M3Status = HIGH;

M4Status = LOW;

SetEN();

}

void right(void)

{

M1Status = LOW;

M2Status = HIGH;

M3Status = HIGH;

M4Status = LOW;

SetEN();

}

void left(void)

{

M1Status = HIGH;

M2Status = LOW;

M3Status = LOW;

M4Status = HIGH;

SetEN();

}

void Stop(void)

{

en1 = 0;

en2 = 0;

M1Status = LOW;

M2Status = LOW;

M3Status = LOW;

M4Status = LOW;

SetEN();

}

//设置两侧速度

void SetEN()

{

analogWrite(EN1, en1);

analogWrite(EN2, en2);

digitalWrite(M1, M1Status);

digitalWrite(M2, M2Status);

digitalWrite(M3, M3Status);

digitalWrite(M4, M4Status);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值