Problemas circuito, motor con baja potencia L298N Y MCU8266

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

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.

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.

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

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);

}

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.

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

Hi,
Trata de configurar los pines como outputs en el setup.

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

Este es el código completo que estoy usando, en void setup configuro el pinMode

#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");
}

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

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.

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

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.

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

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.

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.

Hi,
Viendo tu video imediatamente veo que ese motor va usar una corriente que el driver no v a poder suplir. Esos motores usan una corriente bien alta. Vas necesitar un driver de mayor corriente que el que estas usando. Haz una prueba de leer la resistencia del motor. Eso te va dar una idea de la corriente que vas a usar. Surbyte le recomendo este driver que puede suplir una corriente de 30 amperios. Adjunto el link para que veas de que hablo. Djenos saber de la resistencia del motor. Yo te aconseje que necesitas para energizar el motor el N1 tiene que estar High= +5 y el N2 tiene que estar LOW = 0 voltios. Tratalo para ver que sucede. En video veo que solamente usas N1 o sea un cable. No se si tienes N2 a ground.
Otra cosa es que el motor que usas en el video no es mismo que ensenas en la foto al principio.

Muchas gracias, no he podido medir la resistencia del motor, ni los voltajes por que ando fuera, pero en cuento pueda las publico, revisando el link del driver tambien buscando como sol es un motor no se si este que encontré pueda funcionar https://articulo.mercadolibre.com.mx/MLM-561107053-driver-puente-h-de-motor-dc-pasos-vnh2sp30-30-a-arduino-_JM

No sé mucho de electrónica pero voy a intentar ayudarte. Hace poco monté un proyecto de un robot car que utilizaba 2 motores DC y ambos necesitan un mínimo de ·6V para funcionar, el módulo controlador de motores L298N y una placa Arduino uno Rev3 que necesita 5V. Si te das cuenta el voltaje total es de 11V. Solo cuando lo alimentaba el circuito con una bateria de plomo ácido de 12V y 7200mAh, funcionaba realmente bien. Si tu motor DC no funciona a pleno rendimiento es quizá un problema de voltaje insuficiente o es un problema de intensidad de corriente insuficiente.

Si no tienes una bateria plomo ácido de 12V y 7200 mAh para verificar si con ese voltaje y esa corriente hace funcionar tu circuito, una solución sería comprar varias pilas LIPO que sumen 11,1V o 12,6V ,15V, lo que fuere con su portabaterias, conectarlas en serie e incorporar un protector de placa para baterias LIPO para voltajes como los descritos Por ejemplo 4 baterías LIPO 18650 de 3,7V. Hay pilas LIPO que suministran 2000 mAh y creo que esa intensidad de corriente sería suficiente para alimentar tu proyecto.

En tu caso particular:

Utilizas un servomotor que por lo que he leido necesita 4 V como mínimo para funcionar.
Utilizas un módulo wifi que necesita 3V como mínimo
utilizas un motor DC que a lo mejor consume 3V como mínimo
Utilizas una placa de Arduino, 5V como mínimo.

Un voltaje total de 15V, quizá más.

Edito: Ten cuidado con el voltaje total que uses. UN voltaje excesivo para un dispositivo o varios dispositivos podrían dañar los componentes. En estos casos, es mejor hacer pruebas y quedarse corto que excederse. Hay reguladores de voltaje que hacen que el voltaje de entrada se reduzca y ofrezcan un voltaje de salida que tú deseas.Lee el datasheet de los componentes y averigua que rango de voltaje necesitan para funcionar.

Hi,
famjaes el link que tu adjuntaste para el driver muestra que es el mismo que yo puse pero el tuyo es de un solo driver y el mio es de dos drivers. Si vas a usar 4 motores entonces te conviene el que tiene dos en uno. Cuando puedas haz la prueba que te sujeri de poner el N1 = High y el N2 = 0. Creo que no puedes dejar el N2 flotando.