La pantalla LCD es un elemento que no es necesario para que la impresora 3D funcione, pero son tantas las ventajas que nos aporta que yo diría que es fundamental disponer de una, ya que con esto podemos hacer nuestra impresora totalmente autónoma además de ver datos como la temperatura de un simple vistazo.

Otra posibilidad que nos ofrece la pantalla LCD es la de controlar incluso durante la impresión los valores de temperatura, velocidad, FLOW... todo de una manera muy sencilla navegando a través del menú de la propia pantalla.

Tipos de pantalla LCD

En el mercado se pueden encontrar muchos tipos de pantallas LCD, cada fabricante dispone los elementos de una forma u otra y serigrafía la placa en uno u otro color, pero básicamente estos modelos se pueden resumir en dos, el que dispone de una pantalla LCD de 4 líneas y 20 caracteres por línea que se denominan "Smart Controller" y la que usa un display compuesto por una matriz multipunto de 128x64 puntos denominado "Full Graphic Smart Controller".

pantalla1

Entre un tipo e pantalla y otra, no hay mas diferencia que el tamaño y el controlador que usa Arduino para mostrar los datos. Ambas pantallas muestran la misma información y tienen los mismos menús y funciones, solo que las muestran de forma diferente.

Elegid la pantalla que mas os guste o que mejor se adapte a vuestra impresora, ya que a la hora de usarla no habrá ninguna diferencia.

Conexionado de la pantalla

Todas las pantallas LCD usan el mismo conexionado, no importa el modelo o fabricante, todas poseen 2 conectores con 10 pines cada uno al cual irán conectados cables planos que a su vez se conectarán a la RAMP's mediante un acoplador.

IMG 0715

IMG 0716

IMG 0717

Estos dos cables tienen funciones muy diferentes, el que va al conector 2 de la pantalla (en la mayoría de modelos) es el que se encarga de transmitir los datos desde la tarjeta SD hasta Arduino y el que está en el conector 1 se usa para mostrar datos en pantalla y para la alimentación de la misma.

Si no se va a trabajar con la impresora de forma autónoma imprimiendo directamente desde la SD, el segundo cable no sería necesario ponerlo, pero la gracia de la pantalla es esa precisamente... el tener una impresora totalmente autónoma que no necesite de un ordenador para imprimir, por lo que recomiendo poner los dos conectores.

Problemas a la hora de imprimir desde la SD

En muchas ocasiones al navegar por los menús de la SD o incluso en medio de una impresión autónoma, podemos tener serios problemas debidos al tipo de cable y al ruido eléctrico de la propia impresora, este efecto se produce de forma muy acusada en cables cuya longitud es superior a 50cm, ya que el tipo de cable plano que se usa normalmente no tiene apantallamiento eléctrico y el más mínimo ruido va a corromper los datos, para evitar esto hay que apantallar el cable.

IMG 0915

Se pueden usar ferritas u otro tipos de elementos para conseguir un buen apantallamiento, pero como somos Makers siempre buscamos una alternativa casera y económica y en este caso esa alternativa es usar papel de aluminio (con el que se envuelve el bocata) para apantallar el cable, tan solo hay que dar 2 o 3 vueltas con el papel de aluminio sobre el cable y recubrirlo de tesafilm o cinta aislante.

El recubrirlo con tesafilm o cinta aislante es muy importante!! el papel de aluminio es conductor de electricidad y si llega a tocar alguna parte de la electrónica podría causar un cortocircuito, dejando la electrónica inservible.

Habilitar la pantalla LCD en el firmware

Una vez que tengamos todo conectado, debemos de indicarle a Arduino que tipo de pantalla estamos usando, para ello debemos de habilitarla en el firmaware.

Para habilitar la pantalla en el firmware tan solo hay que seguir estos pasos:

1. Abrir el Marlin en el entorno de programación de Arduino.

2. Seleccionar la pestaña "Configuration.h" y desplazarse hacia abajo hasta encontrar la parte donde pone "LCD and SD support".

//LCD and SD support
//#define ULTRA_LCD  //general lcd support, also 16x2
//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
//#define SDSUPPORT // Enable SD Card Support in Hardware Console
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)

