Autor Tópico: AJUDA! Programação para Plotter de 3 eixos usando L298 e PIC16F877A  (Lida 2717 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Preston

  • Novato
  • *
  • Posts: 2
  • Sexo: Masculino
  • GUIA-CNC
AJUDA! Programação para Plotter de 3 eixos usando L298 e PIC16F877A
« Online: 27 de Setembro de 2010, 13:42 »
EDIT - Esqueci de falar, que a programação na verdade, são só os eixos X e Y. Agora estamos usando dois PICS, um para controlar cada eixo.

Olá, sou novo no fórum, e ele me foi recomendado pelo meu professor. Estou postando aqui para pedir ajuda, pois estamos com problemas na programação do nosso projeto de feira: um Plotter (Você envia as coordenadas de um desenho para o computador, e através de uma porta paralela que se comunica com a placa, ele faz o desenho para você). Estamos usando o driver L298 e dois PIC16F877A com motores unipolares. O programa é o seguinte:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include <16F877A.h>
#fuses nowdt,hs,put,noprotect,nodebug,brownout,nolvp,nocpd,nowrt,reserved
#use delay(clock=20000000)

#use  fast_io(a)
#use  fast_io(b)
#use  fast_io(c)
#use  fast_io(d)
#use  fast_io(e)

#byte porta=0x05
#byte portb=0x06
#byte portc=0x07
#byte portd=0x08
#byte porte=0x09

void main()
{

set_tris_a(0b11111111);
set_tris_b(0b00000000);
set_tris_c(0b00000000);
set_tris_d(0b00000000);
set_tris_e(0b00000000);

   char values[] = {58,40,57,17,53,36,54,18};
   int passo1 = 0, passo2 = 0, passo3 = 0;
   unsigned char xold=0, yold=0, zold=0;

   
   while(true){

   if(input(PIN_A0))xold=0;
   if(input(PIN_A2))yold=0;
   if(input(PIN_A4))zold=0;

     
//****************** EIXO X ****************************************************

     if((!input(PIN_A0))&&(xold==0))
     {     
         if(input(PIN_A1))
    {
           (passo1<8 )?(passo1++):(passo1=0);
            output_b(values[passo1]);         
         }     
         else{
            (passo1>0)?(passo1--):(passo1=7);
            output_b(values[passo1]);
                     
         }           
         if(!input(PIN_A0))xold=1;
      }
     
       
     
//***************** EIXO Y *****************************************************     
     
         if((!input(PIN_A2))&&(xold==0))
     {     
         if(input(PIN_A3))
    {
           (passo2<8 )?(passo2++):(passo2=0);
            output_c(values[passo2]);         
         }     
         else{
            (passo2>0)?(passo2--):(passo2=7);
            output_c(values[passo2]);
                     
         }           
         if(!input(PIN_A2))xold=1;
      }
     
//***************** EIXO Z *****************************************************

 if((!input(PIN_A4))&&(zold==0))
{     
         if(input(PIN_A5))
         {
            (passo3<8 ) ?(passo3++):(passo3=0);
            output_d(values[passo3]);   
                   
         }     
     
         else{
            (passo3>0)?(passo3--):(passo3=7);
            output_d(values[passo3]);
                     
         }           
         if(!input(PIN_A4))zold=1;
     }
   }
}


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Consultando o Datasheet, verificamos que os valores para Meio-Passo são os citados no início (58, 36, etc...), mas não estamos conseguindo fazer funcionar corretamente.
Também estamos em dúvida com qual programa usar para controlar os motores (TurboCNC ou Mach3), e também precisamos de um programa que funcione para transformar arquivos dwf em G-Code.
Qualquer ajuda será extremamente bem-vinda.
Obrigado desde já
« Última modificação: 29 de Setembro de 2010, 15:08 por Preston »

Offline Robinho

  • "Você pode conseguir qualquer coisa que queira na vida, se você ajudar o suficiente outras pessoas a conseguirem o que elas querem."
  • Hobby
  • ****
  • Posts: 317
Re: AJUDA! Programação para Plotter de 3 eixos usando L298 e PIC16F877A
« Resposta #1 Online: 30 de Setembro de 2010, 11:39 »
Olá amigo,tudo bem? :)
Quanto ao melhor programa para controle, eu gosto muito do turbocnc, visto que alem de ser gratuito é leve e de facil manuseio,em plataforma "DOS",funciona em micros antigos é um dos mais leves que conheço!. Porém não tem interface gráfica como o mach ou seja se você quiser fazer um circulo, na tela do monitor não ira aparecer o desenho de um circulo se revelando de acordo com o desenvolvimento do trabalho.... O programa para conversão de dxf em G-cod gratuito é esse do link abaixo,lá também pode ser baixado o turbo cnc gratuitamente....
http://www.dakeng.com/ace.html
Um grande abraço! ;) se precisar de alguma coisa é so dizer!... ;)
Att:Robinho

 

/** * */