Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
No reconoce comando M300
#1
Hola, estoy intentando añadir el comando M300 S300 P500 para que avise del fin de impresion, pero al enviarlo me sale un error de que no reconoce el comando. 
Tengo el Marlin 1.1.9

He activado en configuracion.h: 
// SPEAKER/BUZZER
#define SPEAKER
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
#define LCD_FEEDBACK_FREQUENCY_HZ 5000 

Tengo Mega 2856+ramps 1.4+TFT MKS 2.8

Que tengo que hacer para usar el buzzer que tiene la pantalla MKS?
Citar
#2
Hola, por lo que he podido ver en un primer vistazo, hacer que el zumbador (buzzer) de la pantalla MKS TFT ejecute tonos con Marlin no es tan sencillo (por no decir muy complicado).
Ese tipo de pantalla no se comunica con la placa mediante pines específicos como las "normales", sino por UART.
Pero Marlin solo contempla dos vías de comunicación para el control del zumbador: por un pin específico (BEEPER_PIN) o por I2C.
Además, las dos configuraciones son mútuamente excluyentes.
Por BEEPER_PIN se activa al seleccionar la placa (si va incluido en ella) o un controlador de pantalla que lo incluya y el parámetro BEEPER_PIN tomará el valor definido en el archivo de definición de pines de la placa que se esté utilizando.
La de I2C solo se activa con dos tipos de controladores: LCD_I2C_PANELOLU2 y LCD_I2C_VIKI.
Así que la única via remotamente posible de comunicación sería por I2C pero, de momento, no se me ocurre una forma de interconectar ese bus con el UART.
Otra posible vía sería al abordaje: atacar directamente los terminales del zumbador con líneas desde la placa (supongo que será de 5V como el de las Reprap). Aunque eso ya es bajar a la arena.
Citar
#3
He conectado el zumbador al pin 33 (BEEPER_PIN) del AUX 4 de la ramps tal como viene en el marlin segun la pantalla que monta pero continua dandome el error

SENDING:M300 S400 P1000

echo:Unknown command: "M300 S400 P1000"

gracias por la ayuda. Seguire investigando
Citar
#4
Hola, creo que el problema que tienes es que Marlin no sabe que tienes un zumbador.
Para que el comando M300 entre en la cola de proceso, necesita tener la variable lógica HAS_BUZZER con valor verdadero y solo será así si está definido el BEEPER_PIN o bien, si se define uno de los controladores de pantalla I2C que indicaba en mi respuesta anterior.
Por curiosidad. ¿que controlador LCD es el que tienes configurado en el archivo Configuration.h?
Citar
#5
La pantalla es una MKS TFT 2.8 y en marlin  en configuration.h esta definida como DISPLAY_CHARSET_HD44780 JAPANESE
Citar
#6
Hola, eso que indicas no es un controlador de pantalla, sino el juego de caracteres para las pantallas de tipo texto.
Como puedes ver se encuentra en la sección LCD Character Set.
Los controladores de pantalla se habilitan un poco más adelante en el fichero, en varias secciones LCD / Controller Selection.
Pero no busques la MKS TFT 2.8 porque no hay definición en Marlin para ella, dado que no hay nada que definir debido al tipo de conexión que utiliza.
Comprueba si tienes algún controlador habilitado en alguna de las secciones LCD / Controller Selection.
Citar
#7
Lo he comprobado y no tengo ninguno habilitado.
Citar
#8
No lo he revisado completamente, pero creo que si no hay ningún controlador de pantalla habilitado no se define el BEEPER_PIN.
Si, como dices, tienes conectado el zumbador al pin 33 de RAMPS, entonces no tienes más que incluir una definición en el archivo Configuration.h.
Para ello, incluye la linea #define BEEPER_PIN 33 en un lugar que sea compilada (por ejemplo, en el mismo principio del fichero).
Algo así:

#define BEEPER_PIN 33
/**
* Marlin 3D Printer Firmware
* Copyright © 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright © 2011 Camiel Gubbels / Erik van der Zalm
*
...


Si está conectado en ese pin, te debería funcionar.

Edito: Como ya comenté en mi primera respuesta, todo esto es suponiendo que el zumbador de la MKS es de 5V, que es la salida máxima de los pines de la RAMPS. Pero yo no sé si es así o no.
Citar
#9
Quizá sea mejor que te hagas con un zumbador (como los que se usan en algunos PC) y lo conectes directamente en la RAMPS.
Citar
#10
Ojo con los zumbadores, existen dos tipos, los que tienen un oscilador integrado (tono fijo) y los que no (que basicamente son altavoces enanos)

Los que no tienen oscilador integrado necesitan ser manejados con un transistor y es recomendable ponerles un diodo en inversa entre sus terminales debido a que como estamos excitando una bobina, se producen picos de tension inversa que pueden reiniciar (o quemar incluso) el arduino.

El diodo es importante (he sufrido muchos reinicios en arduinos hasta darme cuenta de ese detalle...), con respecto a la tensión... yo los he llegado a alimentar a 12v sin ningun tipo de problema, con 5v deberia funcionar perfectamente.

Por lo que recuerdo del codigo de marlin este usaba la funcion tone() para generar los pitidos, asi que en caso de querer implementar un buzzer externo deberá de ser de los que no tienen oscilador. Como dice Simemart, los de ordenador valdrian ya que no tienen oscilador.
Citar
#11
Hola, gracias por la información @Shellmer, no conocía esos detalles.
Efectivamente, revisando el esquema de la Reprap Discount Full Graphics, su zumbador está controlado por un transistor y supongo que en la MKS lo estará también.
La única opción en este caso sería entonces utilizar uno que no tenga oscilador, como los que llevan los PC o uno específico para arduino.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Comando M851 desconocido Hurón 3 147 30-10-2018, 08:33 PM
Último mensaje: Simemart
  Comando gcode velocidad ivcontrer 2 1,572 29-02-2016, 05:32 PM
Último mensaje: ivcontrer
  Comando de GCode incorrecto con Cura rsegura 2 962 30-01-2015, 08:29 AM
Último mensaje: ormaina