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: 35

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

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço