Paso 6: O código-fonte
Grua/*
Este ejemplo de código es de dominio público.
*/
#define izquierda 9 / / Passa o sinal para o L293D (esquerda)
#define derecha 10 / / Passa o sinal para o L293D (direita)
#define echoPin 13 //Pino 13 recebe o pulso eco
#define trigPin 12 //Pino 12 envia o pulso para gerar o eco
#define TEMPOS 2
void setup() {}
pinMode (izquierda, salida);
pinMode (derecha, salida);
pinMode (echoPin, entrada); definir o pino 13 como entrada (recebe)
pinMode (trigPin, salida); definir o pino 12 como saida (envia)
Serial.Begin(9600);
v largo = lerDistancia();
Serial.println(v);
mover(250);
v = lerDistancia();
Serial.println(v);
}
void mover (int pos) {/ / funça movimento o carrinho
v largo = lerDistancia();
mientras que {} (v > 20000)
v = lerDistancia();
}
int new_pos = pos - v;
Serial.println(new_pos);
Si (new_pos < 0) {}
Esquerda
Serial.println("left");
digitalWrite (izquierda, alto);
fin = v;
mientras {}
largo vl = lerDistancia();
Serial.Print(":"); Serial.Print)
VL); Serial.PR
int("."); Serial.Print(VL-Last);
Si (vl < = pos & & vl < 20000) {}
rotura;
}
último = vl;
Delay(60);
}
digitalWrite (izquierda, LOW);
Serial.println(":");
} else {}
Direita
digitalWrite (derecha, alto);
Serial.println("Right");
fin = v;
mientras {}
largo vr = lerDistancia();
Serial.Print(":"); Serial.Print(VR); Serial.Print("."); Serial.Print (último - vr);
Si (vr > = pos & & vr < 20000) {}
rotura;
}
último = vr;
Delay(60);
}
Serial.println(":");
digitalWrite (derecho, baja);
}
}
largo lerDistancia() {}
digitalWrite (trigPin, LOW); de seta o pino desencadenar com um baixo pulso "Baja"
delayMicroseconds(15); retardo de 15 microssegundos
digitalWrite (trigPin, HIGH); de seta o pino desencadenar com pulso alto "HIGH"
delayMicroseconds(10); retardo de 10 microssegundos
digitalWrite (trigPin, LOW); seta o pino 12 com pulso baixo novamente
duración = pulseIn(echoPin,HIGH); pulseInt lê o tempo entre un chamada e o pino entrar em alta
larga distancia = (duración * 337) / 2000; Dessa forma temos un nossa precisão em milímetros
Esse cálculo é baseado em s = v. t, lembrando o tempo vem dobla
porque é tempo de o de ida e volta ultrassom
volver a distancia;
}
void lerDistancia (int tiempo) {}
int se = tempo / TEMPOS;
para (int i = 0; i <; i ++) {}
t largo = lerDistancia();
Serial.Print("T:");
Serial.Print(t);
Delay(tempos);
}
}
void loop() {}
int rojo = Serial.parseInt();
{if(red)}
v largo = lerDistancia();
Serial.println(v);
mover(red);
v = lerDistancia();
Serial.println(v);
}
}