Pencetak termal sering disebut sebagai pencetak resit. Ia digunakan secara meluas di restoran, ATM, kedai dan banyak tempat lain di mana penerimaan atau bil diperlukan. Ini adalah penyelesaian yang menjimatkan dan sangat berguna untuk digunakan dari pihak pengguna dan juga dari pihak pembangun. Pencetak termal menggunakan proses pencetakan khas yang menggunakan kertas termokromik atau kertas termal untuk dicetak. Kepala pencetak dipanaskan pada suhu tertentu bahawa apabila kertas termal melewati kepala cetak, lapisan kertas menjadi hitam di kawasan di mana kepala pencetak dipanaskan.
Dalam tutorial ini, kita akan menghubungkan antara pencetak termal CSN A1 dengan mikrokontroler PIC PIC16F877A yang banyak digunakan. Di sini, dalam projek ini, pencetak terma disambungkan di PIC16F877A dan suis taktil digunakan untuk memulakan pencetakan. LED pemberitahuan juga digunakan untuk memberitahu status pencetakan. Ia akan bersinar hanya semasa aktiviti percetakan sedang dijalankan.
Spesifikasi dan Sambungan Pencetak
Kami menggunakan Pencetak Termal CSN A1 dari Cashino, yang tersedia dengan mudah dan harganya tidak terlalu tinggi.
Sekiranya kita melihat spesifikasi di laman web rasminya, kita akan melihat jadual yang memberikan spesifikasi terperinci-
Di bahagian belakang pencetak, kita akan melihat sambungan berikut-
Penyambung TTL menyediakan sambungan Rx Tx untuk berkomunikasi dengan unit mikrokontroler. Kami juga dapat menggunakan protokol RS232 untuk berkomunikasi dengan pencetak. Penyambung kuasa adalah untuk menghidupkan pencetak dan butangnya digunakan untuk tujuan pengujian pencetak. Semasa pencetak dihidupkan, jika kita menekan butang ujian diri, pencetak akan mencetak helaian di mana spesifikasi dan garis sampel akan dicetak. Berikut adalah helaian ujian diri-
Seperti yang kita lihat, pencetak menggunakan 9600 baud rate untuk berkomunikasi dengan unit mikrokontroler. Pencetak boleh mencetak watak ASCII. Komunikasi sangat mudah, kami dapat mencetak apa-apa dengan hanya menggunakan UART, menghantar rentetan atau watak.
Pencetak memerlukan bekalan kuasa 5V 2A untuk memanaskan kepala pencetak. Ini adalah kelemahan pencetak termal kerana memerlukan arus beban yang besar semasa proses pencetakan.
Prasyarat
Untuk membuat projek berikut, kami memerlukan perkara berikut: -
- Papan roti
- Sambungkan wayar
- PIC16F877A
- Kapasitor cakera seramik 2pcs 33pF
- Perintang 680R
- Sebarang warna yang diketuai
- Suis taktil
- 2pcs perintang 4.7k
- Pencetak Termal CSN A1 dengan gulungan kertas
- Unit bekalan kuasa berkadar 5V 2A.
Rajah dan Penjelasan Litar
Skema untuk mengawal pencetak dengan PIC Microcontroller diberikan di bawah:
Di sini kita menggunakan PIC16F877A sebagai unit mikrokontroler. Perintang 4.7k digunakan untuk menyambungkan pin MCLR ke bekalan kuasa 5V. Kami juga telah menghubungkan pengayun luaran 20 MHz dengan kapasitor 33pF untuk isyarat jam. LED pemberitahuan disambungkan merentasi port RB2 dengan perintang penghad arus LED 680R. The suis sentuhan disambungkan seluruh pin RB0 apabila butang ditekan ia akan menyediakan Logik tinggi sebaliknya pin akan menerima Logik rendah oleh perintang 4.7K itu.
Pencetak CSN A1 disambungkan menggunakan konfigurasi silang, pin Transkrip Mikrokontroler dihubungkan dengan pin Terima pencetak. Pencetak juga dihubungkan dengan bekalan 5V dan GND.
Kami membina litar di papan roti dan mengujinya.
Penjelasan Kod
Kodnya cukup mudah difahami. Kod lengkap untuk menghubungkan Pencetak Termal dengan PIC16F877A diberikan pada akhir artikel. Seperti biasa, pertama-tama kita perlu menetapkan bit konfigurasi dalam mikrokontroler PIC.
// PIC16F877A Konfigurasi Bit Tetapan // Pernyataan konfigurasi garis sumber 'C' // CONFIG #pragma config FOSC = HS // Oscillator Selection bit (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT dilumpuhkan) # pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT dilumpuhkan) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) #pragma config LVP = OFF // Voltan Rendah (Bekalan Tunggal) In-Circuit Serial Programming Enable bit (pin RB3 / PGM mempunyai fungsi PGM; pengaturcaraan voltan rendah diaktifkan) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Perlindungan kod data EEPROM dimatikan) #pragma config WRT = OFF // Memori Program Flash Menulis Aktifkan bit (Hapus perlindungan; semua memori program mungkin ditulis oleh kawalan EECON) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Perlindungan kod mati)
Selepas itu, kami menentukan makro berkaitan perkakasan sistem dan menggunakan fail tajuk eusart1.h untuk kawalan perkakasan yang berkaitan dengan eusart. UART dikonfigurasi pada kadar 9600 Baud di dalam fail header.
#sertakan
Dalam fungsi utama , pertama-tama kami memeriksa 'butang tekan' dan juga menggunakan taktik penyingkiran beralih untuk menghilangkan gangguan suis. Kami telah membuat pernyataan if untuk keadaan 'butang ditekan'. Mula-mula dipimpin akan menyala dan UART akan mencetak tali. Garis tersuai boleh dihasilkan di dalam pernyataan if dan dapat dicetak sebagai rentetan.
kekosongan utama (kekosongan) { system_init (); sementara (1) { if (printer_sw == 1) {// suis ditekan __delay_ms (50); // kelewatan debounce jika (printer_sw == 1) {// suis masih ditekan notification_led = 1; put_string ("Hello! \ n \ r"); // Cetak ke Pencetak termal __delay_ms (50); put_string ("Tutorial Pencetak Termal. \ n \ r"); __delay_ms (50); put_string ("Litar 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; } } } }
Kod lengkap dan Video kerja diberikan di bawah.