Autor Tema: Proyecto: Torno CNC controlado por Arduino  (Leído 262579 veces)

pacol

  • Visitante
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #615 en: 07 Marzo 2016, 21:13 »
Vamos avanzando  :) :)

Esquema eléctrico 0.1.48 beta

Ya que yo no soy electrónico necesito algún consejo. ¿Hay algún gurú electrónico por aquí?
La conexión del display, reglas en cuadratura, encoders X y Z, tarjeta SD, display MAX 7219 funcionan perfectamente. Pero tengo dudas en el diseño de las entradas optoacopladas de los finales de carrera y emergencia. Para esto me he basado en un esquema de dedalo1111, espero que no le importe  .ereselmejor . También hay dudas (aunque funciona) en la salida 0-10V para el control de la velocidad del motor, así como en las salidas dirección y marcha/paro. El circuito del adaptador de nivel lo he sacado de internet o sea que espero que funcione.

La idea es realizar una placa CI para pinchar en ella el Arduino (boca abajo) y conectar a ella todos los periféricos.



Un saludo
« última modificación: 07 Marzo 2016, 21:17 por PacoL »

borondes2010

  • Visitante
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #616 en: 08 Marzo 2016, 09:01 »
La verdad es que el foro esta casi sin gurus electronicos que quieran compartir su conocimiento..espero que el tio_gil lea este post y pueda aclararte tus dudas .brinda
« última modificación: 08 Marzo 2016, 12:55 por 100% Rural »

Desconectado Paloky

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 108
  • Ubicación: Mataró (BCN)
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #617 en: 08 Marzo 2016, 12:53 »
Hola.
Voy a echarte una mano en esto.

Las entradas optoacopladas, tienes que montarlas tal como la siguiente imagen:
La entrada, tienes que saber que voltaje tienes y calcular la R2 en funcion de este voltaje.
La salida, consigues una señal digital de 0v al voltage VCC.
Este circuito te sirve tanto para las entradas, como para el control del marxa/paro/dirección.


El circuit adaptador de nivel, esta bien. Este circuito, te permite conectar diferentes dispositivos con diferente tensión. Es un circuito bidireccional.

Entiendo que el circuit de control de velocidad, lo generas a traves de un PWM del Arduino ??
Si es así, usa este circuito, despues de poner el optoacoplador.
És un circuito amplificador con ganacia 2, que te pasará el PWM 0-5v a una tensión de 0-10v.
La resistecia y el condensador de 10K y 1uF de la entrada, actuan como un filtro para bajos, de forma que el PWM, lo "convierte" en una tensión continua que se aplica al amplificador.


Espero que te haya resulto las dudas.
Saludos.

pacol

  • Visitante
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #618 en: 08 Marzo 2016, 17:39 »
Ante todo Paloky muchas gracias por responder  .palmas .bien

La entrada optoacoplada ya está clara. La resistencia de "pull-up" no está dibujada porque la inserta internamente el Arduino al configurar esa entrada. La tensión a la que trabajan las entradas/salidas del DUE es 3V3. He insertado la resistencia de 220ohm porque la he visto así en algún circuito por internet he supuesto que estaba bien. Tomo nota por si no funciona y variaré su valor.

El circuito de control de velocidad es alimentado por PWM 0-3.3V a unos 20Khz desde el Arduino. Imagino que las dos resistencias en serie de 10K a la salida del operacional estarán calculadas para 5V no para 3V3. ¿Es así? Cambio entonces el valor de los componentes del filtro pasa-bajo de la entrada a los que has puesto tú.
¿La parte del optoacoplador está bien? lo digo porque a lo mejor falta una resistencia "pull-down" a 0V en la salida. Lo dejo así:



Un saludo

Desconectado TecnoWorld

  • Aprendiz
  • *
  • Join Date: Mar 2010
  • Mensajes: 1739
  • Ubicación: 11130 Chiclana de la Frontera
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #619 en: 08 Marzo 2016, 18:44 »
Tu último circuito de PWM está un pogo raro.

A un lado quieres usar un optocoplador, al otro lado conectas la masa (GND) a ambos lados del mismo y adémas conectas a la salida del optocoplador 3,3V y 12V.

Para contruir así no te falta de poner un optocoplador.

Haz así: La entrada del optocoplador conectas solo al Arduino.

La salida NO conectas a la masa, ni al 3,3V/12V. Tienes que usar un OPV rail to rail (latchup free), que puedes usar hasta la voltaje de alimentación.
El tensíon para suministrar la salida del optocoplador y el OPV viene del variador. el tiene salida de 24V o 10V. Así no cruzas la masa y tienes aislamiento real.

Saludos,
Ingolf
Kitamura Super Mini 300, Torno CNC con Speed-Cube y Beamicon2, Fresadora CNC con Beamicon2, Laser YAG, Laser CO2 con Triple Beast y Beamicon2, Prensa 100t, cabina chorro de arena, máquina de soldar SMT a vapor

