Busca en Electronismo

viernes, 23 de diciembre de 2011

Un poco de Codigo no viene mal

Pensaba subirlo la semana que viene, pero por las dudas lo subo ahora.. siguiendo con la tematica del CNC, y debido que nunca subi el software del Arduino, aca esta:

Este es el SETUP.
void setup () {
   lcd.begin(); //Crea e inicializa el LCD
   lcd.noCursor();
   Presentacion_lcd(); //aca hace una pequeña presentacion grafica.
   pinMode(13, OUTPUT); //es el led de encendido
   pinMode(sensorX, INPUT); //el boton de fin de carrera del ejeX
   pinMode(sensorY,INPUT); //el boton de fin de carrera del ejeY
   pinMode(sensorZ,INPUT); //el boton de fin de carrera del ejeZ
   Serial.begin(9600); //inicio el puerto serial y le pongo la velocidad de comunicacion
   Eje_X.setSpeed(200); //
   Eje_Y.setSpeed(200); // seteo la velocidad del motor a 90 revoluciones por minuto
   Eje_Z.setSpeed(250); //
   Inicializar_posiciones();
   Modo_manual();
}

Aca esta la presentacion que se realiza en el LCD que es de 2 filas.
void Presentacion_lcd(){
   lcd.cursorTo(1,0); //fila 1 columna 0
   lcd.print(" Borrajo ");
   lcd.cursorTo(2,0); //fila 2 columna 0
   lcd.print("CNC V 2.0.1");
   delay(5000); //espera 5 segundos y borra el lcd.
   lcd.clear();
}

El siguiente proceso mueve los motores hasta llegar a los sensores de final de carrera, de esta manera nos aseguramos que siempre este en (0,0)
void Inicializar_posiciones(){
   lcd.print("Inicializando...");
   iniciar(Eje_X,sensorX,posx);
   iniciar(Eje_Y,sensorY,posy);
   lcd.clear();
   lcd.print(" Preparada");
}

void iniciar(Stepper motor,int sensor,long pos){
  while ( digitalRead(sensor) != HIGH ){ // mientras el sensor este en off el motor se sigue moviendo
    motor.step(-1);
    delay(10);
}
pos = 0;
}

Y solo esto es el proceso Loop :
void loop(){
  byte DatoLeido[11]; //es un vector de 11 posiciones de byte ( caracteres en codigo ascii)
  Serial.write('1'); //mandamos un dato para avisar qeu estamos listos
  if (Serial.available() > 0){ //esperar que haya datos en el puerto serial
    leer_dato(DatoLeido);
    Ejecutar (DatoLeido);
}
delay(200);
}

Si bien todavia no explique el teclado y el display, les dejo para que se bajen los archivos del cnc.

en otra ocasion, hago un especial para explicar como funciona el teclado y como lo hice.

Descarga el Archivo para tu CNC. Arduino

Descarga el Software para la PC, es en Processing.

Espero que les sirva, y cualquier duda, ya sabe, pregunten!!

hasta la proxima!

Borrajo.

No hay comentarios:

Publicar un comentario