Máy in nhiệt thường được gọi là máy in hóa đơn. Nó được sử dụng rộng rãi trong các nhà hàng, ATM, cửa hàng và nhiều nơi khác, nơi yêu cầu biên lai hoặc hóa đơn. Đây là một giải pháp hiệu quả về chi phí và rất tiện dụng để sử dụng từ phía người dùng cũng như từ phía nhà phát triển. Máy in nhiệt sử dụng quy trình in đặc biệt sử dụng giấy nhiệt sắc hoặc giấy nhiệt để in. Đầu máy in được làm nóng ở một nhiệt độ nhất định mà khi giấy nhiệt đi từ đầu in, lớp phủ giấy chuyển sang màu đen ở những nơi đầu máy in được làm nóng.
Trong hướng dẫn này, chúng tôi sẽ giao diện một máy in nhiệt CSN A1 với vi điều khiển PIC được sử dụng rộng rãi PIC16F877A. Ở đây trong dự án này, một máy in nhiệt được kết nối qua PIC16F877A và một công tắc xúc giác được sử dụng để bắt đầu in. Đèn LED thông báo cũng được sử dụng để thông báo trạng thái in. Nó sẽ chỉ phát sáng khi hoạt động in đang diễn ra.
Đặc điểm kỹ thuật và kết nối máy in
Chúng tôi đang sử dụng Máy in nhiệt CSN A1 của Cashino, loại này có sẵn dễ dàng và giá thành không quá cao.
Nếu chúng ta thấy thông số kỹ thuật trên trang web chính thức của nó, chúng ta sẽ thấy một bảng cung cấp thông số kỹ thuật chi tiết-
Ở mặt sau của máy in, chúng ta sẽ thấy kết nối sau-
Đầu nối TTL cung cấp kết nối Rx Tx để giao tiếp với bộ vi điều khiển. Chúng tôi cũng có thể sử dụng giao thức RS232 để giao tiếp với máy in. Đầu nối nguồn dùng để cấp nguồn cho máy in và nút được sử dụng cho mục đích kiểm tra máy in. Khi máy in đang được cấp nguồn, nếu chúng ta nhấn nút tự kiểm tra, máy in sẽ in ra một tờ nơi thông số kỹ thuật và dòng mẫu sẽ được in. Đây là bảng tự kiểm tra-
Như chúng ta có thể thấy máy in sử dụng tốc độ truyền 9600 để giao tiếp với bộ vi điều khiển. Máy in có thể in các ký tự ASCII. Giao tiếp rất dễ dàng, chúng tôi có thể in bất cứ thứ gì bằng cách sử dụng UART, truyền chuỗi hoặc ký tự.
Máy in cần nguồn điện 5V 2A để làm nóng đầu máy in. Đây là nhược điểm của máy in nhiệt vì nó tốn dòng tải rất lớn trong quá trình in.
Điều kiện tiên quyết
Để thực hiện dự án sau, chúng ta cần những điều sau: -
- Breadboard
- Móc dây
- PIC16F877A
- 2 cái 33pF đĩa gốm tụ điện
- Điện trở 680R
- Bất kỳ màu nào dẫn
- Công tắc xúc giác
- 2 điện trở 4,7k
- Máy in nhiệt CSN A1 với cuộn giấy
- Bộ cấp nguồn định mức 5V 2A.
Sơ đồ mạch và giải thích
Sơ đồ để điều khiển máy in bằng Vi điều khiển PIC được đưa ra dưới đây:
Ở đây chúng tôi đang sử dụng PIC16F877A làm bộ vi điều khiển. Một điện trở 4,7k được sử dụng để kết nối chân MCLR với nguồn điện 5V. Chúng tôi cũng đã kết nối bộ dao động bên ngoài 20 MHz với tụ điện 33pF cho tín hiệu đồng hồ. Một đèn LED thông báo được kết nối qua cổng RB2 với điện trở giới hạn dòng dẫn 680R. Công tắc Xúc giác được kết nối qua chân RB0 khi nhấn nút, nó sẽ cung cấp mức Logic cao, nếu không chân sẽ nhận mức Logic thấp bởi điện trở 4,7k.
Máy in CSN A1 được kết nối bằng cấu hình chéo, chân Truyền vi điều khiển được kết nối với chân Nhận của máy in. Máy in cũng được kết nối với nguồn điện 5V và GND.
Chúng tôi đã xây dựng mạch trong một breadboard và thử nghiệm nó.
Giải thích mã
Mã này khá đơn giản để hiểu. Mã hoàn chỉnh để giao tiếp Máy in Nhiệt với PIC16F877A được đưa ra ở cuối bài viết. Như mọi khi, trước tiên chúng ta cần thiết lập các bit cấu hình trong vi điều khiển PIC.
// Cài đặt bit cấu hình PIC16F877A // Câu lệnh cấu hình dòng nguồn 'C' // CONFIG #pragma config FOSC = HS // Các bit lựa chọn bộ tạo dao động (Bộ tạo dao động HS) #pragma config WDTE = OFF // Bit Enable Watchdog Timer (WDT bị vô hiệu hóa) # pragma config PWRTE = OFF // Kích hoạt bộ hẹn giờ bật nguồn (PWRT bị vô hiệu hóa) #pragma config BOREN = ON // Brown-out Reset bit Enable (bật BOR) #pragma config LVP = OFF // Low-Voltage (Single-Supply) Bit Bật lập trình nối tiếp trong mạch (chân RB3 / PGM có chức năng PGM; bật lập trình điện áp thấp) #pragma config CPD = OFF // Bit bảo vệ mã bộ nhớ dữ liệu EEPROM (Tắt bảo vệ mã EEPROM dữ liệu) #pragma config WRT = OFF // Các bit cho phép ghi chương trình Flash (Tắt bảo vệ ghi; tất cả bộ nhớ chương trình có thể được ghi bởi điều khiển EECON) #pragma config CP = OFF // Bit bảo vệ mã chương trình Flash (tắt bảo vệ mã)
Sau đó, chúng tôi đã xác định các macro liên quan đến phần cứng hệ thống và sử dụng tệp tiêu đề eusart1.h để kiểm soát phần cứng liên quan đến eusart. UART được định cấu hình ở tốc độ 9600 Baud bên trong tệp tiêu đề.
#include
Trong chức năng chính , đầu tiên chúng tôi đã kiểm tra 'nút bấm' và cũng sử dụng chiến thuật gỡ lỗi công tắc để loại bỏ sự cố công tắc. Chúng tôi đã tạo ra một nếu tuyên bố cho 'nút bấm' điều kiện. Đầu tiên đèn led sẽ phát sáng và UART sẽ in các dây. Các dòng tùy chỉnh có thể được tạo bên trong câu lệnh if và có thể được in dưới dạng chuỗi.
void main (void) { system_init (); while (1) { if (print_sw == 1) {// công tắc được nhấn __delay_ms (50); // debounce delay if (print_sw == 1) {// vẫn nhấn nút chuyển đổi notification_led = 1; put_string ("Xin chào! \ n \ r"); // In ra máy in Nhiệt __delay_ms (50); put_string ("Hướng dẫn Máy in Nhiệt. \ n \ r"); __delay_ms (50); put_string ("Thông báo về mạch. \ n \ r"); __delay_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("Cảm ơn"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); thông báo_led = 0; } } } }
Mã hoàn chỉnh và Video hoạt động được đưa ra bên dưới.