Desconectado Paloky

  • Aprendiz
  • *
  • Join Date: May 2014
  • Mensajes: 108
  • Ubicación: Mataró (BCN)
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #620 en: 09 Marzo 2016, 08:46 »
Lo que dice TecnoWorld es correcto.  Si pones Optoacopladores, no puedes conectar las massas juntas de todo, si no, no las dejas optoacopladas.
Necesitas dos massas distintas, una para la parte digital (arduino, etc....) y la otra para el resto de circuito.
Para eso, necesitas usar reguladores de voltaje aislados.
Mira esta web, puedes encontrar lo que necesitas segun el voltage que quieras:
http://es.farnell.com/webapp/wcs/stores/servlet/Search?catalogId=15001&langId=-5&storeId=10176&categoryId=700000004422&sort=P_PRICE&st=dc%2Fdc&pageSize=25&showResults=true&aa=true

Saludos.

pacol

  • Visitante
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #621 en: 09 Marzo 2016, 14:04 »
La idea es aislar sólo las salidas/entradas al Arduino de forma que tensión del micro no aparezca de forma directa fuera del control, no pretendia aislar también las fuentes de alimentación.
Paloky es buena idea en el caso del control del velocidad usar esos conversores dc/dc aislados, buscaré alguno que genere 12V, gracias por el aporte.

Un saludo
« última modificación: 09 Marzo 2016, 14:18 por PacoL »

Desconectado TecnoWorld

  • Aprendiz
  • *
  • Join Date: Mar 2010
  • Mensajes: 1739
  • Ubicación: 11130 Chiclana de la Frontera
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #622 en: 09 Marzo 2016, 14:58 »
La idea es aislar sólo las salidas/entradas al Arduino de forma que tensión del micro no aparezca de forma directa fuera del control, no pretendia aislar también las fuentes de alimentación.

No tiene ningun sentido. Si quieras usar aislamento por optocopladores tienes que desarollar así. Si no te falta aislamento quita los optocopladores, que hacen solo un retraso en las señales y no te sirven para nada. Para convertir los niveles 2 resitencias son mucho mas baratos. Adicional un diodo doble (BY99 e.Ejemplo) del señal a gnd y V+ (aún el mircro tiene dentro y tambpoco falta).

Pero para evitar problemas haz una fuente para alimentar el micro y su componentes. Todo de este usa la misma masa. Las entradas/Salidas/PWM haces con tus optocopladores pero separas la masa y alimentacion. Asi es 100% seguro.
Kitamura Super Mini 300, Torno CNC con Speed-Cube y Beamicon2, Fresadora CNC con Beamicon2, Laser YAG, Laser CO2 con Triple Beast y Beamicon2, Prensa 100t, cabina chorro de arena, máquina de soldar SMT a vapor

pacol

  • Visitante
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #623 en: 09 Marzo 2016, 19:21 »
Necesitas dos massas distintas, una para la parte digital (arduino, etc....) y la otra para el resto de circuito.

Ok Paloky, lo dejo así y busco un conversor DC/DC aislado de 12V para el operacional.  Gracias de nuevo.



Un saludo

Desconectado madmondi

  • Aprendiz
  • *
  • Join Date: Nov 2010
  • Mensajes: 1202
  • Ubicación: Vilanova i la Geltru Barcelona
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #624 en: 26 Marzo 2016, 19:33 »
Buenas tarde a todos, hace bastante que no escribo por aquí pero os puedo asegurar que no estoy parado con la virgueria de Pacol, sigo adelante y en esta ocasión os pongo un enlace a un vídeo de las primeras pruebas con el proyecto de Pacol aunque con una pequeña modificación para poderlo manejar también con el Mach3 ya que considero que es un buen programa para manejar un torno CNC y es tan sencillo como girar un conmutador como podréis ver en el video, ahi va el enlace:

https://youtu.be/6feHS5L09ms
Ateos hasta que el avión se empieza a caer

pacol

  • Visitante
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #625 en: 26 Marzo 2016, 22:35 »
 .palmas .palmas .palmas .palmas .palmas .palmas .palmas .palmas .palmas .palmas .palmas .palmas .palmas

Te está quedando de primera Madmondi.

Ya tengo acabadas las funciones de control de scripts. Ya puede ejecutar scripts para realizar tareas complejas. En breve doy más información y veré si puedo subir un pequeño video.

De nuevo mis felicitaciones  :)

Un saludo

Desconectado Tomy73

  • Aprendiz
  • *
  • Join Date: Jul 2012
  • Mensajes: 431
  • Ubicación: BIZKAIA
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #626 en: 26 Marzo 2016, 22:41 »
Espectacular trabajo el de ambos. .ereselmejor .ereselmejor .ereselmejor .ereselmejor
Muchas gracias por compartirlo. .bien

