|
题主在做4轮arduino小车,arduino mega sensor shield与DC motor driver通信, 目前是用串口发送指令。然而现在想用Microzone E6-A来控制小车,与arduino通信。。。。求电路插头配置图解。。。
另外,如果使用4码盘测速形成测速测坐标码盘的话,有木有大神指教。
表示愿意提供本人代码:
#define Speed1 14 //M1 Speed Control
#define Speed2 15//M2 Speed Control
#define Dir1 24 //M1 Direction Control
#define Dir2 27 //M2 Dirction Control
//int Dir3 = 20;
//int Dir4 = 21;
//analogwrite(),digitalwrite(),watch out!!
int counter=0;
void stop(void) //Stop
{
analogWrite(Speed1,0);
digitalWrite(Dir1,LOW);
analogWrite(Speed2,0);
digitalWrite(Dir2,LOW);
}
void advance(char a,char b) //Move forward
{
analogWrite(Speed1,a); //PWM Speed Control
digitalWrite(Dir1,HIGH);
analogWrite(Speed2,b);
digitalWrite(Dir2,HIGH);
}
void back (char a,char b) //Move backward
{
analogWrite(Speed1,a);
digitalWrite(Dir1,LOW);
analogWrite(Speed2,b);
digitalWrite(Dir2,LOW);
}
void turn_L (char a,char b) //Turn Left
{
analogWrite(Speed1,a);
digitalWrite(Dir1,LOW);
analogWrite(Speed2,b);
digitalWrite(Dir2,HIGH);
}
void turn_R (char a,char b) //Turn Right
{
analogWrite (Speed1,a);
digitalWrite(Dir1,HIGH);
analogWrite (Speed2,b);
digitalWrite(Dir2,LOW);
}
void current_sense() // current sense and diagnosis
{
int val1=digitalRead(22);
int val2=digitalRead(23);
if(val1==HIGH || val2==HIGH){
counter++;
if(counter==3){
counter=0;
Serial.println("watch out!");
}
}
}
void setup(void)
{
int i;
for(i=24;i<=27;i++)
pinMode(i, OUTPUT);
Serial.begin(9600); //Set Baud Rate
Serial.println("Run keyboard control");
analogWrite(Speed1,LOW);
analogWrite(Speed2,LOW);
pinMode(22,INPUT);
pinMode(23,INPUT);
}
void loop(void)
{
Serial.print('w');
delay(10000);
static unsigned long timePoint = 0; // current sense and diagnosis,if you want to use this
if(millis() - timePoint > 1000){ //function,please show it & don't forget to connect the IS pins to Arduino
current_sense();
timePoint = millis();
}
if(Serial.available()){
char val = Serial.read();
if(val != -1)
{
switch(val)
{
case 'w':// Forward
advance (100,100); //move forward
break;
case 's'://Back
back (100,100); //move back
break;
case 'a'://Turn Left
turn_L (50,50);
break;
case 'd'://Turn Right
turn_R (50,50);
break;
case 'z':
Serial.println("66666!");
break;
case 'x':
stop();
break;
}
}
else stop();
}
} |
|