Calificación:
  • 2 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Autolevel, paso a paso (II): el sensor.
#1
Autolevel, paso a paso (I): cambiar el firmware.
 
Continúo con el tutorial que comencé en el post anterior, viendo una parte fundamental del autolevel: el sensor.

¿Qué sensor utilizo?
 
Lo primero que hay que hacer es decidir qué tipo de sensor vamos a utilizar.
 
A grandes rasgos, los sensores se dividen en dos tipos: de proximidad y de contacto.
 
Los primeros detectan la cama a distancia, mientras que los segundos necesitan tocarla para realizar la detección. Lógicamente, estos últimos son algo más complejos, ya que tienen que implementar un sistema para desplegar la sonda de contacto antes de medir y para retraerla una vez hecha la medición, ya que sino esta entraría en contacto con la pieza durante la impresión.
 
De este tipo son los BLTouch y similares. No voy a tratarlos ya que no los he usado y no he estudiado sus características, pero los que estéis interesados en este tipo de sensor, en este post tenéis mucha información.
 
Los de proximidad pueden ser de muchos tipos, pero los que más se utilizan en las impresoras 3D suelen ser dos: inductivos o capacitivos.
 
La diferencia entre ellos es el tipo de material que pueden detectar: los inductivos solo detectan metal, mientras que los capacitivos pueden detectar una gama más amplia, incluyendo vidrio y plásticos.
 
A efectos prácticos, los dos funcionan perfectamente, por lo que la decisión de usar uno u otro depende de sobre qué vamos a imprimir: si es sobre la cama directamente o con cinta, nos valen los dos; si vamos a poner un vidrio, por ejemplo, es conveniente poner uno capacitivo ya que, aunque hay algunos sensores inductivos que funcionan a través del vidrio, la mayoría no lo hacen.
 
En el apartado de conexionado, veremos los modelos más utilizados.
 
Colocación
 
Una vez hemos decidido que sensor utilizar, tenemos que fijarlo en el conjunto del extrusor, ya que tienen que moverse juntos. Naturalmente, habrá que implementar un soporte que se pueda anclar en algún punto de aquel, lo suficientemente robusto para que el sensor no se mueva una vez fijado en él.
 
Dos cosas hay que tener en cuenta: debemos procurar que el eje vertical que pasa por el centro del sensor, quede lo más cerca posible del eje vertical que pasa por el centro del agujero de la boquilla del extrusor y hay que colocarlo de forma que se pueda regular su distancia a la superficie a detectar.
 
Si no diseñamos nuestras propias piezas, en internet hay muchos modelos. Tendremos que buscar el que sirva para nuestro conjunto máquina-sensor y que mejor cumpla con las dos condiciones anteriores.
 
Conexionado
 
Este apartado y el de configuración, son los que más problemas pueden presentar.
 
A la hora del conexionado, hay que tener en cuenta dos aspectos: la alimentación del sensor y la forma en que entrega la señal de detección.
 
Veamos primero la alimentación.
 
Los sensores de proximidad, ya sean inductivos o capacitivos, se suelen conectar a la placa de la impresora de la forma más sencilla: sustituyendo al interruptor mecánico de fin de carrera del eje Z y utilizando su conector en la placa.
 
Esto presenta un problema: en los conectores de final de carrera solo hay 5V y no todos los sensores pueden trabajar con tan poco voltaje.
 
Además, saber si un sensor funciona o no directamente conectado al conector de fin de carrera, no es fácil sin probarlo. Externamente, los de un mismo modelo son todos iguales, ya que hay una infinidad de fabricantes para las mismas referencias. Pero la construcción interna varía mucho de unos a otros y unos sí funcionan y otros no.
 
Todos los sensores de proximidad que se venden para este fin, en sus características indican una corriente de funcionamiento superior a 5V. Normalmente, 6-36V o 10-30V. Pero, a pesar de ello, algunos pueden hacerlo solo con 5V.
 