//#define ULTIMAKERCONTROLLER //as available from the ultimaker online store.
//#define ULTIPANEL  //the ultipanel as on thingiverse

// The RepRapDiscount Smart Controller (white PCB)
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
//#define REPRAP_DISCOUNT_SMART_CONTROLLER

// The GADGETS3D G3D LCD/SD Controller (blue PCB)
// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
//#define G3D_PANEL //(cambiado, le he quitado las // del principio)

//The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
//#define REPRAPWORLD_KEYPAD
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click

 

Como podéis ver en el código de arriba, todo está "comentado", es decir, tiene una doble barra delante del código que lo inhabilita convirtiéndolo en un comentario.

3. En esta parte se pueden ver varios enlaces que nos llevan a paginas donde podemos ver el modelo de pantalla exacto que habilita cada uno de los apartados. Comprobad cual es vuestra pantalla, y para habilitarla tan solo debéis de borrar las barras inclinadas "//" que se encuentran delante del "#define"

Por ejemplo, si tuviéramos una pantalla "FULL GRAPHIC Smart Controller", el texto que nos interesaría sería:

   //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Y para habilitarla tan solo habría que borrar las dos barras, quedando el texto:

   #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Si se quiere instalar la pantalla LCD Full Graphic Smart Controller, además de habilitarla, hay que instalar las librerias correspondientes en Arduino, si no se hace dará un error al compilar el firmware.Puedes descargar estas librerías de aqui

Al final una vez que tengáis todo conectado y la pantalla habilitada en el firmware, tan solo os quedará buscaros una caja para vuestra pantalla y ubicarla donde os guste más. en mi caso he usado una pantalla Smart Controler Full Graphic de SainSmart el cual tiene en thingiverse el diseño de la carcasa para descargar, vosotros buscad la vuestra imprimirla y a disfrutar de este genial complemento para la impresora 3d!!

IMG 0713IMG 0721IMG 0719 

 

 

 

 

Deja tus comentarios

Enviar un comentario como invitado

