int Left_motor=8; //左电机(IN3) 输出0 前进 输出1 后退
int Left_motor_pwm=9; //左电机PWM调速
int Right_motor_pwm=10; // 右电机PWM调速
int Right_motor=11; // 右电机后退(IN1) 输出0 前进 输出1 后退
int myangle;//定义角度变量
int pulsewidth;//定义脉宽变量
int val;
char buffer[18]; //串口缓冲区的字符数组
void setup() //设定串口和引脚模式
{
Serial.begin(9600);
Serial.flush(); //清空串口缓存
pinMode(Left_motor,OUTPUT); // PIN 8 8脚无PWM功能
pinMode(Left_motor_pwm,OUTPUT); // PIN 9 (PWM)
pinMode(Right_motor_pwm,OUTPUT);// PIN 10 (PWM)
pinMode(Right_motor,OUTPUT);// PIN 11 (PWM)
}
String comdata = "";
int v1,v2;
int mark=0;
int numdata[2] = {0};
void loop()
{
int j=0;
while (Serial.available() > 0)
{
comdata += char(Serial.read());
delay(100);
mark = 1;
}
if(mark == 1)
{
Serial.println(comdata);
Serial.println(comdata.length());
for(int i = 0; i < comdata.length() ; i++)
{
if(comdata == ',')
{
j++;
}
else
{
numdata[j] = numdata[j] * 10 + (comdata - '0');
}
}
comdata = String("");
for(int i = 0; i < 2; i++)
{
Serial.println(numdata);
v1=numdata[0];
v2=numdata[1];
digitalWrite(Right_motor,LOW); // 右电机前进
digitalWrite(Right_motor_pwm,HIGH); // 右电机前进
analogWrite(Right_motor_pwm,v1);//PWM比例0~255调速,左右轮差异略增减
digitalWrite(Left_motor,HIGH); // 左电机前进
digitalWrite(Left_motor_pwm,HIGH); //左电机PWM
analogWrite(Left_motor_pwm,v2);//PWM比例0~255调速,左右轮
numdata = 0;
}
mark = 0;
}
}
|