Stap 6: O código-fonte
Grua/*
Deze voorbeeldcode is in het publieke domein.
*/
#define links 9 / / Passa o integer para o L293D (esquerda)
#define recht 10 / / Passa o integer para o L293D (direita)
#define echoPin 13 //Pino 13 recebe o pulso echo
#define trigPin 12 //Pino 12 envia o pulso para gerar o echo
#define TEMPOS 2
VOID Setup {}
pinMode (links, uitvoer);
pinMode (recht, uitvoer);
pinMode (echoPin, INPUT); definiëren van o pino 13 como entrada (recebe)
pinMode (trigPin, OUTPUT); o pino 12 como saida (envia) definiëren
Serial.begin(9600);
lange v = lerDistancia();
Serial.println(v);
Mover(250);
v = lerDistancia();
Serial.println(v);
}
de Verhuizer van de void (int pos) {/ / funça que carrinho o movimento
lange v = lerDistancia();
terwijl (v > 20000) {}
v = lerDistancia();
}
int new_pos = pos - v;
Serial.println(new_pos);
Als (new_pos < 0) {}
Esquerda
Serial.println("left");
digitalWrite (links, hoge);
eindelijk = v;
while (true) {}
lange vl = lerDistancia();
Serial.Print(":"); Serial.Print)
VL); Serial.PR
int("."); Serial.Print(VL-last);
Als (vl < = pos & & vl < 20000) {}
breken;
}
laatste = vl;
delay(60);
}
digitalWrite (links, laag);
Serial.println(":");
} else {}
Direita
digitalWrite (recht, hoog);
Serial.println("right");
eindelijk = v;
while (true) {}
lange vr = lerDistancia();
Serial.Print(":"); Serial.Print(VR); Serial.Print("."); Serial.Print (laatste - vr);
Als (vr > = pos & & vr < 20000) {}
breken;
}
laatste = vr;
delay(60);
}
Serial.println(":");
digitalWrite (recht, laag);
}
}
lange lerDistancia() {}
digitalWrite (trigPin, laag); Seta o pino de trigger com um pulso baixo "Laag"
delayMicroseconds(15); vertraging van de 15 microssegundos
digitalWrite (trigPin, hoge); Seta o pino de trigger com pulso alto "hoog"
delayMicroseconds(10); vertraging van de 10 microssegundos
digitalWrite (trigPin, laag); Seta o pino 12 com pulso baixo novamente
lange duur = pulseIn(echoPin,HIGH); pulseInt lê o tempo entre een die e o pino entrar em hoge
lange distancia = (duur * 337) / 2000; Dessa forma temos een nossa arbitrary em milimetros
Esse cálculo é is em s = v. t, lembrando que o tempo vem dobrado
porque é o tempo de ida e volta ultrassom
retourneren distancia;
}
VOID lerDistancia (int tempo) {}
int het tempo = / tempo;
for (int i = 0; ik < het; i ++) {}
lange t = lerDistancia();
Serial.Print("T:");
Serial.Print(t);
delay(TEMPOS);
}
}
void loop {}
int rood = Serial.parseInt();
if(Red) {}
lange v = lerDistancia();
Serial.println(v);
Mover(Red);
v = lerDistancia();
Serial.println(v);
}
}