Vehículo evasor de obstáculos con sensor IR

 

Materiales Necesarios

  1. Arduino uno.
  2. Motorreductor
  3. Puente H.
  4. Sensor IR FC-51
  5. Jumpers

Diagrama de conexión: 

  • Conexión puente H.
  1. B-1A: Conexión directa a nuestra placa Arduino al pin numero 6.
  2. B-1B: Conexión directa a nuestra placa Arduino al pin numero 9.
  3. GND: Conexión a tierra(GND) de la placa Arduino.
  4. VCC: Conexión a la alimentación(5V) de la placa Arduino.
  5. A-1A: Conexión directa a nuestra placa Arduino al pin numero 10.
  6. A-1B: Conexión directa a nuestra placa Arduino al pin numero 11.

     

  • Conexión sensor IR FC-51
  1.  OUT: Conexión directa a nuestra placa Arduino al pin numero 7.
  2. GND: Conexión a tierra(GND) de la placa Arduino.
  3. VCC: Conexión a la alimentación(5V) de la placa Arduino.

     

 

 

Código funcionamiento evasor de obstáculos.

La valor de la variable velocidad puede ser modificado para disminuir o incrementar la velocidad de los motorreductores. 

 

double velocidad;
double fotocelda;
double sensor;

void fnc_dynamic_analogWrite(int _pin, int _e){
	pinMode(_pin,OUTPUT);
	analogWrite(_pin,_e);
}

void Avanzar() {
	fnc_dynamic_analogWrite(11, (uint16_t)velocidad);
	fnc_dynamic_analogWrite(9, (uint16_t)velocidad);
	analogWrite(6,(uint16_t)0);
	analogWrite(10,(uint16_t)0);
}
void Izquierda() {
	analogWrite(11,(uint16_t)velocidad);
	analogWrite(9,(uint16_t)0);
	analogWrite(10,(uint16_t)0);
	analogWrite(6,(uint16_t)0);
}
void Retroceder() {
	fnc_dynamic_analogWrite(6, (uint16_t)velocidad);
	fnc_dynamic_analogWrite(10, (uint16_t)velocidad);
	analogWrite(9,(uint16_t)0);
	analogWrite(11,(uint16_t)0);
}
void Derecha() {
	analogWrite(6,(uint16_t)0);
	fnc_dynamic_analogWrite(9, (uint16_t)velocidad);
	analogWrite(11,(uint16_t)0);
	analogWrite(10,(uint16_t)0);
}

int fnc_dynamic_digitalRead(int _pin){
	pinMode(_pin,INPUT);
	return digitalRead(_pin);
}

void Detener() {
	analogWrite(9,(uint16_t)0);
	analogWrite(11,(uint16_t)0);
	analogWrite(10,(uint16_t)0);
	analogWrite(6,(uint16_t)0);
}
void seguidor() {
	fotocelda = analogRead(A0);
	if ((fotocelda < 100)) {
		Avanzar();
	}
	else if (false) {
	}

}
void evasor() {
	if ((digitalRead(8) == 0)) {
		delay(1000);
		delay(1000);
		Izquierda();
		delay(1000);
	}
	else {
		Avanzar();
	}

}

void setup()
{
  	pinMode(6, OUTPUT);
	pinMode(10, OUTPUT);
	pinMode(11, OUTPUT);
	pinMode(9, OUTPUT);
	pinMode(8, INPUT);

	pinMode(A0, INPUT);

	velocidad = 250;
	sensor = 7;

}


void loop()
{

  	if ((fnc_dynamic_digitalRead(sensor) == 0)) {
  		Detener();
  		delay(500);
  		Derecha();
  		delay(500);
  		Retroceder();
  		delay(500);
  	}
  	else {
  	}

  	Avanzar();

}

 

 

 

 

 

Materiales usados en este tutorial:

Aqui podras encontrar los materiales a detalle usados para el desarrollo del tutorial y tambien conocer donde puedes conseguirlos:

Arduino Uno https://amzn.to/4dlT1uW
Motorreductor https://amzn.to/3ANz3KW
Sensor IR FC-51 https://amzn.to/3ZfmFh0
Puente HL9110 https://amzn.to/3XcMawQ

(0) Comentarios

No registra comentarios, se el primero en comentar.
Publicar

Pública tu duda o comentario

Resuelve tus dudas con la comunidad.

*Obligatorio*