<div class="content">

<a name="t3"</a>

<h2>硬件部分</h2>

<hr>

<p&ensp;&ensp;&ensp;&ensp;用高低正负电平控制小车左右后轮来操作小车前进、后退、左右转。

具体程序如下:

</p>

<p&ensp;&ensp;&ensp;&ensp;代码:<pre<code>

&ensp;&ensp;&ensp;&ensp;#define LEFT_AHEAD 9

&ensp;&ensp;&ensp;&ensp;#define LEFT_BACK 10

&ensp;&ensp;&ensp;&ensp;#define RIGHT_AHEAD 12

&ensp;&ensp;&ensp;&ensp;#define RIGHT_BACK 13

&ensp;&ensp;&ensp;&ensp;#define FAST 100

&ensp;&ensp;&ensp;&ensp;#define MEDIUM 70

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;char order;

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;void setup()

&ensp;&ensp;&ensp;&ensp;{

&ensp;&ensp;&ensp;&ensp; // put your setup code here, to run once:

&ensp;&ensp;&ensp;&ensp; Serial.begin(9600);

&ensp;&ensp;&ensp;&ensp; pinMode(LEFT_AHEAD,OUTPUT);

&ensp;&ensp;&ensp;&ensp; pinMode(LEFT_BACK,OUTPUT);

&ensp;&ensp;&ensp;&ensp; pinMode(RIGHT_AHEAD,OUTPUT);

&ensp;&ensp;&ensp;&ensp; pinMode(RIGHT_BACK,OUTPUT);

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp; goAhead();

&ensp;&ensp;&ensp;&ensp; delay(1000);

&ensp;&ensp;&ensp;&ensp; stop();

&ensp;&ensp;&ensp;&ensp; delay(100);

&ensp;&ensp;&ensp;&ensp; turnRight();

&ensp;&ensp;&ensp;&ensp; delay(1000);

&ensp;&ensp;&ensp;&ensp; stop();

&ensp;&ensp;&ensp;&ensp;}

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;void loop()

&ensp;&ensp;&ensp;&ensp;{

&ensp;&ensp;&ensp;&ensp; // put your main code here, to run repeatedly:

&ensp;&ensp;&ensp;&ensp; if (Serial.available()>0) {

&ensp;&ensp;&ensp;&ensp; order = Serial.read();

&ensp;&ensp;&ensp;&ensp; Serial.println("com get " + String(order));

&ensp;&ensp;&ensp;&ensp; if (order=='w') {

&ensp;&ensp;&ensp;&ensp; goAhead();

&ensp;&ensp;&ensp;&ensp; Serial.println("go ahead");

&ensp;&ensp;&ensp;&ensp; }

&ensp;&ensp;&ensp;&ensp; else if (order=='s') {

&ensp;&ensp;&ensp;&ensp; goBack();

&ensp;&ensp;&ensp;&ensp; Serial.println("go back");

&ensp;&ensp;&ensp;&ensp; }

&ensp;&ensp;&ensp;&ensp; else if (order=='a') {

&ensp;&ensp;&ensp;&ensp; turnLeft();

&ensp;&ensp;&ensp;&ensp; Serial.println("turn left");

&ensp;&ensp;&ensp;&ensp; }

&ensp;&ensp;&ensp;&ensp; else if (order=='d') {

&ensp;&ensp;&ensp;&ensp; turnRight();

&ensp;&ensp;&ensp;&ensp; Serial.println("go right");

&ensp;&ensp;&ensp;&ensp; }

&ensp;&ensp;&ensp;&ensp; else if (order=='x') {

&ensp;&ensp;&ensp;&ensp; stop();

&ensp;&ensp;&ensp;&ensp; Serial.println("stop");

&ensp;&ensp;&ensp;&ensp; }

&ensp;&ensp;&ensp;&ensp; }

&ensp;&ensp;&ensp;&ensp;}

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;void stop()

&ensp;&ensp;&ensp;&ensp;{

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp;}

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;void goAhead()

&ensp;&ensp;&ensp;&ensp;{

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp; analogWrite(LEFT_AHEAD,MEDIUM);

&ensp;&ensp;&ensp;&ensp; analogWrite(RIGHT_AHEAD,MEDIUM);

&ensp;&ensp;&ensp;&ensp;}

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;void goBack()

&ensp;&ensp;&ensp;&ensp;{

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp; analogWrite(LEFT_BACK,MEDIUM);

&ensp;&ensp;&ensp;&ensp; analogWrite(RIGHT_BACK,MEDIUM);

&ensp;&ensp;&ensp;&ensp;}

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;void turnLeft()

&ensp;&ensp;&ensp;&ensp;{

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp; analogWrite(LEFT_BACK,FAST);

&ensp;&ensp;&ensp;&ensp; analogWrite(RIGHT_AHEAD,FAST);

&ensp;&ensp;&ensp;&ensp;}

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp;void turnRight()

&ensp;&ensp;&ensp;&ensp;{

&ensp;&ensp;&ensp;&ensp; digitalWrite(LEFT_BACK,LOW);

&ensp;&ensp;&ensp;&ensp; digitalWrite(RIGHT_AHEAD,LOW);

&ensp;&ensp;&ensp;&ensp;

&ensp;&ensp;&ensp;&ensp; analogWrite(LEFT_AHEAD,FAST);

&ensp;&ensp;&ensp;&ensp; analogWrite(RIGHT_BACK,FAST);

</code</pre>

</div>

</div>