Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define UMBRAL 60
- #define DIST_PARED 15
- sub Giro180(){ //Función Utilizada para girar el robot:
- Off(OUT_AB); //Detiene ambas ruedas.
- OnFwd(OUT_A,50);
- OnRev(OUT_B,47); //Mueve ambas ruedas en distintas direcciones para conseguir el giro
- Wait(400); //durante La cantidad de tiempo indicada
- }
- task main(){
- SetSensorLight (IN_2);
- SetSensorLowspeed (IN_4); //Se inicializan los sensores.
- while (TRUE){ //Se declara un ciclo infinito para que el robot efectúe las acciones indicadas indefinidamente.
- if (SensorUS(IN_4)<=DIST_PARED) { //Se comprueba la distancia con la pared; De ser menor a la programada:
- Off(OUT_AB);
- Wait(1000);
- OnRev(OUT_AB,50); //Se efectúa un leve retroceso para preparar un giro mas correcto.
- Wait(400);
- Giro180(); //Llamada a la función para efectuar el giro.
- Wait(1000);
- }
- else {
- if(SENSOR_2<=UMBRAL){ //Se compara el lector del sensor de luz en valor de UMBRAL:
- Off(OUT_AB); //Si es menor, asumira que es negro y moverá una sola rueda.
- OnFwd(OUT_A,40);
- OnFwd(OUT_B,0);
- }
- else{ //De lo contrario, asumira que es blanco y moverá la otra rueda.
- Off(OUT_AB);
- OnFwd(OUT_B,40);
- OnFwd(OUT_A,0);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement