El codigo
Enviado por NIDIA MARISOL VARGUEZ PECH • 17 de Septiembre de 2022 • Tarea • 1.216 Palabras (5 Páginas) • 52 Visitas
const int AIA = 7; // (pwm) pin 9 connected to pin A-IA
const int AIB = 5; // (pwm) pin 5 connected to pin A-IB
const int BIA = 8; // (pwm) pin 10 connected to pin B-IA
const int BIB = 6; // (pwm) pin 6 connected to pin B-IB
byte speed = 200; // change this (0-255) to control the speed of the motors
// Definición de variables y constantes relacionadas con los sensores IR
int lecturaSensorIzq; // Almacena el valor de la lectura del sensor izquierdo
int lecturaSensorDer; // Almacena el valor de la lectura del sensor derecho
const int sensorIzqPin = A6; // El sensor izq irá conectado al pin analógico A0
const int sensorDerPin = A7; // El sensor derecho irá conectado al pin analógico A1
//sensor de distancia
const int Trigger = A4; //Pin A4 para el Trigger del sensor
const int Echo = A5; //Pin A5 para el Echo del sensor
long t; //timepo que demora en llegar el eco
long d; //distancia en centimetros
//servos
#include <Servo.h> //Librería para trabajar con los servomotores
//Creando los objetos de la librería Servo
Servo servo_1, servo_2, servo_3, servo_4;
//Declaración de variables y matrices globales
int num_rut = 0;
int retardo = 10; //Entre más pequeño el valor, los servomotores se moverán más rápido.
int cont = 0;
char dato;
int ser[4] = {90,90,90,90};
int ser_rut[4][12];
void setup() {
pinMode(AIA, OUTPUT); // set pins to output
pinMode(AIB, OUTPUT);
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
pinMode( sensorIzqPin , INPUT) ;
pinMode( sensorDerPin , INPUT) ;
Serial.begin(9600); // Se inicia el puerto de comunicaciones en serie
//sensor distanc
pinMode(Trigger, OUTPUT); //pin como salida
pinMode(Echo, INPUT); //pin como entrada
digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
//servos
//Asignación de los Pines con los servomotores a utilizar
servo_1.attach(13);
servo_2.attach(12);
servo_3.attach(11);
servo_4.attach(9);
//Calibrando los servomotores a una posición inicial
servo_1.write (ser[0]);
servo_2.write (ser[1]);
servo_3.write (ser[2]);
servo_4.write (ser[3])
}
void loop() {
//servomotores
lecturaSensorIR(); // Se lee el valor de los sensores IR
// Se analiza el resultado de los sensores para hacer que el robot siga la línea negra
// Si el resultado de ambos sensores es 0 (zona blanca) el robot sigue se para
if(lecturaSensorIzq == 0 && lecturaSensorDer == 0)
{
robotParar(); // El robot para
}
// Si el izquierdo retorna 0 (zona blanca) y el derecho 1 (negra) el robot gira derecha
if (lecturaSensorIzq == 0 && lecturaSensorDer == 1)
{
robotDerecha();
// El robot gira a la derecha
}
// Si el izquierdo retorna 1 (zona negra) y el derecho 0 (blanca) el robot gira izquierda
if (lecturaSensorIzq == 1 && lecturaSensorDer == 0)
{
robotIzquierda();
}
// Si ambos sensores retornan 0 (zona negra) el robot sigue recto
if (lecturaSensorIzq == 1 && lecturaSensorDer == 1)
{
robotAvance(); // El robot avanza
...