Un saludo.

Desconectado madmondi

  • Aprendiz
  • *
  • Join Date: Nov 2010
  • Mensajes: 1202
  • Ubicación: Vilanova i la Geltru Barcelona
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #627 en: 26 Marzo 2016, 23:18 »
Gracias, a partir del lunes tengo tres dias mas y intentare poner en marcha el delantal con el display y los finales de carrera, ya ire comentando .bien
Ateos hasta que el avión se empieza a caer

Desconectado becario10

  • Aprendiz
  • *
  • Join Date: Ago 2015
  • Mensajes: 1571
  • Ubicación: Barcelona
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #628 en: 27 Marzo 2016, 07:01 »
Enhorabuena por vuestro trabajo en equipo. Espero sentado una nueva entrega
Cumbre  022,  fresa CEA, taladro sobremesa, sierra cinta Quantum, Soldadura aguila

pacol

  • Visitante
Re:Proyecto: Torno CNC controlado por Arduino
« Respuesta #629 en: 27 Marzo 2016, 10:49 »
Vamos añadiendo funcionalidades  :)

Ya lee y ejecuta scripts. He desarrollado unos comandos básicos para el control del torno, a continuación muestro los que funcionan actualmente. La idea es crearlos de forma semiautomatizada con el programa de CAM básico que estoy desarrollando.

Los scripts se colocan en una carpeta dentro de la SD para ir desarrollandolos para crear tareas más complejas.

Estarán parametrizados, ahora no lo están, de forma que se puedan llamar como una función cualquiera. Por ejemplo crear un cono partir de una pieza de dimensiones determinadas, como parámetros le pasariamos las dimensiones del material en bruto y las dimensiones del cono, así como el tipo de material. El control realizaría el desbaste y el acabado hasta las dimensiones finales.

En fin, esto es lo que se me ha ocurrido, pero ya digo que sólo soy aprendiz de CAM. Se admiten todas las críticas constructivas  .bien

//----------------------------------------------------------------------------------------------------------------------
//------------------------------- EJEMPLO SCRIPT ----------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------

//recta hasta (x,z) a velocidad vl (mm/s)
//RECTA(x,z,vl); 

//recta hasta (x,z) a vl sincronizada con el husillo (para roscas)
//eje sincro: 1 --> X, 2 --> Z
//avance por rev en mm
//RECTA_S(x,z,ejesincro,avsincro);

//arco de circunferencia a velocidad vl (mm/s) hasta (x,z) con centro en (cgx,cgz)
//sentido: h--> -1, ah--> 1, modo: exacto--> 1, interpolado--> 2, paso en mm
//ARCO(x,z,cgx,cgz,sentido,modo,paso,vl);

//curva Bezier hasta (x,z) con 3 puntos de control a velocidad lineal vl (mm/s)
//modo: exacto --> 1, interpolado --> 2, paso en mm
//CURVA_B3(x,z,xpc1,zpc1,xpc2,zpc2,xpc3,zpc3,modo,paso,vl);

//cambio herramienta a numeroh
//CAMBIOH(numeroh);

//pausa en milisegundos
//PAUSA(ms);

//conecta/desconecta refrigerante
//REFRIG([1,0]);

//control dirección (-1,0,1) y rpm (0-100000) husillo; dir == 0 --> STOP
//SHUSILLO([-1,0,1],[0,100000]);

//modo velocidad corte constante en m/min
//SVCONST([1,0],vcorte);

//llamada a subrutina parametrizada
//JSCALL(subrutina,[parametros]);

//inclusión script en línea actual
//JSINCLUDE(nscript);

//mostrar mensaje informativo en pantalla
//PRSTR(string);

//mueve el palpador eléctrico hasta tocar la pieza
//sx > 0 a x++, sx < 0 a x--, sz > 0 a z++, sz < 0 a z--
//TOUCH(sx,sz);

//----funciones manejo de ficheros
//crear fichero
//CREATEF(nfichero);

//abrir fichero exsitente
//OPENF(nfichero);

//escribir coordenada actual herramienta (x,z)
//WRITEF(nfichero,x,z);

//cerrar fichero
//CLOSEF(nfichero);
//----------------------------------

//---- no implementados todavía
//modo coordenadas locales: absolutas o relativas
//MODO_COORD([abs,rel]);

//establecer valor variable
//SETV(nvar,valor_var);

//sentencias:
for( ; ; ), if, else, GOTO, return etc...
//-----------------------------


//estructura básica script

INI_SCRIPT; //señal inicio script

//comandos

FIN_SCRIPT; //señal fin script

//----------------------------------------------------------------------------------------------------------------------

Un saludo
« última modificación: 27 Marzo 2016, 18:59 por PacoL »