Programação: Parte 2

Aprimorando o programa

O programa básico funcionou bem, serviu para testar os motores usados da CNC antiga, na verdade motores antigos de aparelhos de escanerizar documentos. Porém observamos algumas deficiências.

Nos pequenos motores de teste, acionados pelo drive 2003, não houve qualquer tipo de problema, os motores giravam firmemente; foram usadas as bibliotecas básicas do Arduino; foram usadas bibliotecas mais avançadas, com recursos de aceleração e motores múltiplos.

Mas ao usar os motores antigos do CNC com o drive 2803, começamos a enfrentar problemas. O mais grave deles é que o motor atendia bem os comandos do programa, mas tinha muito pouca força, sendo que a redução dos "carros" da CNC, não conseguiam vencer o menor esforço.

Nosso primeiro diagnóstico, indicou que a tensão dos motores estava baixa, mas logo descobrimos que não. Após alguns testes e observações acuradas, entendemos que o problema só ocorria com o drive 2803.

Finalmente detectamos, que o 2803, tem o sinal de saída invertido em relação ao sinal de entrada. Isto é chamado de lógica inversa.

Portanto, enquanto o Arduino gerava um sinal alto em 4 saídas digitais, um de cada vez, para acionar as bobinas na ordem, o drive 2003 também enviava sinais amplificados um de cada vez para o motor de passo. Porém o drive 2803 não opera assim, ele enviava 3 sinais amplificados e deixava uma bobina do motor sem alimentação.

Desse modo o motor gira por que uma bobina está desenergizada e não por que  uma bobina está energizada.

A razão disso é que o drive baseado no 2003, veio pronto com o motor, e seus LEDs que monitoram as bobinas, são ligados em paralelo com as bobinas do motor, e o "drive" que montamos no protoboard ficou diferente, com os LEDs de monitoramento, montados entre os emissores dos respectivos transistores e o comum. Desse modo os LEDs ficariam acesos quando as bobinas estivessem desenergizadas.

A solução para o problema foi modificar o nível de saída do Arduíno, o sinal baixo foi mudado para alto e vice-versa. Com isso foi corrigido o problema dos LEDs, mas a lógica de acionamento ficou invertida, e o motor passou a operar com 3 bobinas sendo ligadas em cada passo. O que naturalmente causou maior corrente no motor.

Observe no teste; - o grupo de leds que mostra a saída do Arduíno tem 3 leds apagados e 1 aceso, do mesmo modo os leds do drive 2003, a direita da imagem.  - grupo de leds (vermelhos) que monitoram o drive 2803, que aciona o motor da esquerda, tem 3 leds acesos e somente 1 apagado.

No programa foi necessário inverter os níveis das saídas usadas no Arduíno. Veja a listagem abaixo;

....
// Rotina a ser executada em loop
void loop() {
  estbotaoE = digitalRead(botaoE);
  // Verificando o estado do botaoE
  // e acendendo o led correspondente
  if (estbotaoE == HIGH) {
    digitalWrite(led1,LOW);
    digitalWrite(led2,HIGH);
    digitalWrite(led3,HIGH);
    digitalWrite(led4,HIGH);
    delay(T);
  } else {
    digitalWrite(led1,HIGH);
    digitalWrite(led2,HIGH);
    digitalWrite(led3,HIGH);
    digitalWrite(led4,HIGH);
  }
  if (estbotaoE == HIGH) {
    digitalWrite(led1,HIGH);
    digitalWrite(led2,LOW);
    digitalWrite(led3,HIGH);
    digitalWrite(led4,HIGH);
    delay(T);
  } else {
    digitalWrite(led1,HIGH);
    digitalWrite(led2,HIGH);
    digitalWrite(led3,HIGH);
    digitalWrite(led4,HIGH);
  }...


Desse modo temos que considerar o que queremos monitorar com os LEDs; se as bobinas acionadas, ou o sinal enviado pelo Arduíno.

Veja no vídeo os testes dos motores acionados segundo os dois arranjos.


Motor de passo no Arduíno - Ainda é básico III from Edu Bambu on Vimeo.

Neste vídeo é mostrado que os motores giram seja qual for o arranjo, tanto com o sinal alto para cada passo, ou com sinal baixo para cada passo. O que vai mudar é a corrente total na alimentação do motor, e o torque do motor.

Veja o vídeo a seguir.


Motor de passo no Arduíno - Ainda é básico IV from Edu Bambu on Vimeo.

Neste vídeo temos o motor do mecanismo de escaner alimentado segundo os dois arranjos, com um amperímetro em série com a alimentação do motor, é possível ver a diferença de corrente, tanto com o motor freado, quanto em marcha.

Nenhum comentário:

Postar um comentário