あなたはレストランに支払いをし、ATMから小額の請求書または現金を受け取り、取引の領収書を受け取りました。これらのレシートは、サーマルプリンターまたはレシートプリンターを使用して印刷されます。
サーマルプリンターは、小額の請求書や領収書を印刷するための、すぐに利用でき、費用効果の高いソリューションです。この統合が容易なソリューションは、どこでも利用できます。プリンターは、一定量の熱にさらされると黒色に変化する特殊なタイプの紙であるサーモクロミック紙を使用しています。サーマルプリンターは、特別な加熱プロセスを使用してこの用紙に印刷します。プリンタヘッドは、特定の温度を維持するために特別な電気で加熱されます。感熱紙がヘッドを通過すると、ヘッドが加熱されるとサーマルコーティングが黒に変わります。
前のプロジェクトでは、サーマルプリンターとPICマイクロコントローラーを接続しました。このチュートリアルでは、サーマルプリンターをArduinoUnoボードに接続します。このプロジェクトは次のように機能します:-
- プリンターはArduinoUnoに接続されます。
- 触覚スイッチがArduinoボードに接続されており、押されたときに「 プッシュして印刷」 オプションを提供します。
- オンボードのArduinoLEDが印刷ステータスを通知します。印刷アクティビティが実行されているときにのみ点灯します。
プリンタの仕様と接続
私たちは、使用しているCSN A1サーマルプリンタを容易に入手可能であるCashino、から、価格は高すぎではありません。
公式サイトで仕様を見ると、詳細な仕様をまとめた表があります-
プリンタの背面には、次の接続が表示されます-
TTLコネクタは、マイクロコントローラユニットと通信するためのRxTx接続を提供します。RS232プロトコルを使用してプリンタと通信することもできます。電源コネクタはプリンタに電力を供給するためのものであり、ボタンはプリンタのテスト目的で使用されます。プリンタの電源が入っているときにセルフテストボタンを押すと、プリンタは仕様とサンプルラインが印刷されるシートを印刷します。これがセルフテストシートです-
ご覧のとおり、プリンタは9600ボーレートを使用してマイクロコントローラユニットと通信します。プリンタはASCII文字を印刷できます。通信はとても簡単で、UARTを使って文字列や文字を送信するだけで何でも印刷できます。
プリンターは5〜9Vで動作し、プリンターとArduinoUnoの両方に電力を供給できる9V2A電源を使用します。プリンタは、プリンタヘッドを加熱するために1.5A以上の電流を必要とします。これは、印刷プロセス中に大きな負荷電流を消費するため、サーマルプリンターの欠点です。
前提条件
次のプロジェクトを作成するには、次のものが必要です。-
- ブレッドボード
- ワイヤーを接続します
- USBケーブル付きArduinoUNOボード。
- ArduinoIDEで準備ができたArduinoインターフェースセットアップを備えたコンピューター。
- 10k抵抗
- 触覚スイッチ
- ペーパーロール付きサーマルプリンターCSNA1
- 9V2A定格の電源ユニット。
回路図と説明
ArduinoUnoでプリンターを制御するための回路図を 以下に示します。
回路はシンプルです。スイッチ入力ピンD2の両端にデフォルト状態を提供するために抵抗を使用しています。ボタンを押すと、D2がHIGHになり、この状態で印刷がトリガーされます。9V 2A電源の単一電源は、サーマルプリンターとArduinoボードに電力を供給するために使用されます。Arduino UNOボードに接続する前に、電源の極性を確認することが重要です。中央に正極性のバレルジャック入力があります。
ブレッドボードに回路を構築して テストしました。
Arduinoプログラム
デモビデオ付きの完全なArduinoコードはプロジェクトの最後にあります。ここでは、コードのいくつかの重要な部分について説明します。
最初に、押しボタン(ピン2)とオンボードLED(ピン13)のピンを宣言しました
int led = 13; int SW = 2;
次に、デバウンス遅延とスイッチプレスステータス用にいくつかの変数が設定されます
int is_switch_press = 0; //スイッチを押した状態を検出する場合 intdebounce_delay = 300; //デバウンス遅延
セットアップ 機能、我々は、入力として出力し、スイッチとしてのLEDピンを構成しました。また、UARTを9600ボーレートで構成しました。
void setup(){ / ** この関数はピン構成を設定するために使用されます * / pinMode(led、OUTPUT); pinMode(SW、INPUT); Serial.begin(9600); }
では、メインループ、我々は最初のスイッチが押されているかどうかを確認し、スイッチがまだでも遅延の後に押された場合にスイッチが本当に、押されたりされていないことを確認するためにチェックし、再び、再び私たちはいつかを待つと、我々は、カスタムを印刷しますUARTのライン、つまりサーマルプリンターのライン。
印刷の開始時にオンボードLEDを高く設定し、印刷後に低くしてオフにしました。
void loop(){ is_switch_press = digitalRead(SW); //スイッチの押下ステータスを 読み取るif(is_switch_press == HIGH){ delay(debounce_delay); //ボタンを押したときのデバウンス遅延 if(is_switch_press == HIGH){ digitalWrite(led、HIGH); Serial.println( "Hello"); delay(100); Serial.println( "これはサーマルプリンターインターフェイスです"); Serial.println( "with Arduino UNO。"); delay(100); Serial.println( "Circuitdigest.com"); Serial.println( "\ n \ r"); Serial.println( "\ n \ r"); Serial.println( "\ n \ r"); Serial.println( "---------------------------- \ n \ r"); Serial.println( "ありがとうございます。"); Serial.println( "\ n \ r"); Serial.println( "\ n \ r"); Serial.println( "\ n \ r"); digitalWrite(led、LOW); } } else { digitalWrite(led、LOW); } }
以下の完全なArduinoコードとデモンストレーションビデオを確認してください。