玩arduino 也不久,就弄了个小车学习学习
我这个小车4电机单独控制4个轮子,我把左边的两个电机接在一起,右边也一样。
现在传感器还没安装。我的思路是:先用方向杆(见下图)控制它要行使的方向,油门杆来控制速度;但是结果和理想的不一样,请大家来看看
这是我小车的APC无线模块
我的小车
小车前部的板子是用来保护传感器的
我自己做的遥控器其中中间红色的是
遥控器的反面
小车的程序:
int Speed;
void goStraight(int Speed)
{
analogWrite(8,Speed);
digitalWrite(9,LOW);
analogWrite(10,Speed);
digitalWrite(11,LOW);
}
void turnLeft(int Speed)
{
analogWrite(8,Speed);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
analogWrite(11,Speed);
}
void turnRight(int Speed)
{
digitalWrite(8,LOW);
analogWrite(9,Speed);
digitalWrite(10,Speed);
analogWrite(11,LOW);
}
void Stop()
{
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}
void goBreak(int Speed)
{
digitalWrite(8,LOW);
analogWrite(9,Speed);
digitalWrite(10,LOW);
analogWrite(11,Speed);
}
int comtemp;
void setup()
{
pinMode(8,OUTPUT);//定义控制小车行走管脚
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(6,INPUT);
pinMode(7,INPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
comtemp=Serial.read();
switch(comtemp)
{
case 'g':
{
goStraight(comtemp);
Serial.println("goStrigh");
break;
}
case 'b':
{
goBreak(comtemp);
Serial.println("goBack");
break;
}
case's':
{
Stop();
Serial.println("goStop");
break;
}
case 'l':
{
turnLeft(comtemp);
Serial.println("turnLeft");
break;
}
case'r':
{
turnRight(comtemp);
Serial.println("turnRigh");
break;
}
}
}
}
遥控器的程序:
int xpotPin = A4;
int ypotPin = A3;
int gopotPin = A5;
int xval=0;
int yval=0;
int goval=0;
void setup()
{
Serial.begin(9600);
}
void loop ()
{
xval = analogRead(xpotPin);
yval = analogRead(ypotPin);
goval = analogRead(gopotPin);
if(xval<=500)
{
Serial.print("l");
Serial.print(goval*0.225);
}
if(xval>=600)
{
Serial.print("r");
Serial.print(goval*0.255);
}
if(yval<=500)
{
Serial.print("g");
Serial.print(goval*0.225);
}
if(yval>=600)
{
Serial.print("b");
Serial.print(goval*0.255);
}
}
不知道为什么不能控制速度
请大家看看,指点指点,感激不尽
|