12

Arduino と Epson TM-T88II レシート/ POSプリンターを使用してマイクロプリンターを構築しようとしています。プリンターはEpson Esc/POSシステムを使用していますが、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
}

プリンターがまったく反応しません。プリンタの電源が入り、セルフ テストが問題なく印刷されます。これはシリアル ( RS-232 ) プリンターで、MAX233チップを介して Arduino に接続しています。チップを介して接続を確認して再確認しましたが、同様のセットアップが機能している友人に基づいていると思います。TM-T88 プリンタにはヌルモデム シリアル ケーブルが必要だとどこかで読んだので、アダプタを購入しましたが、違いはないようです。

電化製品初心者ですので、完全に戸惑っています。何かを印刷したいだけなので、楽しい部分であるプログラミングに取り掛かることができます:)。テスト/試行することについて何か考えはありますか? 配線などについて詳しく説明できますが、これが長くなりすぎないようにしたいだけです。

4

4 に答える 4

3

RS-232 トランシーバーを使用していますか? Arduino はシリアルに 0 および 5 V を出力しますが、プリンターはシリアルに -12 および 12 V を使用します。正しい物理インターフェイスを得るには、 MAX232または類似のデバイスを使用する必要があります。(Arduino のシリアル ポートを逆にするとごまかすことができるかもしれませんが、それはうまくいかないかもしれません。

それが処理されると、RTS と DTR が問題になる可能性があります。プリンターの DIP スイッチ設定を変更して、フロー制御を完全にオフにするか、ソフトウェア フロー制御に切り替えることができるはずです。

また、改行とキャリッジ リターンの両方を送信する必要がある場合もあります。

ただし、すべてが完了すると、リセットコマンドがなくても問題なく印刷されるはずです。一連の ASCII 文字とライン フィード/キャリッジ リターンを送信すると、すべてが吐き出されます。

今のところ、RX ライン (Arduino 側では、プリンター側では TX) を無視することができます。配線、レベル変換、フロー制御などを理解するまで、データを送信するだけです。

于 2009-03-03T04:18:01.700 に答える
1

プリンタの代わりに別の PC をシリアル ケーブルのもう一方の端に接続し、そのシステムで telnet またはPuTTYを実行して、シリアル ポート経由で実際に通信していることを確認します。その場合、同じソリューションを使用してデータをプリンターに送信し、データ ビット数、パリティなどのすべての設定を確認できます。

于 2009-03-03T03:55:28.527 に答える
1

私は同様のプロジェクトを行い、同じ問題を抱えていました。両方のデバイスがスレーブ構成になっているため、max232 からプリンターに接続するには、ヌル モデム/クロスオーバー ケーブルが必要です。

于 2016-08-29T11:25:15.617 に答える
1

Arduinoとプリンターの両方からPCと通信できるかどうかを確認できます。

オシロスコープを使用して、シリアル信号が Arduino と MAX から正常に出力されているかどうかを確認しますが、おそらく持っていません。

通信設定は正しいですか?ボーレートを 9600 に設定しましたが、データ ビット、パリティ、ストップ ビットはどうでしょうか。コントロールラインはどうですか?

于 2009-03-02T19:58:18.033 に答える