방금 식당에 지불하고 ATM에서 소액의 청구서를 받거나 현금을 지급하고 거래 영수증을 받았습니다. 이 영수증은 감열 식 프린터 또는 영수증 프린터를 사용하여 인쇄됩니다.
감열 식 프린터는 소액 청구서 또는 영수증을 인쇄 할 수있는 즉시 사용 가능하고 비용 효율적인 솔루션입니다. 이 통합하기 쉬운 솔루션은 어디서나 사용할 수 있습니다. 프린터는 특수한 종류의 용지 인 열 변색 용지를 사용하여 일정량의 열에 노출되면 검은 색으로 변합니다. 열전 사 프린터는 특수 가열 공정을 사용하여이 용지에 인쇄합니다. 프린터 헤드는 특정 온도를 유지하기 위해 특수 전기로 가열됩니다. 감열지가 헤드를 통과하면 열 코팅이 검게 변하고 헤드가 가열됩니다.
이전 프로젝트에서는 열전 사 프린터를 PIC 마이크로 컨트롤러와 인터페이스했습니다. 이 튜토리얼에서는 열전 사 프린터를 Arduino Uno 보드와 인터페이스합니다. 이 프로젝트는 다음과 같이 작동합니다.
- 프린터는 Arduino Uno와 연결됩니다.
- 촉각 스위치가 Arduino 보드와 연결되어 누르면 ' 푸시하여 인쇄' 옵션 을 제공합니다.
- 온보드 Arduino LED는 인쇄 상태를 알려줍니다. 인쇄 활동이 진행 중일 때만 빛납니다.
프린터 사양 및 연결
우리는 쉽게 구할 수 있고 가격이 너무 높지 않은 Cashino의 CSN A1 Thermal Printer 를 사용하고 있습니다.
공식 웹 사이트에서 사양을 보면 자세한 사양을 제공하는 표를 볼 수 있습니다.
프린터 뒷면에 다음과 같은 연결이 표시됩니다.
TTL 커넥터는 마이크로 컨트롤러 장치와 통신하기 위해 Rx Tx 연결을 제공합니다. RS232 프로토콜을 사용하여 프린터와 통신 할 수도 있습니다. 전원 커넥터는 프린터에 전원을 공급하기위한 것이며 버튼은 프린터 테스트 목적으로 사용됩니다. 프린터에 전원이 공급 될 때 자체 테스트 버튼을 누르면 프린터가 사양과 샘플 라인이 인쇄 될 시트를 인쇄합니다. 다음은 자체 테스트 시트입니다.
보시다시피 프린터는 9600 전송 속도를 사용하여 마이크로 컨트롤러 장치와 통신합니다. 프린터는 ASCII 문자를 인쇄 할 수 있습니다. 통신은 매우 간단하며 UART를 사용하여 문자열이나 문자를 전송하여 무엇이든 인쇄 할 수 있습니다.
프린터는 5-9V에서 작동하며 프린터와 Arduino Uno 모두에 전원을 공급할 수있는 9V 2A 전원 공급 장치를 사용합니다. 프린터는 프린터 헤드를 가열하기 위해 1.5A 이상의 전류가 필요합니다. 이것은 인쇄 과정에서 큰 부하 전류를 사용하므로 열전 사 프린터의 단점입니다.
전제 조건
다음 프로젝트를 만들려면 다음이 필요합니다.
- 브레드 보드
- 전선 연결
- USB 케이블이있는 Arduino UNO 보드.
- Arduino IDE와 함께 준비된 Arduino 인터페이스 설정이있는 컴퓨터.
- 10k 저항
- 촉각 스위치
- 열전 사 프린터 CSN A1 with paper roll
- 9V 2A 정격 전원 공급 장치.
회로도 및 설명
Arduino Uno 로 프린터 를 제어하는 회로도 는 다음과 같습니다.
회로는 간단합니다. 스위치 입력 핀 D2에 기본 상태를 제공하기 위해 저항을 사용하고 있습니다. 버튼을 누르면 D2가 HIGH가되고이 조건은 인쇄를 트리거하는 데 사용됩니다. 9V 2A 전원 공급 장치의 단일 전원 공급 장치는 열전 사 프린터 및 Arduino 보드에 전원을 공급하는 데 사용됩니다. Arduino UNO 보드에 연결하기 전에 전원 공급 장치의 극성을 확인하는 것이 중요합니다. 중앙 양극성이있는 배럴 잭 입력이 있습니다.
우리 는 브레드 보드에 회로를 구성 하고 테스트했습니다.
Arduino 프로그램
데모 비디오 가 포함 된 완전한 Arduino 코드 는 프로젝트의 끝에 있습니다. 여기서 우리는 코드의 몇 가지 중요한 부분을 설명합니다.
처음에는 푸시 버튼 (Pin 2) 및 온보드 LED (Pin13) 용 핀을 선언했습니다.
int led = 13; int SW = 2;
그런 다음 디 바운스 지연 및 스위치 프레스 상태에 대해 몇 가지 변수가 구성됩니다.
int is_switch_press = 0; // 스위치 누름 상태 감지 int debounce_delay = 300; // 디 바운스 지연
에서 설정 기능, 우리는 출력으로서 LED 핀을 구성하고 입력으로 전환. 또한 9600 전송 속도로 UART를 구성했습니다.
void setup () { / * *이 함수는 핀 구성을 설정하는 데 사용됩니다. * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
에서 메인 루프, 우리가 처음 스위치를 누르면 여부 확인 스위치가 여전히도 지연 후 누르면 스위치가 진정으로 누르거나되지 않았는지 확인하는 검사를 다시, 다시 우리는 얼마 동안 기다려, 우리는 사용자 정의 인쇄 UART의 라인, 그래서 열전 사 프린터에서.
인쇄를 시작할 때 온보드 LED를 높게 설정하고 인쇄 후에는 낮게 설정하여 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"); 지연 (100); Serial.println ("감열 식 프린터 인터페이스입니다"); Serial.println ("Arduino UNO 포함"); 지연 (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 코드와 데모 비디오를 확인하십시오.