Min sjätte projekt: Smart Tank chassi med Ultrasonic Sensor (4 / 7 steg)
Steg 4: Testa sensorn med tanken
Då jag kombinera koden i den första etappen med koden i det tredje projektet och revidera lite: om avståndet mellan sensorn och objekt är mer än 30cm, det går framåt. Annars visar det rätt.
#define trigPin 5
#define echoPin 6
int motorPin = 8; höger sida för att IB - forwward
int motorPin2 = 9; vänster sida till IA - forwward
int motorPin3 = 10; höger sida till IA - bakåt
int motorPin4 = 11; vänster sida till IB - bakåt
void setup()
{
Serial.BEGIN (9600);
pinMode (motorPin, produktionen);
pinMode (motorPin2, produktionen);
pinMode (motorPin3, produktionen);
pinMode (motorPin4, produktionen);
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
}
void
Forward() {
digitalWrite (motorPin, hög);
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, låg);
}
void backward() {
digitalWrite (motorPin, låg);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, hög);
}
void turnLeft() {
digitalWrite (motorPin, hög);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, hög);
}
void turnRight() {
digitalWrite (motorPin, låg);
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, låg);
}
int CheckDistance()
{
lång varaktighet, avstånd;
digitalWrite (trigPin, låg); Lagt till denna rad
delayMicroseconds(2); Lagt till denna rad
digitalWrite (trigPin, hög);
delayMicroseconds(1000); -Tagit bort denna rad
delayMicroseconds(10); Lagt till denna rad
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
avståndet = (längd/2) / 29,1;
returnera avstånd;
}
void loop()
{
int testDistance = CheckDistance(); få objekt avstånd med hjälp av ping
om (testDistance > = 30 || testDistance
< = 0) / / / om objektet är mer än 30 cm bort det går framåt
{
Forward();
}
annat / / / objektet är närmare än 30cm, vänder rätt
{
turnRight();
}
Delay(500); vänta en halv sekund innan nästa ping
}
Resultatet verkar ok.