Ajustar código

Pessoal, sou iniciante no Arduino e gostaria de ajuda para fazer uma alteração no código abaixo. Esse código e para controle de uma plataforma robótica cuja comunicação e feita via bluetooth e o controle dos motores e via Ponte H L298n. Gostaria de alterar o código para uso da ponte L298 comum, que tem apenas 4 pinos.

//Contagem de milisegundos para os delays
unsigned long startMilis = 0;
 
//Conexao 1 (IN1) do motor 1 (M1) = 1N1M1
int IN1M1=5;
//Conexao 2 (IN1) do motor 1 (M1) = 1N2M1
int IN2M1=6;
//Enable do motor 1 (para controlar a velocidade e direção)
int ENAM1=4;
 
//Conexao 1 (IN1) do motor 1 (M2) = 1N1M2
int IN1M2=10;
//Conexao 2 (IN2) do motor 2 (M1) = 1N1M1
int IN2M2=11;
//Enable do motor 2 (para controlar a velocidade e direção)
int ENAM2=9;

void setup()
{
  //Seta os Pinos dos Motores como Saida
 pinMode(IN1M1,OUTPUT);
 pinMode(IN2M1,OUTPUT);  
 
 pinMode(IN1M2,OUTPUT);
 pinMode(IN2M2,OUTPUT);
 
 
  Serial.begin(9600);
}
 
void loop(){
  //Captura o Caractere recebido na serial (bluetooth)
  char c =Serial.read();
 
  //1 =frente (chama o metodo mod e manda o inteiro que corresponde a direção)
 if(c == '1'){
    mod(1);
    delay(120);
 }
  //2 =direita (fechada)
  if(c == '2'){
    mod(2);
    delay(80);
 }
  //3 =esquerda (fechada)
  if(c == '3'){
    mod(3);
    delay(80);
 }
 
  //re
  if(c == '4'){
    mod(4);
    delay(120);
 }
 
 
   //parar
  if(c == '0'){
    mod(0);
 }
 
  //seta um valor diferente dos demais acima para parar o motor
  c =' ';
   //um pequeno delay para não parar os motores de imetiato
   delay(50);
   
   //para os motores
   digitalWrite(IN2M1,LOW);
   digitalWrite(IN1M1,LOW);
   digitalWrite(IN2M2,LOW);
   digitalWrite(IN1M2,LOW);
 }
  
//Metodo chamado dentro do loop
//que fará as ações nos motores
void mod(int x)
{
 
  //instacia o contador
  unsigned long currentMillis = millis();
 
 
 
    // 0 =Parar
    if(x == 0)
     {
   
       //Velocidade dos motores 0 para parar no pino ENA
        analogWrite(ENAM1, 0);
        analogWrite(ENAM2, 0);
       
        //desliga todoas as portas para não haver rotacao
        digitalWrite(IN1M1,LOW);
        digitalWrite(IN2M1,LOW);
 
        digitalWrite(IN1M2,LOW);
        digitalWrite(IN2M2,LOW);
 
  //Irá para Frente
   }else if(x == 1)
  {
         //Velocidade do Motor
        analogWrite(ENAM1, 1000);
        analogWrite(ENAM2, 1000);
       
        //Direciona o Motor 1 para a Frente
        digitalWrite(IN1M1,LOW);
        digitalWrite(IN2M1,HIGH);
 
       //Direciona o Motor 2 para a Frente
       digitalWrite(IN1M2,LOW);
       digitalWrite(IN2M2,HIGH);
  }
 
   //3 =esquerda (fechada)
  else if(x == 2)
  {
        //Apenas liga o motor da direita
        //para virar para esquerda
       
        //velocidade do motor
        analogWrite(ENAM1, 1000);
 
        //rotacao do motor da direita para frente
        digitalWrite(IN1M1,LOW);
        digitalWrite(IN2M1,HIGH);
 
  }
   //2 =direita (fechada)
  else if(x == 3)
  {
    //Apenas liga o motor da esquerda
        //para virar para direita
       
        //velocidade do motor      
     analogWrite(ENAM2, 1000);
 
       
      //rotacao do motor da esquerda para frente
     digitalWrite(IN1M2,LOW);
     digitalWrite(IN2M2,HIGH);
 
   
  }
 
       //4 =re
  else if(x == 4)
  {
        //Habilita ambos motores em velocidade maxima
        analogWrite(ENAM1, 1000);
        analogWrite(ENAM2, 1000);
       
        //rotacao do motor reversa da esquerda
        digitalWrite(IN1M1,HIGH);
        digitalWrite(IN2M1,LOW);
 
       //rotacao do motor reversa da direita
       digitalWrite(IN1M2,HIGH);
       digitalWrite(IN2M2,LOW);
  }
 
   //imprime o caracter enviado na serial (Para teste)
   Serial.println(x);
}