0
terminos y condiciones.
Cargar Comentarios Previos
  • Invitado - Edgar Leonardo Moreno

    Hola mucho gusto poder saludarte y a la vez felicitarte y agradecerte por tan excekente documentacion y videos para la realizacion del sueño de construir con nuestras manos una impresora 3d...seguire consultando tu valiosa y bien clara informacion ...pero si algo me falla te pido el favor de colaborarme gracias y un abrazo desde Colombia

  • Invitado - Matias

    Hola,
    Me sabrías decir si puedo descargar los esquemáticos y pcb de este circuito para agregar a mi impresora? Los estuve buscando y no los puedo encontrar!
    Gracias

  • Hola Matias, siento haber tardado en contestar, aqui te paso un par de links con información de las pantallas, en ambas tienes los esquemáticos y los archivos gerber donde puedes ver cada una de las partes, a ver si te sirve alguno, ya que ahora mismo que muchos fabricantes de estas pantallas y cambian bastante los componentes y el ruteado
    http://reprap.org/wiki/RepRapDiscount_Smart_Controller
    http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
    espero que te sea de ayuda!

  • hola , tengo un problema...todo lo tengo configurado incluso puedo mover la maquina desde la pantalla lcd pero cuando desconecto el usb la pantalla se pone negra, ya revise la conexion y todo esta en orden, mi ramps y el arduino mega 2560 son nuevos, a que crees que se deba

  • Hola Richard siento haber tardado en contestar, el problema que tienes se debe a que en algún momento del montaje dañaste el regulador de voltaje de la placa Arduino, este regulador es el que alimenta toda la electrónica incluida la pantalla, al estar dañado, solo se alimenta la electrónica cuando esta conectada al USB, es por ello que no puedes controlar ninguna función (ni imprimir ni nada) si no esta conectado el USB, para esto tienes 2 opciones, o cambiar el regulador de voltaje (te sale sobre 1 euro) o cambiar la placa Arduino.
    Siento la mala noticia, dentro de lo malo no es muy malo, pero la verdad es que es un poco coñazo tener la impresora siempre conectada al USB

  • Hola, antes de nada felicitarte por el blog.
    Estoy intentando cambiar la pantalla REPRAP DISCOUNT SMART CONTROLLER por la REPRAP DISCOUNT FULL GRAPHIC SMART CONTROLLER pero a pesar de parecer muy facil hacerlo (simplemente comentar una y descomentar la otra y cargar la libreria u8glib) no hay forma, al verificar me aparecen estos errores:

    Arduino:1.6.0 (Windows 7), Placa:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    ultralcd.cpp: In function 'void config_lcd_level_bed()':
    ultralcd.cpp:760:3: error: 'lcd' was not declared in this scope
    lcd.clear();
    ^
    ultralcd.cpp: In function 'void lcd_level_bed_cooling()':
    ultralcd.cpp:771:11: error: 'lcd' was not declared in this scope
    lcd.setCursor(0, 0);
    ^
    ultralcd.cpp:793:4: error: 'lcd' was not declared in this scope
    lcd.clear();
    ^
    ultralcd.cpp: In function 'void lcd_level_bed()':
    ultralcd.cpp:802:8: error: 'lcd' was not declared in this scope
    lcd.clear();
    ^
    ultralcd.cpp: In function 'void lcd_load_material_extrud_1()':
    ultralcd.cpp:946:5: error: 'lcd' was not declared in this scope
    lcd.setCursor(3, 2);
    ^
    ultralcd.cpp: In function 'void lcd_unload_material_extrud_1()':
    ultralcd.cpp:992:5: error: 'lcd' was not declared in this scope
    lcd.setCursor(3, 2);
    ^
    ultralcd.cpp: In function 'void lcd_init()':
    ultralcd.cpp:1420:5: error: 'lcd' was not declared in this scope
    lcd.clear();
    ^
    Error de compilación


    Gracias por tu ayuda.

  • Hola Antonio, algunas versiones de Arduino pueden dar problemas en la compilación, prueba a cambiar de versión del IDE, yo concretamente uso la 1.5.6-r2 y me funciona.
    Si por lo que sea te sigue dando el mismo error dímelo e intentamos otra cosa, un saludo!

  • Gracias por la respuesta Raúl, esa era una de las pocas versiones del IDE que no habia probado, pero vuelve a darme los mismos errores:

    Arduino: 1.5.6-r2 (Windows 7), Placa:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    ultralcd.cpp: In function 'void config_lcd_level_bed()':
    ultralcd.cpp:758: error: 'lcd' was not declared in this scope
    ultralcd.cpp: In function 'void lcd_level_bed_cooling()':
    ultralcd.cpp:769: error: 'lcd' was not declared in this scope
    ultralcd.cpp:791: error: 'lcd' was not declared in this scope
    ultralcd.cpp: In function 'void lcd_level_bed()':
    ultralcd.cpp:800: error: 'lcd' was not declared in this scope
    ultralcd.cpp: In function 'void lcd_load_material_extrud_1()':
    ultralcd.cpp:944: error: 'lcd' was not declared in this scope
    ultralcd.cpp: In function 'void lcd_unload_material_extrud_1()':
    ultralcd.cpp:990: error: 'lcd' was not declared in this scope
    ultralcd.cpp: In function 'void lcd_init()':
    ultralcd.cpp:1418: error: 'lcd' was not declared in this scope

    Lo curioso es que todos los errores son en lineas lcd.setCursor y lcd.clear y mas curioso aun es que en un mismo bloque de programa en el que hay mas de un lcd.setCursor en uno lo da y en otros no.
    He intentado tambien compilar con otras versiones de Marlin, pero en las que no da el error, no me permite el autoleveling.
    Un saludo.

  • Invitado - leandro

    Consulta ,tengo un problema con ese display es para una prusa I3. instale libreria, la pantalla cargo los graficos y no responde nada..solo reponde cuando conecto la pc

    de Cruz Alta, Córdoba, Argentina
  • Hola Leandro, ese es un problema conocido... por alguna razón el regulador de corriente de tu Arduino se habra estropeado y cuando conectas la impresora a la corriente, la tensión de 5V que debe mandar Arduino la manda por estar el regulador mal. Si conectar el USB los 5V van directamente del ordenador a la pantalla, por eso se enciende. Para solucionar esto tienes 2 opciones, cambiar el regulador de tensión de Arduino o directamente cambiar tu Arduino.