Obtenir L'imprimante de reçus Epson pour imprimer à partir D'Arduino

j'essaie de construire un micro-imprimante en utilisant un Arduino et un reçu Epson TM-T88II/ POS . L'imprimante utilise le système Epson Esc/POS , mais je n'arrive pas à le faire faire du tout à partir de L'Arduino. Je fais des choses comme:

#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
}

Je n'arrive pas du tout à faire répondre l'imprimante. L'imprimante démarre et imprime son auto-test très bien. C'est une imprimante série ( RS-232 ), et Je le connecte à L'Arduino via une puce MAX233 . J'ai vérifié et revérifié mes connexions à travers la puce, ce qui je pense est juste basé sur un ami qui a une configuration similaire fonctionne. J'ai lu quelque part que les imprimantes TM-T88 ont besoin de câbles série nuls-modem, donc j'ai acheté un adaptateur, et cela ne semble pas faire de différence.

je suis nouveau en électronique, donc je suis complètement perplexe. Je veux juste qu'il imprime quelque chose, que je puisse aller à la partie amusante - la programmation :). Des idées sur les choses à tester/essayer? Je peux donner plus de détails sur le câblage ou n'importe quoi d'autre, mais je ne voulais pas que ça prenne trop de temps.

12
demandé sur Peter Mortensen 2009-03-02 19:41:32

4 réponses

utilisez-vous un émetteur-récepteur RS-232? L'Arduino produit 0 et 5 V pour la série, tandis que l'imprimante utilise -12 et 12 V pour la série. Vous devez utiliser un MAX232 ou un dispositif similaire pour obtenir l'interface physique correcte. (Vous pourriez être en mesure de tricher si vous inversez le port série sur L'Arduino, mais cela pourrait ne pas fonctionner, et il est plus de problèmes quand vient de commencer.)

une fois que c'est réglé, le RTS et le DTR peuvent être votre problème. Vous devrait être capable de changer les réglages de L'interrupteur D'immersion sur l'imprimante et de désactiver complètement le contrôle du débit, ou de le commuter au contrôle du débit du logiciel.

en outre, vous pouvez avoir besoin d'Envoyer à la fois Ligne d'alimentation et retour chariot.

cependant, une fois tout ce qui est fait, il devrait imprimer très bien, même sans aucune commande de réinitialisation. Envoyer un tas de caractères ASCII et la ligne feed / carriage retours, et il va tout cracher.

vous pouvez ignorer la ligne RX (sur le côté Arduino, TX du côté de l'imprimante) pour l'instant-il suffit de lui envoyer des données jusqu'à ce que vous comprenez le câblage, la conversion de niveau, le contrôle de flux, etc

3
répondu Adam Davis 2011-07-04 15:16:54

, Vous pouvez vérifier si vous pouvez communiquer avec un PC, à la fois de l'Arduino et à l'imprimante.

j'utiliserais un oscilloscope pour voir si les signaux série sortent de L'Arduino et du MAX comme ils devraient, mais alors vous n'en avez probablement pas un.

êtes-vous sûr que les paramètres de communication sont corrects? Vous avez mis le taux de bauds à 9600, mais qu'en est-il des bits de données, de parité, d'arrêt? Ce sujet les lignes de commande?

1
répondu starblue 2009-03-02 19:58:18

j'accrocherais un autre PC à la place de l'imprimante à l'autre extrémité du câble série et je lancerais telnet ou PuTTY sur ce système pour s'assurer que vous communiquez et parlez réellement via le port série. Si oui, vous pouvez utiliser la même solution pour envoyer des données à l'imprimante pour confirmer tous les paramètres tels que le nombre de bits de données, parité, etc.

1
répondu Douglas Anderson 2012-10-07 03:42:28

j'ai fait un projet similaire et avait le même problème. Vous avez besoin d'un câble null modem / crossover pour passer de max232 à l'imprimante car les deux périphériques sont en configuration esclave

1
répondu Andy West 2016-08-29 11:25:15