Parece ser que el tipo SN04 es uno de ellos, a pesar de poner en sus características que hay que alimentarlo con entre 10V y 30V. Este es del tipo inductivo.
 
Entre los capacitivos, el más utilizado es el tipo LJC18A3-H-Z/BX, que, aunque he visto por ahí comentarios de que hay algunos que funcionan a 5V, a mí no me funcionaron ninguno de los dos que probé (de dos fabricantes distintos).
 
El conexionado de estos sensores (suponiendo que funcionen a 5V) es muy sencillo e incluso algunos ya traen colocado el conector. Todos los que conozco utilizan un convenio estándar de colores para los cables: marrón, negro y azul.
 
El marrón es el positivo de alimentación del sensor (+VCC), el azul el negativo (GND) y el negro el de señal.
 
La asignación de colores en el conector de la placa es el siguiente:
 
resim
 
La señal es el otro aspecto a tener en cuenta.

Atendiendo a como entregan esa señal de activación, los sensores pueden ser de cuatro tipos: NPN-NO, NPN-NC, PNP-NO y PNP-NC.

Las siglas antes del guion, nos indican que tipo de señal da el sensor. Estos sensores son como interruptores electrónicos que, al activarse, conectan el cable de señal (negro) con uno de los otros dos (marrón o azul). Los NPN son los que lo hacen con el azul, los PNP los que lo hacen con el marrón.

Las siglas después del guion, indican el estado del sensor cuando está inactivo. El NO indica que está abierto (es decir, no da señal) y el NC que está cerrado (da señal).

Para las Anet se necesita un sensor del tipo NPN-NO, ya que la placa interpreta como activado el fin de carrera, cuando el pin de señal del conector se pone a 0V (GND).
 
En el caso de que nuestro sensor funcione con los 5V del conector, ya lo tenemos resuelto. Pero si no lo hace (y queremos usarlo de todas formas), tendremos que alimentarlo con un voltaje en su rango de funcionamiento.
 
En las placas Anet solo tenemos accesibles dos voltajes en CC: uno el ya mencionado de 5V y otro el general de 12V.
 
Por suerte, este último se encuentra dentro de los límites de todos los sensores, por lo que nos sirve perfectamente, salvo por un aspecto: cuando el sensor NPN-NO no está activado (no da señal), por el cable de señal da un voltaje ligeramente menor que el de alimentación, es decir, más cercano a los 12V con los que lo estamos alimentando, que a los 5V que admite la placa por el conector de fin de carrera.
 
Para solucionar esto, hay que implementar un divisor de voltaje que convierta los casi 12V que da el sensor en esas condiciones, en los 5V que soporta la placa.
 
La forma más simple y efectiva, es usar un diodo Zener como regulador de tensión. Para ello hay que conectarlo en polarización inversa. Es decir, con el cátodo a positivo y el ánodo a negativo.
 
El esquema de conexión sería este:
 
resim
 
En los diodos Zener, el cátodo se indica con una raya en uno de sus extremos.
 
resim
 
Una vez colocado y conectado el sensor, antes de seguir adelante, habrá que probar que funciona.
 
Para ello, colocaremos el carro del extrusor suficientemente alto para tener margen de maniobra y le daremos una orden de movimiento hacia abajo en el eje Z.
 
Colocando un objeto apropiado delante del sensor, este tiene que actuar como si fuese el interruptor de fin de carrera, deteniendo el avance.
 
Si no sucede así, apagaremos la impresora antes de que la boquilla choque con algo (para eso el margen de maniobra) y comprobaremos qué es lo que está mal.
 
Una vez tengamos colocado, conectado y funcionando el sensor, solo nos queda regular su altura. Para ello, deberemos tener la superficie de impresión tal y como la vayamos a usar.
 
Todos los sensores tienen una sensibilidad que fija la distancia máxima de detección. En algunos esta sensibilidad es variable y se puede ajustar mediante un potenciómetro. Si nuestro sensor es de sensibilidad regulable, conviene regularlo para obtener la distancia máxima posible de detección.
 
Para medirla, movemos el eje Z con la mano hasta que se active el sensor (enciende la luz) y medimos la altura a la que queda de la superficie detectada.
 
Una solución sencilla para la regulación de la altura del sensor, es dejarlo a una tal que cuando se active, la boquilla del extrusor se encuentre a una distancia de la cama igual a la mitad de la distancia de detección aproximadamente.
Tal que así:
 
resim
 
Con ello, nos aseguramos que el sensor no choque con nada durante la impresión y que, en caso de fallo en la detección (que ocurre algunas veces, no tengo claro el porqué), tengamos algo de margen para parar todo antes de que choque la boquilla con la cama.
 
Una vez colocado probaremos, moviendo a mano el eje Z, que la luz del sensor se activa en el lugar adecuado.
 
Un punto importante a tener en cuenta es que, una vez montado el sensor y hasta que se configure adecuadamente el firmware, hay que tener cuidado de no hacer home al eje Z, ya que podría hacerlo con el sensor fuera de la cama y al no activarse el fin de carrera, podrían producirse daños.
 
Con esto quedaría lista la parte física, quedando solo ya la configuración del firmware para que controle correctamente el sensor y el proceso de autolevel.

Esto lo veremos en el próximo y último capítulo de este tutorial.

Autolevel, paso a paso (III): configuración.
Citar
#2
Muchas gracias por este aporte!! me he animado a meter el autolevel gracias a esto!!
Citar
#3
Gracias por la continuación. Adjunto foto de la clema de conexión.


resim
Citar
#4
Tengo una pregunta, sí coloco el diodo zener y la resistencia en el sensor cuando mido el voltaje que da el cable de señal no me da 5 voltios, me da 3,70 voltios es esto correcto? funcionará a 3,70 voltios? o es que he hecho algo mal?
Citar
#5
Hola, dependiendo del sensor y del diodo concreto, el voltaje puede ser mayor o menor.
Seguramente con ese voltaje te funcione correctamente, pero la mejor forma de saberlo es que hagas la prueba conectándolo a la placa.
No hace falta tener el Marlin ni el sensor instalado.
Conéctalo como se explica en el tutorial en lugar del final de carrera de un eje y mira si la impresora te indica que el final de carrera de ese eje se pone ON cuando se activa el sensor y OFF cuando no está activado.
Si lo hace así es que funciona correctamente.
Citar
#6
(22-04-2018, 11:31 AM)Simemart escribió: Hola, dependiendo del sensor y del diodo concreto, el voltaje puede ser mayor o menor.
Seguramente con ese voltaje te funcione correctamente, pero la mejor forma de saberlo es que hagas la prueba conectándolo a la placa.
No hace falta tener el Marlin ni el sensor instalado.
Conéctalo como se explica en el tutorial en lugar del final de carrera de un eje y mira si la impresora te indica que el final de carrera de ese eje se pone ON cuando se activa el sensor y OFF cuando no está activado.
Si lo hace así es que funciona correctamente.

Gracias por tu respuesta tan rápida, si, he probado y funciona correctamente, un saludo.
Citar
#7
Hola buenas aquí desde Barna para aver si con suerte y la ayuda de tu gran tutorial puedo montar el sensor en mi anet a6.
Valdría un diodor zener de 5,6 v.

Saludos
Citar
#8
Hola, normalmente la caida de tensión es algo mayor al voltaje nominal del zener debido a la electrónica interna del sensor.
Con uno de 5,1V, por el cable de señal suelen salir algo menos de 4V (como puedes ver en una respuesta anterior), así que seguramente con el de 5,6V siga siendo por debajo de los 5V que necesita la placa.
Un saludo.
Citar
#9
Ok gracias probaremos aver.
Citar
#10
Estoy haciendo el acondicionado de la señal con un divisor de tensión con dos resistencias, en reposo me entrega una señal de 5,4 voltios, soportará la entrada está tensión o debo bajarla a 5 voltios justos? Muchas gracias por todo el tutorial
Citar
#11
Hola, no creo que haya nadie (ni siquiera quien diseñó la placa) que te pueda dar una respuesta concluyente a esa pregunta.
Hay muchos usuarios que están teniendo problemas con los componentes de la placa en varios subsistemas (lectura de termistores, finales de carrera, etc) y los están utilizando dentro de los márgenes operativos teóricos, asi que imagínate si te sales de ellos.
En principio, creo que es una solución mucho más confiable y estable el montaje con el diodo Zener que solo las resistencias. Y con él te aseguras que el voltaje esté siempre por debajo de los 5V.
Además, no es necesario que la señal esté cerca de esos 5V, ya que lo único que se necesita es que se detecte como alta, lo que seguramente se consigue con 3V o poco más.
Citar
#12
Y una placa con opto como usan los muchachos de la cr10?
Citar
#13
Efectivamente, un optoacoplador, con los parámetros bien elegidos, sería quizá la mejor opción, dado que estarían separados los dos circuitos y se trabajaría en el lado de la placa con la corriente que da el mismo puerto.
Aunque puede que sea un montaje ligeramente más complicado para los usuarios inexpertos.
Cuidado con los esquemas que circulan por ahí, que he visto alguno mal conexionado utilizando estos sensores que normalmente son NPN-NO.
Citar
#14
Hola, he seguido los pasos como se indican en el esquema pero tengo un problema.
Resulta que aunque al poner un objeto a unos milímetros del sensor el led enciende pero no da la señal para que se detenga el eje z.

Lo único que creo que podría ser el modelo de sensor que no es como el que indicas:
Heschen Interruptor de sensor de proximidad capacitivo, detector LJC18A3-Z/BX, 10 mm, 6-36 V CC, 300 mA PNP, normalmente abierto (NO) 3 cables.

En la página web que lo compré había comentarios de que funcionaba bien en la anet A8.

Dejo una imagen del apaño:
resim

En el otro lado de los cables el marrón va a 12V +, el negro a la señal y azul a tierra, estos dos en una clema y directamente a la placa.

Gracias.
resim
Citar
#15
Hola, si el sensor que estás utilizando es PNP-NO, la señal que entrega está invertida respecto al que se indica en el tutorial, funcionando para este caso como si fuese un NPN-NC.
Cuando está en reposo, el cable de señal está a GND y cuando se activa pasa a 12V (5V al otro lado del divisor), por lo que tienes que configurar la lógica del final de carrera de Z y del sensor invertida.
Es decir, #define Z_MIN_ENDSTOP_INVERTING y #define Z_MIN_PROBE_ENDSTOP_INVERTING, los dos a false.
Con eso, debería funcionar correctamente.
Citar
#16
(14-06-2018, 09:36 PM)Simemart escribió: Hola, si el sensor que estás utilizando es PNP-NO, la señal que entrega está invertida respecto al que se indica en el tutorial, funcionando para este caso como si fuese un NPN-NC.
Cuando está en reposo, el cable de señal está a GND y cuando se activa pasa a 12V (5V al otro lado del divisor), por lo que tienes que configurar la lógica del final de carrera de Z y del sensor invertida.
Es decir, #define Z_MIN_ENDSTOP_INVERTING y #define Z_MIN_PROBE_ENDSTOP_INVERTING, los dos a false.
Con eso, debería funcionar correctamente.

Muchísimas gracias por contestar tan pronto.

He encontrado el código en configure.h en // Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
Lo suyo sería modificar esos parámetros a la hora de actualizar la placa con el firmware del Marlin.

Por otra parte, supongo que si decidiera más tarde cambiar a uno NPN-NO no habría problema en volver a actualizar el firmware (volviendo a cambiar las dos opciones a true).

Lo digo por que he visto este: https://www.amazon.es/dp/B072FTGJYW/?col..._lig_dp_it y entre que llega y no llega me apañaría con el que tengo.

De nuevo mucha gracias. No espera irme a la cama con una respuesta.
Para ti campeón  Number_one

[EDIT]
He estado probando cambiando esos 2 parámetros a "false" al darle al eje Z en negativo para que baje no funciona.

Tengo un sensor inductivo, el SN04-N:

resim

Con una clema lo conecto todo directamente a la de Endstop Z de la placa y va perfectamente. El problema es que uso cristal y no llega a detectar la cama.

Por cierto, tengo 2 placas Anet 1.0. La que venía con la impresora que se fastidió la parte donde va conectada la cama caliente y otra nueva que me enviaron. He probado con ambas con igual fortuna.
Estoy por pensar que el sensor este roto. No sé.
resim
Citar
#17
Una pregunta. El polo que va a los 12v, exactamente a qué parte de la placa se conecta? A una de las entradas de alimentación de la placa? A uno de los ventiladores, que van a 12v?
Citar
#18
Hola, si te refieres al de alimentación del sensor, va conectado directamente a la alimentación de 12V de la fuente, bien en ella misma o en el conector de alimentación de la placa.
Citar
#19
Muchísimas gracias, como siempre. Disculpa la tardanza con la respuesta pero es que hasta hoy no me he puesto. Ya lo tengo conectado y parece que va bien.
Voy a por el último paso de la calibración. Cruzo los dedos!
Citar
#20
saludos mi gente
le cuento ya instale todo e hice todo el tuto
verificado al pie de la letra
ok tengo un problema y es que cuando verifico el sensor con el comando
M119
x_min: open ( NO Home)
y_min: open (No Home)
z_min: TRIGGERED (activado) (osea con lus encendida)

(desactivado) luz apagaa
x_min: open (No Home)
y_min: open(No Home)
z_min: open

creo que hasta ahora bien
e notado que ya todo ajustado
y e revisado todo veo q se queda
pegado el sensor ok explico
si se hace el home la luz enciende con el sensor a 2mm (e probado a 1mm, 2mm,3,4,5 etc..) y el mismo resultado
cuando se aleja de la cama (cristal) se apaga y cuando se supone haga el desenso lo hace bien enciende pero continua
bajando .. si le ajusto mas la sensabilidad con el tornillo(potenc) llega el momento q para
ok le doy a Home otra vez antes reseteo la targeta (desconecto de la fuente de energia)
ya me e vuelto loco jajajaja e verificado Marlin1.1.9 que me decidi a instalar por recomendacion.
cambio parametros en los endstops

#define X_MIN_ENDSTOP_INVERTING (false) // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING (false) // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING (true) // set to true to invert the logic of the endstop.(NO lo toco)
#define X_MAX_ENDSTOP_INVERTING (false )// set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING (false) // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING (false) // set to true to invert the logic of the endstop. (lo e cambiado)
#define Z_MIN_PROBE_ENDSTOP_INVERTING (true) // set to true to invert the logic of the probe. (NO lo toco)

cuando le doy mas ajuste siempre resseteo la targeta llega el momento
que el sensor se queda ensendido aun esto haciendo el home sube normal
baja un poco y sigue subiendo como si quisiera q la luz se apagara hasta q se detiene pero sigue encendida la luz
obvio a mucha distancia de la cama

en fin estoy usando resistencia 15k y 10k que son las que tenia a la mano y se acerca a los 5v recomendados para la anet y 12v de alimentacion aparte
alguna recomendacion se los agradecere ... sera el sensor defectuoso?
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Autolevel, paso a paso (III): configuración (ACTUALIZADO y EDITADO). Simemart 201 21,988 Hace 40 minutos
Último mensaje: jcardete
  duda power supply 3d printer y sensor capasitivo edgarc 9 205 07-11-2018, 05:38 PM
Último mensaje: Simemart
  Autolevel, paso a paso (I): Cambiar el firmware. Simemart 59 11,760 11-08-2018, 09:37 PM
Último mensaje: Simemart
  CONSULTA Autolevel, vale la pena? marcre 6 469 08-08-2018, 10:48 PM
Último mensaje: Simemart
  Este sensor me vale como autolevel? vegetto 2 316 28-06-2018, 02:37 AM
Último mensaje: vegetto