en este video se muestra un ejemplo de programación de un robot evasor de obstáculos utilizando el puente h l293d para el control de giro de los motores. Curso de Arduino: • Curso Arduino
Excelente explicacion, Felicidades! Hoy arme uno casi igual y en mi programacion son MAS líneas empezando desde la libreria del ultrasonico y yo conecto los ENA y ENB del CI y obvio mi diagrama en fritzig tiene mas conexion y veo que el tuyo funciona súper, en cuanto encuentra el obstáculo lo evade, y el mío si retrocede y gira pero como que le piensa para continuar 😂. Gracias por compartir 😃
Hola, lo que puedes verificar es: * la conexión de pines del ultrasónico que coincidan con los pines indicados en el codigo. *que el trig y el echo estén declarados y conectados al pin indicado puedes probar de forma independiente el ultrasónico, para ver que funciones correctamente: minuto 3:08 ruclips.net/video/6zHBdQlTVJM/видео.html
Bien Existen muchos factores que pueden influir en el funcionamiento. verificar que este bien conectado cada uno de los pines, el puente H y los motores Que la batería que utilizas entregue el voltaje suficiente para mover los dos motores
@@proyectos-jc si bro eso ya lo tengo instalado y todo. es mucho para explicar quiza me pase su gmail o su # o como le busco x fb para que le explique mejor. xf
Hola, lo hice y si avanza pero de reversa cuando está el analogwrite está en 200 y 250, pero en 80 no avanza. El programa lo tengo así: #define echoPin 11 #define trigPin 12 long tiempo, distancia; int mda=5; int mdr=6; int mia=10; int mir=9; void setup() { pinMode(echoPin,INPUT); pinMode(trigPin,OUTPUT); digitalWrite(trigPin,LOW); } void loop(){ digitalWrite(trigPin,HIGH); delayMicroseconds(10); digitalWrite(trigPin,LOW); tiempo=pulseIn(echoPin,HIGH); distancia=tiempo*0.01715; if(distancia=13) { analogWrite(mda,0); analogWrite(mdr,0); analogWrite(mia,0); analogWrite(mir,0); delay(500); analogWrite(mda,0); analogWrite(mdr,200); analogWrite(mia,0); analogWrite(mir,200); delay(1000); analogWrite(mda,0); analogWrite(mdr,0); analogWrite(mia,0); analogWrite(mir,0); delay(500); analogWrite(mda,200); analogWrite(mdr,0); analogWrite(mia,0); analogWrite(mir,200); delay(1500); } else{ analogWrite(mda,200); analogWrite(mdr,0); analogWrite(mia,200); analogWrite(mir,0); delay(200); } }
veo un error lógico en el if contradiciendo la condición en 13 Si es menor o igual a 13 y Si es mayor o igual a 13 if(distancia=13) cambiar a if(distancia=3) por otra parte debes tomar en cuenta el voltaje que proporcionas a tus motores. Dependiendo si los motores tienen la fuerza para poder girar y avanzar. si notas que va muy despacio, puedes aumentar la velocidad con el pwm a 230 o 250. mas pwm= mas voltaje =mas velocidad menos pwm= menos voltaje =menos velocidad espero te sirva Saludos.
puedes probar cambiando la velocidad en lugar de usar analogWrite(mda,80); cambiar el 80 por un valor mas grande, máximo de 255, analogWrite(mda,255); // da el 100% de ciclo de trabajo en el minuto 5:35 del video
Excelente explicacion, Felicidades! Hoy arme uno casi igual y en mi programacion son MAS líneas empezando desde la libreria del ultrasonico y yo conecto los ENA y ENB del CI y obvio mi diagrama en fritzig tiene mas conexion y veo que el tuyo funciona súper, en cuanto encuentra el obstáculo lo evade, y el mío si retrocede y gira pero como que le piensa para continuar 😂. Gracias por compartir 😃
te amo gracias, un besote y abrazote
A todos los preguntan por el código, pausen el video y copienlo, no sean araganes
Yo lo puse así y no queda #define echoPin 11
#define trigPin 12
long tiempo, distancia;
int md 3;
int mi 2;
int mda 5;
int mdr 6;
int mia 10;
int mir 9;
void setup() {
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop(){
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
tiempo=pulseIn(echoPin,HIGH);
distancia=tiempo*0.01715;
if (distancia=3){
analogWrite(mda,0);
analogWrite(mdr,0);
analogWrite(mia,0);
analogWrite(mir,0);
delay(500);
analogWrite(mda,0);
analogWrite(mdr,80);
analogWrite(mia,0);
analogWrite(mir,80);
delay(500);
analogWrite(mda,80);
analogWrite(mdr,0);
analogWrite(mia,0);
analogWrite(mir,80);
delay(1500);
}
else{
analogWrite(mda,80);
analogWrite(mdr,0);
analogWrite(mia,80);
analogWrite(mir,0);
analogWrite(2,80);
analogWrite(3,80);
delay(200);
}
delay(200);
}
en donde ahces esos proyectos
Hola, el diagrama esta en fritzing y el programa esta en Arduino
@@proyectos-jc muchas gracias
Como acomodo la estructura?
Hola!! No quiere funcionar mi sensor ultrasonico! Ya chequé la conexión y la programación y todo se ve bien, que puede ser?
Hola, lo que puedes verificar es:
* la conexión de pines del ultrasónico que coincidan con los pines indicados en el codigo.
*que el trig y el echo estén declarados y conectados al pin indicado
puedes probar de forma independiente el ultrasónico, para ver que funciones correctamente: minuto 3:08
ruclips.net/video/6zHBdQlTVJM/видео.html
Lo puse exactamente en arduinodroid y no funciona dice a final q "mir" no fue declarada en analógico pero solo del final
Hola, ya lo hice pero solo funciona un motor que puede ser?
Bien
Existen muchos factores que pueden influir en el funcionamiento.
verificar que este bien conectado cada uno de los pines, el puente H y los motores
Que la batería que utilizas entregue el voltaje suficiente para mover los dos motores
Como hago si quiero simular en el software proteus.
Instala la librería de Arduino para proteus armas el circuito y cargas el programa a la placa en proteus.
@@proyectos-jc si bro eso ya lo tengo instalado y todo. es mucho para explicar quiza me pase su gmail o su # o como le busco x fb para que le explique mejor. xf
Buen video bro
Hola este me podrias pasar el codigo es que es para un proyecto escolar
hola buenas noche los motores tienen alguna característica en particular o pueden ser cualquier motor. puede decirme que motores esta utilizando usted
Solo que sean motores DC del mismo tipo para que vallan a la misma velocidad.
si lo prefieres
Motorreductor 6v o Motor DC 6V con caja reductora
Dónde consigo los códigos?
0:
Hola, lo hice y si avanza pero de reversa cuando está el analogwrite está en 200 y 250, pero en 80 no avanza.
El programa lo tengo así:
#define echoPin 11
#define trigPin 12
long tiempo, distancia;
int mda=5;
int mdr=6;
int mia=10;
int mir=9;
void setup() {
pinMode(echoPin,INPUT);
pinMode(trigPin,OUTPUT);
digitalWrite(trigPin,LOW);
}
void loop(){
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
tiempo=pulseIn(echoPin,HIGH);
distancia=tiempo*0.01715;
if(distancia=13) {
analogWrite(mda,0);
analogWrite(mdr,0);
analogWrite(mia,0);
analogWrite(mir,0);
delay(500);
analogWrite(mda,0);
analogWrite(mdr,200);
analogWrite(mia,0);
analogWrite(mir,200);
delay(1000);
analogWrite(mda,0);
analogWrite(mdr,0);
analogWrite(mia,0);
analogWrite(mir,0);
delay(500);
analogWrite(mda,200);
analogWrite(mdr,0);
analogWrite(mia,0);
analogWrite(mir,200);
delay(1500);
}
else{
analogWrite(mda,200);
analogWrite(mdr,0);
analogWrite(mia,200);
analogWrite(mir,0);
delay(200);
}
}
veo un error lógico en el if contradiciendo la condición en 13
Si es menor o igual a 13 y Si es mayor o igual a 13
if(distancia=13)
cambiar a
if(distancia=3)
por otra parte debes tomar en cuenta el voltaje que proporcionas a tus motores.
Dependiendo si los motores tienen la fuerza para poder girar y avanzar.
si notas que va muy despacio, puedes aumentar la velocidad con el pwm a 230 o 250.
mas pwm= mas voltaje =mas velocidad
menos pwm= menos voltaje =menos velocidad
espero te sirva
Saludos.
No giran mis motores :'v
puedes probar cambiando la velocidad
en lugar de usar analogWrite(mda,80);
cambiar el 80 por un valor mas grande, máximo de 255,
analogWrite(mda,255); // da el 100% de ciclo de trabajo
en el minuto 5:35 del video