Vehículo evasor de obstáculos con sensor IR
Materiales Necesarios
- Arduino uno.
- Motorreductor
- Puente H.
- Sensor IR FC-51
- Jumpers
Diagrama de conexión:
- Conexión puente H.
- B-1A: Conexión directa a nuestra placa Arduino al pin numero 6.
- B-1B: Conexión directa a nuestra placa Arduino al pin numero 9.
- GND: Conexión a tierra(GND) de la placa Arduino.
- VCC: Conexión a la alimentación(5V) de la placa Arduino.
- A-1A: Conexión directa a nuestra placa Arduino al pin numero 10.
A-1B: Conexión directa a nuestra placa Arduino al pin numero 11.
- Conexión sensor IR FC-51
- OUT: Conexión directa a nuestra placa Arduino al pin numero 7.
- GND: Conexión a tierra(GND) de la placa Arduino.
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 |
Pública tu duda o comentario
Resuelve tus dudas con la comunidad.
(0) Comentarios
No registra comentarios, se el primero en comentar.
Publicar