jueves, 28 de enero de 2016

Potencia PAP CNC II

Mas Trabajo en el Taller nuevo (por lo ordenado)

Segunda version del Control para controlar 3 motores paso a paso con TB6560 de toshiba (ejes X,Y,Z).

Estos funcionan con el puerto paralelo de una PC con Linux CNC.

Para ver el funcionamiento del mismo se me ocurrio hacer un tester con un arduino uno como control disparador pera los tres ejes usando un Lcdshield que tiene un teclado.










Aqui les paso el codigo IDE para la Placa Arduino Uno que utilice

// TesterCNC Output de 1 a 6 y estas se ajustan a la entrada de la placa TB6560AHQ
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int lcd_key =0;
int adc_key_in =0;
int temp=0;

#define btnRIGHT    0
#define btnUP          1
#define btnDOWN    2
#define btnLEFT      3
#define btnSELECT  4
#define btnNONE     5

int read_LCD_buttons();

int read_LCD_buttons()//Estaesunfunciongenerdapracomandrlosbotones

  {
   adc_key_in = analogRead(0);
  if (adc_key_in>900)   return btnNONE;
  if(adc_key_in<50)      return btnRIGHT;
  if(adc_key_in<250)    return btnUP;
  if(adc_key_in<450)    return btnDOWN;
  if(adc_key_in<650)    return btnLEFT;
  if(adc_key_in<850)    return btnSELECT;
  return btnNONE;

  }

void setup()

{



 

  lcd.begin(16, 2);

  lcd.setCursor(0,0);

  lcd.print("Probador CNC");

  pinMode(6,OUTPUT);  // eje z

  pinMode(5,OUTPUT);

  pinMode(4,OUTPUT);  // eje y

  pinMode(3,OUTPUT);

  pinMode(2,OUTPUT);  //eje x

  pinMode(1,OUTPUT);



}



void loop()

{
     
             lcd.setCursor(0,0);
              lcd.print("Mueve eje :");
              lcd.setCursor(0,1);
              lcd_key=read_LCD_buttons();

 

                  if (lcd_key == btnRIGHT)

                          {

                          lcd.print("X Derecha");

                          digitalWrite(1, HIGH);

                          pulso();

                          digitalWrite(1, LOW);

                          }

                  if (lcd_key == btnLEFT)

                          {

                          lcd.print("X Isquierda");

                          digitalWrite(2, HIGH);

                          pulso();

                          digitalWrite(2, LOW);

                          }

                  if (lcd_key == btnUP)

                          {

                          lcd.print("Y Derecha ");

                          digitalWrite(3, HIGH);

                          pulso();

                          digitalWrite(3, LOW);

                          }

               

                  if (lcd_key == btnDOWN)

                          {

                          lcd.print("Y Izquierda ");

                          digitalWrite(4, HIGH);

                          pulso();

                          digitalWrite(4, LOW);

                          }

                  if (lcd_key == btnSELECT)

                          {

                          lcd.print("Subir Z");

                          digitalWrite(5, HIGH);

                          pulso();

                          digitalWrite(5, LOW);

                          }      

                  if (lcd_key == btnNONE)

                          {                    

                          lcd.clear();

                          digitalWrite(6, LOW);// apago salidas



                          pulso();

                          }

                          digitalWrite(1, HIGH);

                          pulso();

                          digitalWrite(1, LOW);      

                     

}

int pulso()//funcioncontroldepulso

{

  delay(50);



}