Ajuda para programa controle de motor 12v com Disco De Encoder Incremental e Arduino

 

Preciso usar o  Arduíno para controlar um motor dc de 12 V.

Eu quero fazer uma Bobinadeira, tenho vários motores de 12v retirados de impressoras etc, 

Preciso fazer o programa, que eu configure para dar um numero de voltas que eu determinar, nesse caso, são 700 voltas. andei pesquisando varios tutoriais, mas esta dificil de achar a solução. 

Num tutorial, eu fiz essa pergunta, e o autor me disse o seguinte

Brincando com Ideias1 hora atrás

Olá Eduardo! Se eu entendi o seu objetivo, é isso mesmo. Você pode usar uma variável para contar as voltas. A cada volta, você acrescenta o valor 1 .E repete a execução até que a variável tenha o valor de 700.Mas o importante é considerar o tipo do motor que você esta usando para dar as voltas.

Se for um motor DC ou mesmo um motor AC, você precisará de algum tipo de sensor para que o Arduino possa contar as voltas.Vamos supor que o sensor envia um pulso lógico para o Arduino a cada volta do motor. Então você pode usar o laço WHILE, a cada pulso acrescentar 1 à variável e na condição do WHILE executar até que a variável seja igual a 700.

Se for um motor de passo, você consegue controlar as voltas pelo próprio Arduino e não precisa de um sensor. Basta usar um laço FOR, que por sua vez irá usar uma variável para contar as voltas.

Espero ter ajudado, amigo!   Um grande abraço.

Mas eu preciso de um programa exemplo.

Ja tenho todo o radware montado, a ponte H e a  Chave, Encoder, Óptico Arduino Fim De Curso,

: minor-bidi'>https://www.youtube.com/watch?v=R17Cmgx_kJ8

Tenho um motor com disco encoder, igual a esse:

http://produto.mercadolivre.com.br/MLB-700861324-motor-12v-com-disc...

Num outro tutorial, eu teria que saber os pulsos por volta, nesse caso, ele configurou para  20 voltas

32 pulsos por volta, ele configurou para dar 20 voltas e parar.

https://www.youtube.com/watch?v=R17Cmgx_kJ8 

TENHO ESSE PROGRAMA ABAIXO, MAS COMO ADAPTA-LO?

O disco que estamos usando tem 20 aberturas, e esse número deve ser colocado no programa (linha 11), original tinha 20 )  que vai usar essa informação para calcular a rotação do motor.

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//Programa: Sensor de velocidade Arduino LM393
//Autor: Arduino e Cia
 
//Pino ligado ao pino D0 do sensor
int pino_D0 = 2;
int rpm;
volatile byte pulsos;
unsigned long timeold;
 
//Altere o numero abaixo de acordo com o seu disco encoder
unsigned int pulsos_por_volta = 63;
 
void contador()
{
  //Incrementa contador
  pulsos++;
}
 
void setup()
{
  Serial.begin(9600);
  //Pino do sensor como entrada
  pinMode(pino_D0, INPUT);
  //Interrupcao 0 - pino digital 2
  //Aciona o contador a cada pulso
  attachInterrupt(0, contador, FALLING);
  pulsos = 0;
  rpm = 0;
  timeold = 0;
}
 
void loop()
{
  //Atualiza contador a cada segundo
  if (millis() - timeold >= 1000)
  {
    //Desabilita interrupcao durante o calculo
    detachInterrupt(0);
    rpm = (60 * 1000 / pulsos_por_volta ) / (millis() - timeold) * pulsos;
    timeold = millis();
    pulsos = 0;
 
    //Mostra o valor de RPM no serial monitor
    Serial.print("RPM = ");
    Serial.println(rpm, DEC);
    //Habilita interrupcao
    attachInterrupt(0, contador, FALLING);
  }
}

OBRIGADO

Exibições: 3400

Responder esta

Respostas a este tópico

Bem, tem varios modelos, eu vi esse tambem,  

Aplicação de interrupções externas com Arduino.Contador para enrolamento (máquina de enrolamento)

http://geekchickens.blogspot.com.br/2014/04/aplicacion-de-las-inter...

http://www.thingiverse.com/thing:1431330

https://www.youtube.com/watch?v=cF4cw41SMvY#t=12

https://www.youtube.com/watch?v=cF4cw41SMvY#t=12

Eduardo , por que ele usa uma placa RAMPs ?? 

Vai precisar de somente um modulo A4988 ...

Com o meu programa, poderá definir o RPM e quantidade de voltas. 

O uso também de um servo motor é legal pois assim você poderá direcionar o enrolamento do fio. 

Não tenho esse controlador de motor, A4988  tenho o outro...L298N

Ok , com o A4988 dá para usar micro passo - movimento mais suave. 

O L298 é mais bruto...kkkk ( se usar com o L297, dá para fazer  meio passo). 

Humm, não sabia disso, 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço