Go Down

Topic: Problemas circuito, motor con baja potencia L298N Y MCU8266 (Read 1 time) previous topic - next topic

famjaes

Recientemente estoy en un proyecto en el cual intento controlar un motor DC mediante  un MCU8266 y un L298N, en mi anterior post  tuve el problema que el motor no giraba con potencia, manejaba valores entre 0 - 255 ejemplo
analogWrite(255);  el motor apenas si se movía a pesar de estar a 255,  con ayuda de este  foro me dijeron que manejara  valores entre 0 y 1024, y parecía que el problema estaba resuelto, pero me di cuenta que no era así a pesar de que el motor lo tenia a  1024 y que  aumento significativamente su velocidad no alcanza su velocidad tope, ya que hice una  prueba conectando directamente el motor a la batería de 7.4v y este giro con mucha fuerza, creo yo casi tres veces mas rápido que conectado al circuito usando  el L298N y el MCU, mi duda que estará pasando, porque no logro que mi motor vaya a la máxima potencia cuando lo conecto al circuito, dejo una imagen con el circuito en cuestión que estoy usando        

tauro0221

Hi,
Recuerda que el MCU8266  las salidas de los pines son de 3.3 voltios. Trata pruebando  de aplicarle una senal de 5 voltios al L298N para ver si aumenta la velocidad. Las especificaciones del L298N dicen que el input tiene que ser 5 voltios. Haz la prueba para eliminar que el voltaje de salida de 3.3 voltios no es el problema.

surbyte

Porque le dicen MCU8266? jajaja me resulta tan raro.. es ESP8266 o nodemcu.

Dudo que el L298 no reconozco niveles 3.3V como TTL. Desde ya todo lo que esta encima de 2.7 es un HIGH y el LOW no presenta problemas.

Algo mas pasa por ahi.

famjaes

Bueno, ya hice la prueba de los 5V en el pin INT , también alimente el nodemcu con otra fuente, y desconecte el servo y no logro dar con la solucion, sera algún problema en mi programación, les dejo el código que tengo actualmente, estoy usando 1024, peor incluso probe hasta 2048 y la velocidad no aumento, otra cosa que olvide decirles, la Batería es de 7.4v y 1A 

Code: [Select]



void loop(){
intpacketSize = Udp.parsePacket();
if(packetSize)
  {
Udp.read(packetBuffer,packetSize);
//  packetBuffer[7] = 0;
packetBuffer[3] = 0;
potencia = atoi(packetBuffer);
direccion = atoi(packetBuffer + 4); 
}
digitalWrite(helice1,LOW);
digitalWrite(helice2,HIGH);
analogWrite(pwmmotor,1024);
servoMotor.write(direccion);   
delay(10);

}

   

tauro0221

Hi,
Otra cosa que he notado es que no has declarado los pines de control  como de  output. pinmode(x,OUTPUT)

Tambien lo que puede estar pasando es que el voltaje esta muy bajo de 7 voltios. Dependiendo de el voltaje de perdida atraves de los transitores del driver puede ser que esto haga que el motor no trabaje a la misma velocidad de cuando los conectas directo a la bateria. Trata the aumentar el voltaje del driver para ver si trabaja a la misma velocidad o puedes tratar de anadirle otra bateria en  serie para aumentar el voltaje a 14 voltios. Para comprobar lo de arriba explicado lee el voltaje atraves de los terminales del driver de entrada y la salida y el voltaje en la coneccion de los motores. Asi sabras si el voltaje de 7 voltios es muy bajo.


famjaes

En este momento no tengo otra bateria, pero a cabo de medir el voltaje, la bateria suminitra 7.35v y en el output del motor  suministra 7.23v, lo que no puefo medir es el amperaje

tauro0221

Hi,
Trata de configurar los pines como  outputs en el setup.
Code: [Select]

pinMode(helice1,OUTPUT);
pinMode(helice2,OUTPUT);

famjaes

Este es el código completo que estoy usando, en void setup configuro el pinMode
Code: [Select]

