0% encontró este documento útil (0 votos)
3 vistas5 páginas

Tarea Java

El documento describe un proyecto de robot en Java que utiliza comandos como Serial.print para mostrar información y estructuras de control como condicionales y bucles para tomar decisiones y ejecutar acciones. Se incluye un código completo que implementa un sensor ultrasónico para medir distancias y evitar obstáculos mediante maniobras como avanzar, retroceder y girar. El robot está diseñado para funcionar de manera autónoma, respondiendo a la detección de obstáculos en su camino.

Cargado por

Carlos Tellez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas5 páginas

Tarea Java

El documento describe un proyecto de robot en Java que utiliza comandos como Serial.print para mostrar información y estructuras de control como condicionales y bucles para tomar decisiones y ejecutar acciones. Se incluye un código completo que implementa un sensor ultrasónico para medir distancias y evitar obstáculos mediante maniobras como avanzar, retroceder y girar. El robot está diseñado para funcionar de manera autónoma, respondiendo a la detección de obstáculos en su camino.

Cargado por

Carlos Tellez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tarea Java

Integrantes

Carlos Manuel Téllez

José Luis Villarreal


Explicación de los comandos
utilizados
PRINT DE LOS MENSAJES
[Link] y [Link] se utilizan para mostrar información en la consola, como la
distancia detectada por el sensor. Ayudan a monitorear el comportamiento del robot.

CONDICIONALES (if / else)


Permiten que el robot tome decisiones automáticamente. Si hay un obstáculo, el
robot se detiene y ejecuta maniobras evasivas. Si no hay obstáculo, continúa
avanzando.

BUCLES (loop)
El bucle loop() se repite constantemente mientras el Arduino está encendido.
Controla el ciclo principal del robot: medir distancia, decidir acciones y moverse.

LECTURA DE DATOS (sensor ultrasónico)


El comando sonar.ping_cm() mide la distancia al obstáculo. Esta lectura permite que
el robot detecte y evite choques.
Código Completo del Robot
// --- Librerías ---
#include <NewPing.h>

// --- Definición de pines ---


#define TRIG 9
#define ECHO 8
#define MAX_DISTANCE 200

#define ENA 5
#define IN1 6
#define IN2 7

#define ENB 10
#define IN3 11
#define IN4 12

NewPing sonar(TRIG, ECHO, MAX_DISTANCE);

int distancia = 0;
int velocidad = 150;

void setup() {
[Link](9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
[Link]("Robot evasor iniciado...");
}

void loop() {
distancia = sonar.ping_cm();
if (distancia == 0) distancia = 200;

[Link]("Distancia: ");
[Link](distancia);
[Link](" cm");

if (distancia <= 20) {


detener();
retroceder();
delay(500);
girarDerecha();
delay(400);
} else {
avanzar();
}

delay(100);
}

void avanzar() {
analogWrite(ENA, velocidad);
analogWrite(ENB, velocidad);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}

void retroceder() {
analogWrite(ENA, velocidad);
analogWrite(ENB, velocidad);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}

void girarDerecha() {
analogWrite(ENA, velocidad);
analogWrite(ENB, velocidad);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}

void detener() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}

También podría gustarte