quem sabe me alterar o controlo do motor para ver so sinais de IN1 iN2 IN3 e IN4 e de sáida dos motores em analogwriter em vez da função digitalwriter

/*

Clube de ROBÓTICA ESGC - 2017

Autor Prof. Ramiro Martins

Estudo do controlador de velocidade L298N e

ensaio dos movimentos dos motores

Foram utilizados 2 demos um para os movimentos básicos(frente, trás, direita e esquerda)

e outro para a aceleração e desaceleração

*/

 

// Ligar os pins da controladora aos pins digitais do Arduino

// Motor A da esquerda

int enA = 2;

int in1 = 3;

int in2 = 9;

// Motor B da direita

int enB = 4;

int in3 = 10;

int in4 = 11;

 

void setup()

{

// definir todos os pinos de saída da controladora dos motores

pinMode(enA, OUTPUT);

pinMode(enB, OUTPUT);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

}

void demoUm()

{

// esta função irá fazer rodar os motores no mesmo sentido a uma velocidade fixa

// liga o motor A

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

// a velocidade é definida para 200 o intervalo é de 0 a 255

analogWrite(enA, 200);

// liga o motor B

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// a velocidade é definida para 200 o intervalo é de 0 a 255

analogWrite(enB, 200);

// as funções anteriores serão executadas durante 2 segundos

delay(2000);

// agora troca-se as direções dos motores A e B

// mas primeiro desligam-se os motores

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

// as funções anteriores serão executadas durante 0,2 segundos

delay(200);

//agora sim o motores começam a rodar em sentido contrário

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

// as funções anteriores serão executadas durante 2 segundos

delay(2000);

// agora desligam-se os motores

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

// as funções anteriores serão executadas durante 2 segundos

delay(2000);

// rodar para a esquerda seguindo em frente

// liga o motor A

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

// a velocidade é definida para 20 rodando mais devagar

analogWrite(enA, 20);

// liga o motor B

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// a velocidade é definida para 200 rodando mais depressa que o A - deslocamento para a esquerda

analogWrite(enB, 200);

// as funções anteriores serão executadas durante 2 segundos

delay(2000);

// rodar para a direita seguindo em frente

// liga o motor A

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

// a velocidade é definida para 200 rodando mais depressa que o A - deslocamento para a direita

analogWrite(enA, 200);

// liga o motor B

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// a velocidade é definida para 20 rodando mais devagar

analogWrite(enB, 20);

// as funções anteriores serão executadas durante 2 segundos

delay(2000);

}

void demoDois()

{

// esta função irá ligar os motores em toda a gama de velocidades possíveis acelerando e desacelerando

// nota que a velocidade máxima é determinada pelo próprio motor e a tensão aplicada

// os valores PWM enviados pelo analogWrite () são frações da velocidade máxima possível do hardware

 

// Liga os motores

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

// acelera de zero até a velocidade máxima

for (int i = 0; i < 256; i++)

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// desacelera da velocidade máxima até a zero

for (int i = 255; i >= 0; i--)

{

analogWrite(enA, i);

analogWrite(enB, i);

delay(20);

}

// agora desligam-se os motores

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

}

void loop()

{

// Teste subprograma demoUm

demoUm();

// tempo de espera entre o demoUm e o demoDois

delay(1000);

// Teste subprograma demoDois

demoDois();

// tempo de espera após o demoDois

delay(1000);

}

Exibições: 83

Responder esta

Respostas a este tópico

Boa noite José Armando, 

Explique melhor o que pretende fazer (detalhadamente). 

Esta complicado para entender o que quer. 

José Armando bom dia,

Se quiser qualquer tipo de ajuda minha, poste aqui! 

Não insista em me enviar mensagens particulares através do Lab de Garagem. 

Obrigado. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço