|
const int L298pin1=2; // 模块控制信号
const int L298pin2=3;
const int L298pin3=4;
const int L298pin4=7;
const int L298A=5; //模块的速度控制
const int L298B=6;
unsigned char pwma=80; // pwm 值
unsigned char pwmb=90;
bool kaiqi=false; // 主要使用开启和关闭键
void setup()
{
pinMode(L298pin1,OUTPUT);pinMode(L298pin2,OUTPUT);pinMode(L298pin3,OUTPUT);
pinMode(L298pin4,OUTPUT);pinMode(L298A,OUTPUT);pinMode(L298B,OUTPUT);
Serial.begin(9600);
}
void loop()
{
String zhi=chuankou(); // 读取串口的值
if(zhi[0]=='K') kaiqi=true; // 开启
while(kaiqi)
{
String zhi=chuankou(); // 读取串口的值
if(zhi[0]=='Z') kaiqi=false; // 关闭
if(zhi[0]=='W') qianjin(); // 前进
if(zhi[0]=='S') houtui(); // 后退
if(zhi[0]=='A') zuozhuan(); // 左转
if(zhi[0]=='D') youzhuan(); // 右转
if(zhi[0]=='T') tingzhi(); // 停止
}
}
void qianjin() // 小车前进
{
digitalWrite(L298pin1,HIGH);
digitalWrite(L298pin2,LOW);
digitalWrite(L298pin3,HIGH);
digitalWrite(L298pin4,LOW);
analogWrite(L298A,pwma);
analogWrite(L298B,pwmb);
}
void houtui() //小车后退
{
digitalWrite(L298pin1,LOW);
digitalWrite(L298pin2,HIGH);
digitalWrite(L298pin3,LOW);
digitalWrite(L298pin4,HIGH);
analogWrite(L298A,pwma);
analogWrite(L298B,pwmb);
}
void zuozhuan() // 小车左转
{
digitalWrite(L298pin1,LOW);
digitalWrite(L298pin2,HIGH);
digitalWrite(L298pin3,HIGH);
digitalWrite(L298pin4,LOW);
analogWrite(L298A,pwma);
analogWrite(L298B,pwmb);
}
void youzhuan() // 小车右转
{
digitalWrite(L298pin1,HIGH);
digitalWrite(L298pin2,LOW);
digitalWrite(L298pin3,LOW);
digitalWrite(L298pin4,HIGH);
analogWrite(L298A,pwma);
analogWrite(L298B,pwmb);
}
void tingzhi() // 小车停止 暂停
{
digitalWrite(L298pin1,LOW);
digitalWrite(L298pin2,LOW);
digitalWrite(L298pin3,LOW);
digitalWrite(L298pin4,LOW);
analogWrite(L298A,pwma);
analogWrite(L298B,pwmb);
}
String chuankou() // 串口通信
{
String zhi = ""; // 定义空字符串
while (Serial.available())
{
zhi += char(Serial.read());
delay(2);
}
return zhi; // 返回这个串口的值
}
|
|