terça-feira, 15 de abril de 2025

Projeto: Braço Robótico (IV)

 Programa Arduino para acionar o L298N:

// Defina os pinos conforme as ligações entre Arduino e L298N

#define IN1 8    // Input 1 (L298N - Out1)

#define IN2 9    // Input 2 (L298N - Out2)

#define IN3 10   // Input 3 (L298N - Out3)

#define IN4 11   // Input 4 (L298N - Out4)

#define ENA 5    // Enable A (para as saídas 1/2)

#define ENB 6    // Enable B (para as saídas 3/4)

int delayPasso = 5; // tempo entre passos em ms (ajuste conforme necessário)

void setup() {

  // Configurar pinos como saída

  pinMode(IN1, OUTPUT);

  pinMode(IN2, OUTPUT);

  pinMode(IN3, OUTPUT);

  pinMode(IN4, OUTPUT);

  pinMode(ENA, OUTPUT);

  pinMode(ENB, OUTPUT);

  // Habilita ambos canais do L298N

  digitalWrite(ENA, HIGH);

  digitalWrite(ENB, HIGH);

}


void loop() {

  // Gira para um sentido (horário)

  for (int i = 0; i < 200; i++) { // 200 passos = 1 volta em motores 1.8º/passo

    passoHorario();

  }

  delay(1000);


  // Gira para o sentido oposto (anti-horário)

  for (int i = 0; i < 200; i++) {

    passoAntihorario();

  }

  delay(1000);

}


// Sequência para um passo no sentido horário

void passoHorario() {

  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);

  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);

  delay(delayPasso);

  digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);

  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);

  delay(delayPasso);

  digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);

  digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);

  delay(delayPasso);

  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);

  delay(delayPasso);

}


// Sequência para um passo no sentido anti-horário

void passoAntihorario() {

  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);

  digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);

  delay(delayPasso);

  digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);

  digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);

  delay(delayPasso);

  digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);

  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);

  delay(delayPasso);

  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);

  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);

  delay(delayPasso);

}

Nenhum comentário:

Postar um comentário