[DUDA] Rele para controlar la cama caliente y marlin

3,361 views
Skip to first unread message

HCarmonaCW

unread,
Sep 30, 2013, 4:15:00 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
Hola, 

  le acabo de instalar un rele 12V/20A para controlar la cama caliente a mi prusa i3, funcionando con Marlin V1. 

  Cuando le digo que caliente la cama, activa el rele repetida y rápidamente (clickclickclickclick...) , que me hace pensar que marlin está utilizando algún tipo de PWM. 

   He leído que debo desactivar el PID de la cama (y dejar el modo bang-bang), ya lo tengo desactivado, (comentada la linea del define), y aún así sigue haciendo estos clicks. 

  ¿Es esto normal con el PID desactivado? ¿Hay algo más que tenga que tocar en el firmware?

Xoan Sampaiño

unread,
Sep 30, 2013, 4:23:26 PM9/30/13
to asrob-uc3m-impresoras-3d
¿Qué voltaje tienes en la salida de la RAMPS donde conectas la bobina
del relé? En esa salida suele haber un LED: ¿también se enciende de
forma intermitente?

2013/9/30 HCarmonaCW <himarc...@gmail.com>:
> --
>
> ---
> Has recibido este mensaje porque estás suscrito al grupo "Clone Wars:
> Imprimiendo impresoras 3D" de Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus correos
> electrónicos, envía un correo electrónico a
> asrob-uc3m-impreso...@googlegroups.com.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> asrob-uc3m-i...@googlegroups.com.
> Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



--
Xoan Sampaiño [xoan@twitter|vimeo|flickr|delicious]

/\ Document Freedom Day - Liberate your documents
_\/` http://documentfreedom.org/ - March 27th, 2013

HCarmonaCW

unread,
Sep 30, 2013, 4:28:11 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
Hola Xoan, 

  el voltaje fluctua entre 11.1 y 11.7, lo que me hace pensar en PWM, el led se mantiene encendido, pero a la frecuencia de los clicks puede ser que no se apague porque no tiene tiempo...

Antonio Navarro

unread,
Sep 30, 2013, 4:52:31 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
No tengo ni idea de electrónica, pero aquí dicen de poner un diodo además del relé:

HCarmonaCW

unread,
Sep 30, 2013, 4:57:34 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
Salvo por el diodo, si, lo tengo asi. El diodo no es necesario para los mosfet que usamos, ya que ya lo tienen internamente. el diodo es para que la bobina tenga un camino seguro por el que descargar. Al menos eso es lo que tengo entendido.

Por los comentarios, supongo que entonces no es normal el click,click,click sin pid. Voy por n-sima vez a revisar la config del marlin, pero por lo que se, basta con comentar el define de pidbedtemp.

Antonio Navarro

unread,
Sep 30, 2013, 5:17:03 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
Mira la variable MAX_BED_POWER 255, por si tiene otro valor.

Yo tengo Marlin así:

// Bed Temperature Control
// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
//
// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
// If your configuration is significantly different than this and you don't understand the issues involved, you probably
// shouldn't use bed PID until someone else verifies your hardware works.
// If this is enabled, find your own PID constants below.
//#define PIDTEMPBED
//
//#define BED_LIMIT_SWITCHING

// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
// so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current

#ifdef PIDTEMPBED
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
    #define  DEFAULT_bedKp 10.00
    #define  DEFAULT_bedKi .023
    #define  DEFAULT_bedKd 305.4

//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune
//    #define  DEFAULT_bedKp 97.1
//    #define  DEFAULT_bedKi 1.41
//    #define  DEFAULT_bedKd 1675.16

// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED

Un saludo,

HCarmonaCW

unread,
Sep 30, 2013, 5:41:54 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
Igualita la tengo yo. 

Ya he dado con el problema. Al decirme que eso no era normal y que la configuración la tenía bien, me cogí un osciloscopio, y me da que marlin tiene un errorcillo en el control NO PID de la cama, ya que veo que genera un pico bajo cada 7.68 Hz, en vez de mantener la señal siempre a ON, que casualmente es la frecuencia para el modo PID. 

De todas formas me da que tengo los mosfet algo tocaditos, porque tuve que quitarlo porque no funcionaba y ahora a vuelto a funcionar (esta es la razón por la que he ido a por el método del relé, ya que me da que las soldaduras de la placa no estaban muy alla).

Se ve que mi problema es que el modelo de relé es demasiado sensible a ese pico (que dura nada) y le daba tiempo a desconectarse, le he enchufado un condensador en D8 y listo, adiós pico.

Gracias a ambos!!! 

HCarmonaCW

unread,
Sep 30, 2013, 6:04:29 PM9/30/13
to asrob-uc3m-i...@googlegroups.com

(Lo dejo aquí como referencia a futuras búsquedas de alguien que le pueda pasar lo mismo en el futuro): 

He mirado el código de marlin, y viendo lo que hace, con poner esta línea: 

#define MAX_BED_POWER 511

en vez del valor por defecto 255 que trae, ya se evita totalmente el pulso y ahora mi relé ya está feliz!

Eso sí, me tendré que acordar de cambiarlo si cambio el método a PID, ya que probablemente 511 hará que el PID funcione mal.



jrdetoro

unread,
Sep 30, 2013, 6:06:26 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
Le has puesto el condensador directamente en el D8? puedes poner una fotillo?

Xoan Sampaiño

unread,
Sep 30, 2013, 6:07:15 PM9/30/13
to asrob-uc3m-impresoras-3d
Mal no sé, pero probablemente con ponerlo en 256 ya llegue, ¿no? El
rango es 0-255.

PD. Y yo que te iba a decir que lo ideal sería mirar la salida con un
osciloscopio... :P

2013/10/1 HCarmonaCW <himarc...@gmail.com>:

HCarmonaCW

unread,
Sep 30, 2013, 6:08:50 PM9/30/13
to asrob-uc3m-i...@googlegroups.com

Y ahora me voy a de dar cabezazos contra al pared! Esto me pasa por no saber buscar en la wiki!! Arghh.

Me he encontrado esto: 


Y misma solución, salvo que en vez de poner 511, se usa 256, que también funciona.

Me voy a fustigar con la correa GT2 que me sobró hasta que aprenda a leer... :)

HCarmonaCW

unread,
Sep 30, 2013, 6:18:25 PM9/30/13
to asrob-uc3m-i...@googlegroups.com
Hola jrdetoro, 

    si, le he puesto el condensador primero de forma chapucerilla en D8, trincado con los tornillos y los cables, y respetando la polaridad. 

    Ya lo he quitado, si quieres lo vuelvo a poner y te posteo la foto, pero esta solución es mejor: 


   Si te pasa lo mismo prueba lo que se dice en la FAQ, funciona perfectamente!

 Un saludo!

jrdetoro

unread,
Sep 30, 2013, 7:32:02 PM9/30/13
to asrob-uc3m-i...@googlegroups.com

Gracias, en cuanto tenga la prusa delante pruebo a ver :)

3D Ros

unread,
Jan 8, 2016, 1:51:51 PM1/8/16
to Clone Wars: Imprimiendo impresoras 3D
Hola!
A mi me pasa lo mismo. El relé no para de hacer clics... se apaga y enciende continuamente.

Ya he cambiado lo de:
#define MAX_BED_POWER a 256 y 511 y sigue haciendo el ruido!
Es más la cama caliente está apagada y hace el ruido.

He probado con un relé nuevo y hace los mismo.
No sé que debo hacer.
Gracias

3D Ros

unread,
Jan 8, 2016, 2:53:53 PM1/8/16
to Clone Wars: Imprimiendo impresoras 3D
Ya encontré la solución:

en el Marlin, pestaña "Configuration.h" tienes que:
- comentar con // (desactivar) la línea que dice #define PIDTEMPBED
- descomentar (activar) la linea #define BED_LIMIT_SWITCHING
- en #define MAX_BED_POWER tienes que poner 256

con esto tendrás una conmutación cada 10-20 segundos

El único problema es que ahora no calienta con el PID y calienta subiendo 1 grado y bajando 0,2 (para que se entienda)
Reply all
Reply to author
Forward
0 new messages