|
const int L298pin1=2; // 模塊控制信號(hào)
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; // 主要使用開啟和關(guān)閉鍵
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; // 關(guān)閉
if(zhi[0]=='W') qianjin(); // 前進(jìn)
if(zhi[0]=='S') houtui(); // 后退
if(zhi[0]=='A') zuozhuan(); // 左轉(zhuǎn)
if(zhi[0]=='D') youzhuan(); // 右轉(zhuǎn)
if(zhi[0]=='T') tingzhi(); // 停止
}
}
void qianjin() // 小車前進(jìn)
{
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() // 小車左轉(zhuǎn)
{
digitalWrite(L298pin1,LOW);
digitalWrite(L298pin2,HIGH);
digitalWrite(L298pin3,HIGH);
digitalWrite(L298pin4,LOW);
analogWrite(L298A,pwma);
analogWrite(L298B,pwmb);
}
void youzhuan() // 小車右轉(zhuǎn)
{
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; // 返回這個(gè)串口的值
}
|
|