红外版:
蓝牙版:
WIFI版:
树莓派小车:
红外代码:
#include <IRremote.h>
int vout = 11;
IRrecv irrecv(vout);
decode_results results;
int led = 13;
int in_1 = 5;
int in_2 = 6;
int in_3 = 7;
int in_4 = 8;
int en_a = 9;
int en_b = 10;
int echo = 3;
int trig = 4;
float cm;
void space()
{
digitalWrite(trig, 0);
delayMicroseconds(2);
digitalWrite(trig, 1);
delayMicroseconds(10);
digitalWrite(trig, 0);
cm = pulseIn(echo, 1) / 58.0;
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
}
void forward()
{
digitalWrite(in_1, 1);
digitalWrite(in_2, 0);
digitalWrite(in_3, 1);
digitalWrite(in_4, 0);
}
void back()
{
digitalWrite(in_1, 0);
digitalWrite(in_2, 1);
digitalWrite(in_3, 0);
digitalWrite(in_4, 1);
}
void left()
{
digitalWrite(in_1, 1);
digitalWrite(in_2, 0);
digitalWrite(in_3, 0);
digitalWrite(in_4, 0);
}
void right()
{
digitalWrite(in_1, 0);
digitalWrite(in_2, 0);
digitalWrite(in_3, 1);
digitalWrite(in_4, 0);
}
void stop_car()
{
digitalWrite(in_1, 0);
digitalWrite(in_2, 0);
digitalWrite(in_3, 0);
digitalWrite(in_4, 0);
}
void setup()
{
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
irrecv.enableIRIn();
pinMode(in_1, OUTPUT);
pinMode(in_2, OUTPUT);
pinMode(in_3, OUTPUT);
pinMode(in_4, OUTPUT);
pinMode(en_a, OUTPUT);
pinMode(en_b, OUTPUT);
analogWrite(en_a, 255);
analogWrite(en_b, 255);
}
void loop()
{
if(irrecv.decode(&results))
{
if(results.value == 16754775)
{
forward();
}
if(results.value == 16769055)
{
back();
}
if(results.value == 16712445)
{
left();
}
if(results.value == 16720605)
{
right();
}
if(results.value == 16761405)
{
stop_car();
}
Serial.println(results.value);
Serial.println(results.bits);
Serial.println();
irrecv.resume();
}
}
int in_1 = 5;
int in_2 = 6;
int in_3 = 7;
int in_4 = 8;
int en_a = 9;
int en_b = 10;
void forward()
{
digitalWrite(in_1, 1);
digitalWrite(in_2, 0);
digitalWrite(in_3, 1);
digitalWrite(in_4, 0);
}
void back()
{
digitalWrite(in_1, 0);
digitalWrite(in_2, 1);
digitalWrite(in_3, 0);
digitalWrite(in_4, 1);
}
void left()
{
digitalWrite(in_1, 1);
digitalWrite(in_2, 0);
digitalWrite(in_3, 0);
digitalWrite(in_4, 0);
}
void right()
{
digitalWrite(in_1, 0);
digitalWrite(in_2, 0);
digitalWrite(in_3, 1);
digitalWrite(in_4, 0);
}
void stop_car()
{
digitalWrite(in_1, 0);
digitalWrite(in_2, 0);
digitalWrite(in_3, 0);
digitalWrite(in_4, 0);
}
void setup()
{
Serial.begin(9600);
pinMode(in_1, OUTPUT);
pinMode(in_2, OUTPUT);
pinMode(in_3, OUTPUT);
pinMode(in_4, OUTPUT);
pinMode(en_a, OUTPUT);
pinMode(en_b, OUTPUT);
analogWrite(en_a, 255);
analogWrite(en_b, 255);
}
void loop()
{
if(Serial.available()>0)
{
char c=Serial.read();
if(c=='l')
{
left();
}
if(c=='r')
{
right();
}
if(c=='a')
{
forward();
}
if(c=='b')
{
back();
}
if(c=='s')
{
stop_car();
}
}
}