Fase- 5 CJ7
![]() |
PISTA |
El diagrama de bloques se utiliza para describir los componentes y funcionamiento del robot
y sus conexiones mediante esquema que utiliza figuras geométricas para la fácil comprensión del mismo. En el siguiente diagrama se muestra las evidencias de conexiones y funcionamiento básico.
![]() |
Diagrama de bloques |
![]() |
Parte lateral |
![]() |
Parte frontal |
![]() |
Parte superior |
Diagrama de flujo:
Codigo:
En el código lo primero que hacemos es crear la variables, después de eso definiremos en void setap que entradas tendrán nuestros sensores y motores ya sean input o output en el void loop tendremos que leer los valores de nuestros sensores y así mismo con estos resultados evaluaremos si giraran o irán hacia atrás o adelante esto lo hacemos con un múltiple "if" y crearemos varios void cuya funciones son brindarle mas rapidez y mayor coherencia de comprensión a nuestro código que llamaremos en nuestro void loop que serán "void atrás", "void izquierda", "void derecha", "void parar", "void adelante".
//Establezco variables para leer más fácil el código
int SENSORI=0; // Pin sensor izquierdo
int SENSORD=2; // Pin sensor derecho
int DERECHA1=7; // MOTOR DERECHA FASE 1
int DERECHA2=6; // MOTOR DERECHA FASE 2
int IZQUIERDA1=9; // MOTOR IZQUIERDA FASE 1
int IZQUIERDA2=8; // MOTOR IZQUIERDA FASE 2
int DERE=0; // VALOR A ALMACENAR PARA LECTURA DE LA SEÑAL
int DE=4;
int IZQUI=0; // VALOR A ALMACENAR PARA LA LECTURA DE LA SEÑAL
int IZ=5;
void setup()
{
//CONFIGURACIÓN DE LOS PUERTOS
pinMode (DERECHA1, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 1 DERECHA DEL MOTOR
pinMode (DERECHA2, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 2 DERECHA DEL MOTOR
pinMode (IZQUIERDA1, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 1 IZQUIERDA DEL MOTOR
pinMode (IZQUIERDA2, OUTPUT); //SALIDA DE MOTOR PARA LA FASE 1 IZQUIERDA DEL MOTOR
pinMode (SENSORD, INPUT); //SENSOR DERECHO
pinMode (SENSORI, INPUT); //SENSOR IZQUIERDO
pinMode (IZ, OUTPUT); //LED IZQUIERDO PARA VERIFICACION DE SEÑAL
pinMode (DE, OUTPUT); //LED DERECHO PARA VERIFICACION DE SEÑAL
}
void loop ()
{
IZQUI = analogRead(SENSORI); //LEE EL ESTADO EN EL QUE SE ENCUENTRA EL SENSOR IZQUIERDO
DERE = analogRead(SENSORD); //LEE EL ESTADO EN EL QUE SE ENCUENTRA EL SENSOR DERECHO
if(DERE < IZQUI)
{
// SI EL SENSOR DERECHO ESTÁ INACTIVO Y EL IZQUIERDO ESTÁ ACTIVO GIRA A LA IZQUIERDA
IZQUIERDA ();
digitalWrite(IZ, HIGH);
digitalWrite (DE, LOW);
}
if(DERE > IZQUI)
{
// SI EL SENSOR DERECHO ESTÁ ACTIVO Y EL IZQUIERDO ESTÁ INACTIVO GIRA A LA DERECHA
digitalWrite(IZ, LOW);
digitalWrite (DE, HIGH);
}
}
//POR MEDIO DE UNA TABLA REALIZAMOS LOS 4 ESTADOS POSIBLES ENTRE LOS CUALES ESTÁN
/* SENSOR IZQUIERDO - SENSOR DERECHO - SENTIDO
0 0 ADELANTE
0 1 DERECHA
1 0 IZQUIERDA
1 1 ATRÁS
*/
void ATRAS()
{
//AMBOS MOTORES EN DIRECCION HACIA ATRÁS
digitalWrite(IZQUIERDA1, HIGH);
digitalWrite(IZQUIERDA2, LOW);
digitalWrite(DERECHA1, HIGH);
digitalWrite(DERECHA2,LOW);
}
void ADELANTE()
{
//AMBOS MOTORES EN DIRECCION HACIA ADELANTE
digitalWrite(IZQUIERDA1, LOW);
digitalWrite(IZQUIERDA2, HIGH);
digitalWrite(DERECHA1, LOW);
digitalWrite(DERECHA2, HIGH);
}
void IZQUIERDA ()
{
//MOTOR IZQUIERDO HACIA ATRAS Y EL MOTOR DERECHO HACIA ADELANTE
digitalWrite(IZQUIERDA1, LOW);
digitalWrite(IZQUIERDA2, LOW);
digitalWrite(DERECHA1, LOW);
digitalWrite(DERECHA2, HIGH);
}
void DERECHA ()
{
//MOTOR DERECHO HACIA ATRÁS Y EL MOTOR IZQUIERDO HACIA DELANTE
digitalWrite(IZQUIERDA1, HIGH);
digitalWrite(IZQUIERDA2, LOW);
digitalWrite(DERECHA1, LOW);
digitalWrite(DERECHA2, LOW);
}
void PARAR()
{
//SE DETIENEN AMBOS MOTORES
digitalWrite(IZQUIERDA1, LOW);
digitalWrite(IZQUIERDA2, LOW);
digitalWrite(DERECHA1, LOW);
digitalWrite(DERECHA2, LOW);
}
JEISON DAVID ALPALA DAZA – 202042229
SANTIAGO MAYAC SALAZAR - 202129292
Comentarios
Publicar un comentario