comando desviar de obstaculo
Página 1 de 1
comando desviar de obstaculo
float time90graus=0.8;
float time6cm=2.2;
float time14cm=5;
int ultrassomread;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT); //
pinMode(6, OUTPUT);
pinMode(7, OUTPUT); // put your setup code here, to run once:
pinMode(53,OUTPUT);
pinMode(A15,INPUT);
}
void loop() {
ultrassom();
Serial.println(ultrassomread);
delay(500);
if(ultrassomread<800){ // put your main code here, to run repeatedly:
andar_dir(50,50);
delay(time90graus*1000);
parar();
delay(1000);
andar_frente(35,35);
delay(time6cm*1000);
parar();
delay(1000);
andar_esq(50,50);
delay(time90graus*1000);
parar();
delay(1000);
andar_frente(35,35);
delay(time14cm*1000);
parar();
delay(1000);
andar_esq(50,50);
delay(750);
parar();
delay(1000);
andar_frente(35,35);
delay(3500);
parar();
delay(1000);
andar_dir(50,50);
delay(time90graus*1000);
parar();
delay(1000);
}
}
void andar_esq(int pot_d, int pot_e) {
analogWrite(2, pot_e);
analogWrite(3, pot_d);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
void andar_dir(int pot_d, int pot_e) {
analogWrite(2, pot_e);
analogWrite(3, pot_d);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
}
void andar_frente(int pot_d, int pot_e) {
analogWrite(2, pot_e);
analogWrite(3, pot_d);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
}
void parar() {
analogWrite(2, 0);
analogWrite(3, 0);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
void ultrassom(){
delay(2);
digitalWrite(53,HIGH);
delay(10);
digitalWrite(53,LOW);
ultrassomread=pulseIn(A15,HIGH);
}
float time6cm=2.2;
float time14cm=5;
int ultrassomread;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT); //
pinMode(6, OUTPUT);
pinMode(7, OUTPUT); // put your setup code here, to run once:
pinMode(53,OUTPUT);
pinMode(A15,INPUT);
}
void loop() {
ultrassom();
Serial.println(ultrassomread);
delay(500);
if(ultrassomread<800){ // put your main code here, to run repeatedly:
andar_dir(50,50);
delay(time90graus*1000);
parar();
delay(1000);
andar_frente(35,35);
delay(time6cm*1000);
parar();
delay(1000);
andar_esq(50,50);
delay(time90graus*1000);
parar();
delay(1000);
andar_frente(35,35);
delay(time14cm*1000);
parar();
delay(1000);
andar_esq(50,50);
delay(750);
parar();
delay(1000);
andar_frente(35,35);
delay(3500);
parar();
delay(1000);
andar_dir(50,50);
delay(time90graus*1000);
parar();
delay(1000);
}
}
void andar_esq(int pot_d, int pot_e) {
analogWrite(2, pot_e);
analogWrite(3, pot_d);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
void andar_dir(int pot_d, int pot_e) {
analogWrite(2, pot_e);
analogWrite(3, pot_d);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
}
void andar_frente(int pot_d, int pot_e) {
analogWrite(2, pot_e);
analogWrite(3, pot_d);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
}
void parar() {
analogWrite(2, 0);
analogWrite(3, 0);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
void ultrassom(){
delay(2);
digitalWrite(53,HIGH);
delay(10);
digitalWrite(53,LOW);
ultrassomread=pulseIn(A15,HIGH);
}
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos