Avatar
MEDIDOR DE FILAMENTO 3D CON ARDUINO
Jan 25th, 2020 | by: ELECTRONOOBS | Views 1230
Views 1230
Desde hace algún tiempo, quizás más de un año, quería hacer mi propia extrusora de filamento 3D para reciclar piezas impresas en 3D viejas o malas. Pero una extrusora de filamento necesita algunas partes, como el motor, la extrusora, el bloque de calentamiento, el proceso PID, pero también para medir el diámetro del filamento de salida para ajustarse en el bucle PID y tener siempre el mismo diámetro, alrededor 1,75 mm en este caso. Para eso necesito este dispositivo, un medidor de filamento basado en una pinza con buena precisión. Es por eso que he usado un calibrador de departamento con una resolución de 0.01 mm para poder ver variaciones de diámetro hasta esa escala. En este tutorial veremos cómo leer los datos de este calibrador utilizando los pines serie i2c que tiene el calibrador y conectarlo a un Arduino. Luego hacemos el soporte impreso en 3D, agregamos todas las partes y medimos el diámetro. Empecemos.
PARTE 1.1 - Abramos la pinza

Primero, aprovechemos la oportunidad y veamos cómo funciona un calibrador digital. Primero quito la etiqueta y saco 4 tornillos de la parte posterior de la caja de plástico. En el interior tenemos la PCB y tenemos que sacar 4 tornillos más pequeños. Entonces podríamos sacar el PCB principal. Tenga cuidado y no dañe las conexiones de la pantalla LCD. En el PCB podemos ver el soporte de la batería, las almohadillas para los botones, el microcontrolador debajo de ese punto protector negro, los pines i2c de la esquina inferior izquierda y en el otro lado tenemos muchas almohadillas de cobre. Para una mejor vista, veamos también lo que tiene el otro lado de la pinza ...

PARTE 1.2

Ok, entonces pelo la etiqueta de la otra parte de la pinza y una vez más tenemos muchas almohadillas de cobre aquí también. Entonces, ¿cómo dosis este trabajo? Esto va así. Cuando las pequeñas almohadillas de la pequeña PCB están frente a las otras almohadillas, crean algunos condensadores muy pequeños. Cuando los pads están exactamente uno frente al otro, la capacitancia estará en su valor máximo. Pero cuando estamos moviendo la barra de plástico hacia adelante y hacia atrás, la posición de las almohadillas no estará perfectamente alineada, y la capacitancia será más baja o más alta dependiendo de la posición. Entonces, todo lo que el microcontrolador tiene que hacer es contar los picos de capacitancia y contar los pasos que luego se traducen en distancia.

PARTE 2 - Conexión I2C

En una esquina de la PCB tenemos los pines i2c con GND, entrada positiva y los pines seriales para datos y reloj. Sueldo 4 cables a estos pines con colores negro, marrón, azul y rojo. Luego lo conecto a mi osciloscopio para ver lo que recibo. Puedo ver 6 bytes en serie y esos bytes representan cada dígito en la pantalla del calibrador. Entonces, todo lo que tenemos que hacer es leer estos bytes de datos en serie dentro del Arduino y obtener el valor final. Para eso, primero vea el siguiente esquema porque necesitamos agregar algo más.

 

Nosotros necesitamos
 
PARTE 3 - Esquemático

Tienes el siguiente esquema. Agregue esa resistencia limitadora de corriente 200R a la conexión GND del calibrador. También agregue una pequeña tapa para 3.3V y un diodo. Conecte el reloj y los pines de datos a los pines digitales D12 y D11 para la comunicación en serie i2c. Ahora puede agregar una pantalla LCD o jsut imprimir los valores al monitor en serie. Cargue el siguiente código y vea los valores en el monitor en serie.

PARTE 4 - Código

El código es simple. Definimos los datos y los pines del reloj. En el ciclo de lectura del calibrador, todo lo que hacemos es detectar el pin de datos de alta o baja en cada pulso de reloj y detectar si el bit es un 1 o un 0. Cuando tenemos los 8 bits, tenemos un primer byte y comenzamos a leer el siguiente. Obtenemos los bytes y obtenemos el valor en la pantalla. Dividimos eso por 100 y obtenemos mm y lo mapeamos por pulgadas también. Usamos el serial.print para enviar los datos al monitor en serie y listo.


for(int i=0;i<24;i++) {
  while(digitalRead(CLOCK_PIN)==LOW) {}
  while(digitalRead(CLOCK_PIN)==HIGH) {}
  if(digitalRead(DATA_PIN)==HIGH) {
    if(i < 20) value|=(1<<i);
    if(i==20) sign=-1;
    if(i==23) inches=1; // doesn't work with my caliper, always returns inches
  }
}


PARTE 5.1 - Construye el medidor de filamento

Para esto, primero descargue los archivos STL desde abajo. Imprima el soporte y agregue todos los aprts. Necesita rodamientos, tornillos, cinta elástica y tubo de teflón de 1.75 de diámetro interno. Agregue el primer rodamiento con un tornillo de 3 mm y tuercas. Luego agregue 2 pices de tubo de teflón por un lado y péguelo en su lugar. Finalmente, tendremos que hacer un pequeño agujero en la banda plástica de la pinza.




PARTE 5.2

Haz el agujero y agrega el segundo rodamiento. Asegúrese de que la pinza esté bien atornillada y agregue la cinta elástica y el proyecto estará listo. Ahora el rodamiento empujará contra el filamento todo el tiempo y así obtendrá siempre el valor real. Conéctelo al Arduino y lea los datos ...

Mira el video - Medidor de filamento

0 Comments

Login or Sign Up to post comments on this tutorial.