Erste Epson-Bon-Drucker zum drucken von Arduino
Ich versuche zu bauen, ein microprinter mit einem Arduino und einem Epson TM-T88II Eingang/POS Drucker. Der Drucker verwendet die Epson Esc/POS system, aber ich kann es nicht erhalten, überhaupt etwas zu tun von dem Arduino. Ich mache so Sachen wie:
#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
}
Ich kann einfach nicht, der Drucker reagiert. Der Drucker hochgefahren und druckt seine selbst-test ganz gut. Es ist eine serielle Schnittstelle (RS-232) Drucker, und ich bin dem anschließen an den Arduino durch einen MAX233 chip. Ich habe überprüft und erneut geprüft, meine verbindungen durch den chip, die wie ich finde Recht basiert auf einen Freund, der in einem ähnlichen setup arbeiten. Ich habe irgendwo gelesen, dass das TM-T88 Drucker müssen serielles null-modem-Kabel, also kaufte ich einen adapter, und das scheint nicht zu keinen Unterschied machen.
Ich bin neu bei Elektronik, so bin ich völlig ratlos. Ich will einfach nur, um es zu bekommen, etwas zu drucken, so kann ich bekommen, um den Spaß Teil - das Programmieren :). Irgendwelche Gedanken auf Dinge zu testen/versuchen? Kann ich Ihnen mehr Details über Verkabelung oder sonst etwas, einfach nur wollte, dass es nicht ZU lange wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie ein RS-232-transceiver? Die Arduino-Ausgänge 0 und 5 V für die serielle, während der Drucker verwendet -12 und 12 V für die serielle. Sollten Sie eine MAX232 oder ein ähnliches Gerät, um die korrekte physikalische Schnittstelle. (Sie könnten in der Lage sein zu betrügen, wenn Sie umkehren, der serielle port auf dem Arduino, aber das könnte nicht funktionieren, und es ist mehr Mühe, als nur erste Schritte.)
Sobald das erledigt ist, werden die RTS und DTR kann das problem sein. Sie sollten in der Lage sein, ändern Sie die Einstellungen der DIP-Schalter am Drucker ausschalten, flow control zusammen, oder wechseln Sie zur software-Flusskontrolle.
Darüber hinaus müssen Sie möglicherweise zu senden, beide, line feed und carriage return.
Allerdings, wenn all das erledigt ist sollte es drucken Prima, sogar ohne reset-Befehle. Senden Sie eine Reihe von ASCII-Zeichen und Zeilenvorschub (line feed/carriage returns, und es werde spucken Sie alle aus.
Können Sie ignorieren die RX-Leitung (auf der Arduino-Seite, TX auf der Drucker-Seite) für die jetzt - schicken Sie es einfach so lange Daten, bis Sie herausfinden, die Verkabelung, Niveau-Konvertierung, flow control, etc.
Könnten Sie überprüfen, ob Sie die Kommunikation mit einem PC, beide vom Arduino und an den Drucker.
Ich würde ein Oszilloskop um zu sehen, ob die seriellen Signale kommen aus der Arduino-und der MAX, wie Sie sollten, aber dann haben Sie wahrscheinlich keine haben.
Sind Sie sicher, dass die Kommunikationseinstellungen richtig? Legen Sie die baud-rate auf 9600, aber was ist mit Daten-bits, Parität, stop-bits? Was ist mit den Steuerleitungen?
Ich würde Haken einen anderen PC statt des Druckers und das andere Ende des seriellen Kabels und führen Sie telnet oder PuTTY auf das system, um sicherzustellen, Sie sind nach außen zu kommunizieren und sprechen über die serielle Schnittstelle. Wenn dem so ist, könnten Sie die gleiche Lösung für das senden von Daten an den Drucker, um zu bestätigen, alle Einstellungen wie Anzahl der Daten-bits, Parität, etc.
Ich habe ein ähnliches Projekt und hatte das gleiche Problem. Benötigen Sie ein null-modem - /crossover-Kabel gehen vom max232 an den Drucker, da beide Geräte im slave-Konfiguration