#include <Servo.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const char ssid[] = "Cumbancha 153 ";    //Definimos la SSDI de nuestro servidor WiFi -nombre de red-
const char password[] = "12345678";       

WiFiUDP Udp;

unsigned int localUdpPort = 8888;  // puerto en el que escuchamos
int direccion, potencia;
int neg = -1;
int pwmmotor = 12;
int helice1 = 14;   
char packetBuffer[8];
Servo servoMotor;

void setup(){   
 Serial.begin(9600);
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, password); 
pinMode(helice1, OUTPUT); 
servoMotor.attach(13);
Udp.begin(localUdpPort);

}

void loop(){
int packetSize = Udp.parsePacket();
if(packetSize)
  {
Udp.read(packetBuffer,packetSize);
packetBuffer[4] = 0; // Así es como vamos a separar las cifras
potencia = atoi(packetBuffer); // Procese los tres primeros digitos
direccion = atoi(packetBuffer + 5);  // Lo mismo, pero 4 bytes más adelante (lo que resta)
}


if(direccion == 0){direccion=90;}
digitalWrite(helice1,HIGH);
analogWrite(pwmmotor, 1024);
servoMotor.write(direccion);   
delay(10);
//Serial.print(potencia);
//Serial.print(",");
//Serial.print(direccion);
 //Serial.print ("\n");
}



surbyte

Un consejo.
Tienes un Arduino de 5V? Solo has una prueba simple con un ejemplo del L298 e intenta controlar ese motor y dinos como va. Si lo mueve a full o no

tauro0221

Hi,
Surbyte yo le sugeri de ponerle 5 voltios directamente a  la entrada del driver y el dice que hace lo mismo. Eso eliminaria al MCU 3.3 voltios de salida. Ahora yo no se si este driver tiene para controlar la corriente como el easydriver y algunos otra drivers.

Otra cosa que yo note es que el esta usando solamente N1 y el enable. Creo que el necesita usar N2. El N1 tiene que estar High y  el N2 tiene que estar LOW.

surbyte

La tensión de la lógica dice la hoja de datos que debe ser 5V en el Pin 9 y creo que ahi esta el problema.
Va de 4.5 a 7V pero no 3.3V

tauro0221

Hi,
Creo que lo que esta pasando es que el usa el N1 y deja flotando el N2. Esto hace que energiza solamente la mitad del bridge. Necesita tener el N1 HIGH y el N2 LOW. Adjunto el dibujo que ensena que N1 esta HIGH y el N2 esta LOW.


famjaes

Les agradezco a todos su apoyo, a aparentemente a cabo de estropear el l298n, conecte los 3.3v de nodemcua uno de los pines INT y bueno, ahora cuando alimento el L298N prende por unos segundos y luego el LED comenzara a desvanecer hasta apagarse, tiene que pasar un rato para que vuelva a encender peor ocurre lo mismo, el led se apaga y deja de funciona el L298N, a cabo de pedir un nuevo L298N uno mini llega el jueves, así que espero contar con su apoyo para el seguimiento de mi problema, de antemano gracias   

tauro0221

Hi,
Sentimos mucho pero cuando esta empezando esta cosa suceden. Por eso yo simpre compro dos por si dano uno. Estas seguro que es el L298N y no el pin de salida del MCU8266. El driver L298N es bastante robusto para danarse asi de facil. La salida del MCU es de solamente 3.3 voltios 10 ma. Trata usando otro pin para que te asegures cual de los se dano  el MCU o el L298N.

famjaes

hola amigos del foro retomando el post  compre un nuevo L298N mini y el problema persiste, es mas sin querer también  estropee el nodmcu, el caso es que compre otro nodemcu y probé con el L298N mini y los mismos, por hay tenia un L293D que se que no da el amperaje suficiente porque nada mas suministra  600 mah, el caso es que les deje un vídeo del problema, creo yo que todo el problema es de amperaje, si quiero mayor velocidad supongo que requiero mas amperaje, que driver me recomiendan, les dejo el vídeo, de antemano agradezco su ayuda.


https://www.youtube.com/watch?v=TPjypVdI20s

Go Up