Não estou a perceber o que quer fazer. Já agora, quantos pinos é suposto ter o L298N?

luisilva:
Não estou a perceber o que quer fazer. Já agora, quantos pinos é suposto ter o L298N?

O L298n, o enable dos motores e feito via código, já o L298 que tenho o enable do motor e feito por jumper e não pelo código. Segue imagens.

L298n
https://www.google.com.br/search?q=pinagem+l298&espv=2&biw=1280&bih=856&source=lnms&tbm=isch&sa=X&ei=lytEVLGuFonBggSR5ILABA&ved=0CAYQ_AUoAQ#tbm=isch&q=controle+de+motor+com+l298&facrc=_&imgdii=_&imgrc=P3_BTCQZIk_5ZM%253A%3BfPZJ1urAA5zdfM%3Bhttp%253A%252F%252Fmlb-s2-p.mlstatic.com%252Fponte-h-de-potncia-controle-de-motor-l298n-arduino-7742-MLB5264712087_102013-F.jpg%3Bhttp%253A%252F%252Feletronicos.mercadolivre.com.br%252Fponte-h-de-pot%2525C3%2525AAncia-dual-motor-l298n-placa-controladora%3B900%3B700

Modelo que possuo!
https://www.google.com.br/search?q=pinagem+l298&espv=2&biw=1280&bih=856&source=lnms&tbm=isch&sa=X&ei=lytEVLGuFonBggSR5ILABA&ved=0CAYQ_AUoAQ#tbm=isch&q=controle+de+motor+com+l298&facrc=_&imgdii=_&imgrc=tPjESRc8tdrTVM%253A%3BwGvhGF9YbfcS3M%3Bhttp%253A%252F%252Fimg.filipeflop.com%252Fimages%252FMotores_Servos%252FPonte_H_L298n(1).jpg%3Bhttp%253A%252F%252Feletronicos.mercadolivre.com.br%252Fpecas-componentes-eletricos%252Fponte-h-de-pot%2525C3%2525AAncia-controle-de-motor-l298n-arduino%3B600%3B600

Mais uma vez não compreendo.
Em primeiro lugar, o problema não é devido a estar a usar o L298N ou L298 (Circuitos Integrados), mas sim usar a placa (ou shield, ou breakout board) "A" ou "B".
Em segundo lugar, na imagem da placa que diz possuir, é verdade que existe um jumper:

No entanto, o jumper pode estar ligado como mostra a figura, ou então pode estar desligado, ou ainda pode estar ligado como nas outras placas que mostra no outro link.

Já agora, na imagem da placa que diz possuir e que diz que é L298 vê-se a referência "L298N".

luisilva:
Mais uma vez não compreendo.
Em primeiro lugar, o problema não é devido a estar a usar o L298N ou L298 (Circuitos Integrados), mas sim usar a placa (ou shield, ou breakout board) "A" ou "B".
Em segundo lugar, na imagem da placa que diz possuir, é verdade que existe um jumper:

No entanto, o jumper pode estar ligado como mostra a figura, ou então pode estar desligado, ou ainda pode estar ligado como nas outras placas que mostra no outro link.

Já agora, na imagem da placa que diz possuir e que diz que é L298 vê-se a referência "L298N".

Sim luisilva, e o mesmo shield. Apenas a ativação das saidas para o motor que e feito de forma diferente. No caso do outro modelo o enable do motor e feito via código e não por jumper como nesse da imagem. Quero usar esse modelo do jumper para controlar dois motores via bluetooth com esse código que postei, mas usando o L298 da foto. Segue link do projeto original.
http://tecnologiaeciencia.com.br/arduino-carrinho-com-joystick-de-ps3pc-e-teclado/#sthash.w6SquutT.dpbs

Tem 2 hipóteses:
1- Mantém o código e os jumpers e liga apenas os "INx";
2- Mantém o código, retira os jumpers e liga os "INx" e os "ENx".