2009-03-02 22 views
12

Estoy intentando construir una microimpresora utilizando una impresora de recibos Arduino y Epson TM-T88II/POS. La impresora usa el sistema Epson Esc/POS, pero no puedo conseguir que haga nada desde Arduino. Estoy haciendo cosas como:Obtención de la impresora de recibos Epson para imprimir desde Arduino

#include <SoftwareSerial.h> 

#define out_pin 3 
#define in_pin 2 
SoftwareSerial printer = SoftwareSerial(in_pin, out_pin); 

void setup() 
{ 
    pinMode(in_pin, INPUT); 
    pinMode(out_pin, OUTPUT); 
    printer.begin(9600); 

    delay(1000); 

    printer.print(0x1B, BYTE); 
    printer.print('@'); // ESC(HEX 1B) @ is supposed to initialize the printer 
    printer.print("hello world"); 
    printer.print(0xA, BYTE); // print buffer and line feed 
} 

No consigo que la impresora responda. La impresora se enciende e imprime su auto prueba muy bien. Es una impresora serial (RS-232), y la estoy conectando al Arduino a través de un chip MAX233. Revisé y volví a verificar mis conexiones a través del chip, que creo que son correctas en función de un amigo que tiene una configuración similar funcionando. Leí en alguna parte que las impresoras TM-T88 necesitan cables serie null-modem, así que compré un adaptador, y eso no pareció hacer ninguna diferencia.

Soy nuevo en electrónica, así que estoy completamente perplejo. Solo quiero que imprima algo, así puedo llegar a la parte divertida: la programación :). ¿Alguna idea sobre cosas para probar/probar? Puedo dar más detalles sobre el cableado o cualquier otra cosa, simplemente no quería que esto fuera demasiado.

Respuesta

1

Puede verificar si puede comunicarse con una PC, tanto desde el Arduino como desde la impresora.

Usaría un osciloscopio para ver si las señales en serie salen del Arduino y el MAX como deberían, pero entonces probablemente no tenga una.

¿Estás seguro de que la configuración de comunicación es correcta? Establece la velocidad en baudios en 9600, pero ¿qué pasa con los bits de datos, la paridad, los bits de parada? ¿Qué hay de las líneas de control?

+0

Para las configuraciones de comunicación, no estoy seguro del todo. Creo que necesito hacer algún tipo de apretón de manos, pero no sé cómo.Información de la autoprueba de la impresora: Velocidad en baudios: 9600 (eso es lo que estoy usando) Bits de datos: 8 bits Paridad: ninguno Bit de parada: 1 bit o más Apretón de manos: DTR/DSR –

1

Engancharía otra PC en lugar de la impresora al otro extremo del cable serie y ejecutaré telnet o PuTTY en ese sistema para asegurarme de que se está comunicando y hablando a través del puerto en serie. De ser así, podría usar la misma solución para enviar datos a la impresora para confirmar todos los ajustes, como el número de bits de datos, paridad, etc.

3

¿Está utilizando un transceptor RS-232? Las salidas Arduino 0 y 5   V para serie, mientras que la impresora usa -12 y 12   V para serial. Debe utilizar un dispositivo MAX232 o similar para obtener la interfaz física correcta. (Es posible que pueda hacer trampa si invierte el puerto serie en el Arduino, pero puede que no funcione, y es más problemático cuando recién comienza).

Una vez que se ha solucionado, el RTS y DTR pueden ser su problema. Debería poder cambiar la configuración del interruptor DIP en la impresora y desactivar por completo el control de flujo o cambiarlo al control de flujo del software.

Además, es posible que deba enviar tanto la alimentación de línea como el retorno de carro.

Sin embargo, una vez que todo está hecho, debería imprimirse bien, incluso sin ningún comando de reinicio. Envíe un montón de caracteres ASCII y retornos de línea/carro, y lo escupirá todo.

Puede pasar por alto la línea RX (en el lado de Arduino, TX en el lado de la impresora) por ahora - sólo lo envía los datos hasta que averiguar el cableado, conversión de nivel, control de flujo, etc.

1

I' he hecho un proyecto similar y tuve el mismo problema. Necesita un cable de módem/cruce nulo para pasar de max232 a la impresora, ya que ambos dispositivos están en la configuración de esclavo

Cuestiones relacionadas