Printer thermal sering juga disebut dengan printer struk. Ini banyak digunakan di restoran, ATM, toko dan banyak tempat lain di mana tanda terima atau tagihan diperlukan. Ini adalah solusi hemat biaya dan sangat berguna untuk digunakan dari sisi pengguna maupun dari sisi pengembang. Printer termal menggunakan proses pencetakan khusus yang menggunakan kertas termokromik atau kertas termal untuk pencetakan. Kepala printer dipanaskan pada suhu tertentu sehingga ketika kertas thermal lolos dari kepala cetak, lapisan kertas menjadi hitam di area di mana kepala printer dipanaskan.
Dalam tutorial ini, kita akan menghubungkan printer termal CSN A1 dengan mikrokontroler PIC yang banyak digunakan PIC16F877A. Di sini, di proyek ini, printer termal terhubung melintasi PIC16F877A dan sakelar taktil digunakan untuk memulai pencetakan. LED notifikasi juga digunakan untuk memberi tahu status pencetakan. Ini akan bersinar hanya ketika aktivitas pencetakan sedang berlangsung.
Spesifikasi dan Koneksi Printer
Kami menggunakan Thermal Printer CSN A1 dari Cashino yang mudah didapat dengan harga yang tidak terlalu mahal.
Jika kita melihat spesifikasinya di situs resminya, kita akan melihat tabel yang memberikan spesifikasi rinci-
Di sisi belakang printer, kita akan melihat koneksi berikut-
Konektor TTL menyediakan koneksi Rx Tx untuk berkomunikasi dengan unit mikrokontroler. Kami juga dapat menggunakan protokol RS232 untuk berkomunikasi dengan printer. Konektor daya untuk menyalakan printer dan tombolnya digunakan untuk tujuan pengujian printer. Saat printer sedang dinyalakan, jika kita menekan tombol self-test printer, akan mencetak lembar dimana spesifikasi dan garis sample akan dicetak. Ini lembar swauji-
Seperti yang bisa kita lihat printer menggunakan 9600 baud rate untuk berkomunikasi dengan unit mikrokontroler. Printer dapat mencetak karakter ASCII. Komunikasinya sangat mudah, kita bisa mencetak apapun hanya dengan menggunakan UART, transmisi string atau character.
Printer membutuhkan catu daya 5V 2A untuk memanaskan kepala printer. Inilah kekurangan dari thermal printer karena membutuhkan arus beban yang sangat besar selama proses pencetakan.
Prasyarat
Untuk membuat proyek berikut, kita membutuhkan hal-hal berikut: -
- Papan tempat memotong roti
- Hubungkan kabel
- PIC16F877A
- 2 pcs 33pF kapasitor cakram keramik
- Resistor 680R
- Warna apa saja yang dipimpin
- Sakelar taktil
- 2 buah resistor 4.7k
- Thermal Printer CSN A1 dengan gulungan kertas
- 5V 2A unit catu daya terukur.
Diagram Sirkuit dan Penjelasannya
Skema untuk mengontrol printer dengan Mikrokontroler PIC diberikan di bawah ini:
Di sini kami menggunakan PIC16F877A sebagai unit mikrokontroler. Sebuah resistor 4.7k digunakan untuk menghubungkan pin MCLR ke catu daya 5V. Kami juga telah menghubungkan osilator eksternal 20 MHz dengan kapasitor 33pF untuk sinyal clock. Sebuah LED notifikasi terhubung melintasi port RB2 dengan resistor pembatas arus led 680R. The Tactile saklar terhubung di seluruh RB0 pin ketika tombol ditekan akan memberikan Logika Tinggi sebaliknya pin akan menerima Logic rendah dengan resistor 4.7k.
Printer CSN A1 terhubung menggunakan konfigurasi silang, Pin Transmit Mikrokontroler terhubung dengan pin Terima printer. Printer juga terhubung dengan suplai 5V dan GND.
Kami membangun sirkuit di papan tempat memotong roti dan mengujinya.
Penjelasan Kode
Kode ini cukup mudah dipahami. Kode lengkap untuk menghubungkan Thermal Printer dengan PIC16F877A diberikan di akhir artikel. Seperti biasa, pertama-tama kita perlu mengatur bit konfigurasi di mikrokontroler PIC.
// PIC16F877A Pengaturan Bit Konfigurasi // Pernyataan konfigurasi baris sumber 'C' // CONFIG #pragma config FOSC = HS // Bit pilihan osilator (osilator HS) #pragma config WDTE = OFF // Pengatur Waktu Pengawas Bit pengaktifan (WDT dinonaktifkan) # pragma config PWRTE = OFF // Power-up Timer Aktifkan bit (PWRT dinonaktifkan) #pragma config BOREN = ON // Brown-out Reset Aktifkan bit (BOR diaktifkan) #pragma config LVP = OFF // Tegangan Rendah (Pasokan Tunggal) In-Circuit Serial Programming Enable bit (Pin RB3 / PGM memiliki fungsi PGM; pemrograman tegangan rendah diaktifkan) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Perlindungan penulisan mati; semua memori program dapat ditulis oleh kontrol EECON) #pragma config CP = OFF // Bit Perlindungan Kode Memori Program Flash (Perlindungan kode mati)
Setelah itu, kami mendefinisikan makro terkait perangkat keras sistem dan menggunakan file header eusart1.h untuk kontrol perangkat keras terkait eusart. UART dikonfigurasi pada 9600 Baud rate di dalam file header.
#include
Di fungsi utama , pertama-tama kami memeriksa 'tekan tombol' dan juga menggunakan taktik sakelar pantulan untuk menghilangkan gangguan sakelar. Kami telah membuat pernyataan if untuk kondisi 'tombol ditekan'. Pertama led akan menyala dan UART akan mencetak senar. Baris kustom dapat dibuat di dalam pernyataan if dan dapat dicetak sebagai string.
void main (void) { system_init (); sementara (1) { if (printer_sw == 1) {// saklar ditekan __delay_ms (50); // hapus penundaan jika (printer_sw == 1) {// sakelar masih ditekan notification_led = 1; put_string ("Halo! \ n \ r"); // Cetak ke printer Thermal __delay_ms (50); put_string ("Tutorial Printer Termal. \ n \ r"); __delay_ms (50); put_string ("Circuit Digest. \ n \ r"); __delay_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("Terima Kasih"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); notification_led = 0; } } } }
Kode Lengkap dan Video kerja diberikan di bawah ini.