- Printera specifikācija un savienojumi
- Priekšnoteikumi
- Shēmas shēma un paskaidrojums
- Kods Paskaidrojums
Termisko printeri bieži sauc par kvīšu printeri. To plaši izmanto restorānos, bankomātos, veikalos un daudzās citās vietās, kur nepieciešama kvīts vai rēķins. Tas ir rentabls risinājums, un to ir ļoti ērti izmantot gan no lietotāja, gan no izstrādātāja puses. Termoprinteris izmanto īpašu drukāšanas procesu, kurā drukāšanai izmanto termohromu vai termopapīru. Printera galva tiek sasildīta noteiktā temperatūrā, ka, kad termiskais papīrs iziet no drukas galvas, papīra pārklājums kļūst melns vietās, kur tiek sasildīta printera galva.
Šajā apmācībā mēs saskarsimies ar termoprinteri CSN A1 ar plaši izmantoto PIC mikrokontrolleru PIC16F877A. Šajā projektā termiskais printeris ir savienots ar PIC16F877A un drukāšanas sākšanai tiek izmantots taustes slēdzis. Paziņošanas gaismas diode tiek izmantota arī drukas statusa paziņošanai. Tas spīd tikai tad, kad notiek drukāšanas darbība.
Printera specifikācija un savienojumi
Mēs izmantojam Cashino CSN A1 termoprinteri, kas ir viegli pieejams, un cena nav pārāk augsta.
Ja mēs redzēsim specifikāciju tās oficiālajā vietnē, mēs redzēsim tabulu, kurā sniegtas detalizētas specifikācijas -
Printera aizmugurē redzēsim šādu savienojumu-
TTL savienotājs nodrošina Rx Tx savienojumu, lai sazinātos ar mikrokontrolleru bloku. Saziņai ar printeri mēs varam izmantot arī RS232 protokolu. Strāvas savienotājs paredzēts printera barošanai, un poga tiek izmantota printera testēšanai. Kad printeris tiek darbināts, nospiežot pašpārbaudes pogu, printeris izdrukās lapu, kurā tiks izdrukātas specifikācijas un līniju paraugi. Šeit ir paštesta lapa-
Kā redzam, printeris izmanto 9600 bitu pārraides ātrumu, lai sazinātos ar mikrokontrolleru bloku. Printeris var izdrukāt ASCII rakstzīmes. Komunikācija ir ļoti vienkārša, mēs varam izdrukāt jebko, vienkārši izmantojot UART, pārsūtot virkni vai rakstzīmi.
Printera galvas sildīšanai printerim nepieciešams 5V 2A barošanas avots. Tas ir termoprintera trūkums, jo drukāšanas procesā tas prasa milzīgu slodzes strāvu.
Priekšnoteikumi
Lai izveidotu šādu projektu, mums ir nepieciešamas šādas lietas: -
- Maizes dēlis
- Pievienojiet vadus
- PIC16F877A
- 2gab 33pF keramikas disku kondensators
- 680R rezistors
- Jebkura krāsa noveda
- Taktilais slēdzis
- 2gab 4.7k rezistori
- Termiskais printeris CSN A1 ar papīra ruļļu
- 5V 2A nominālā barošanas bloks.
Shēmas shēma un paskaidrojums
Shēma printera kontrolei ar PIC mikrokontrolleru ir sniegta zemāk:
Šeit mēs izmantojam PIC16F877A kā mikrokontrolleru vienību. Lai savienotu MCLR tapu ar 5V barošanas avotu, tiek izmantots 4,7k rezistors. Pulksteņa signālam esam pievienojuši arī ārēju 20 MHz oscilatoru ar 33pF kondensatoriem. Paziņojuma gaismas diode ir savienota visā RB2 pieslēgvietā ar 680R vadītu strāvas ierobežošanas rezistoru. Taustes slēdzis ir savienots pāri RB0 pin kad poga tiek nospiesta tā nodrošinās loģika augsts citādi piespraudi saņems Logic zema ar 4.7K rezistors.
Printera CSN A1 ir savienots, izmantojot šķērskonfigurāciju, mikrokontrollera pārraides tapa ir savienota ar printera saņemšanas tapu. Printeris ir savienots arī ar 5V un GND padevi.
Mēs izveidojām ķēdi maizes dēlī un pārbaudījām to.
Kods Paskaidrojums
Kods ir diezgan vienkārši saprotams. Pilnīgs kods siltuma printera saskarnei ar PIC16F877A ir norādīts raksta beigās. Kā vienmēr, vispirms mums jāiestata konfigurācijas biti PIC mikrokontrollerī.
// PIC16F877A konfigurācijas bitu iestatījumi // 'C' avota rindas konfigurācijas paziņojumi // CONFIG #pragma config FOSC = HS // oscilatora izvēles biti (HS oscilators) #pragma config WDTE = OFF // sargsuņa taimeris Iespējot bitu (WDT atspējots) # pragma config PWRTE = OFF // Ieslēgšanas taimera iespējošanas bits (PWRT atspējots) # pragma config BOREN = ON // Brown-out Reset Enable bit (BOR iespējots) #pragma config LVP = OFF // Zemspriegums (Single-Supply)) Iekārtas sērijveida programmēšanas iespējošanas bits (RB3 / PGM tapai ir PGM funkcija; iespējota zemsprieguma programmēšana) #pragma config CPD = OFF // Data EEPROM atmiņas koda aizsardzības bits (datu EEPROM koda aizsardzība izslēgta) #pragma config WRT = IZSLĒGTS // Flash programmas atmiņas rakstīšanas iespējošanas biti (ierakstīšanas aizsardzība izslēgta; visu programmas atmiņu var ierakstīt ar EECON vadības palīdzību) #pragma config CP = OFF // Flash programmas atmiņas koda aizsardzības bits (koda aizsardzība izslēgta)
Pēc tam mēs definējām ar sistēmu aparatūru saistītos makro un izmantojām eusart1.h galvenes failu ar eusart saistītās aparatūras kontrolei. UART galvenes failā ir konfigurēts ar 9600 Baud ātrumu.
# iekļaut
Jo galveno funkciju, mēs vispirms pārbaudījām "nospiest pogu" un izmanto arī slēdzis aiztures taktiku, lai novērstu slēdža glitches. Mēs esam izveidojuši if paziņojumu nosacījumam 'poga nospiesta'. Vispirms spīdēs led un UART izdrukās virknes. Pielāgotas rindas var ģenerēt if paziņojuma iekšpusē, un tās var izdrukāt kā virkni.
void main (void) { system_init (); while (1) { if (printer_sw == 1) {// slēdzis ir nospiests __delay_ms (50); // atcelšanas aizkave, ja (printer_sw == 1) {// slēdzis joprojām ir nospiests paziņojums_led = 1; put_string ("Labdien! \ n \ r"); // Drukāt uz termoprinteri __delay_ms (50); put_string ("Siltuma printera apmācība. \ n \ r"); __kavēšanās_ms (50); put_string ("Circuit Digest. \ n \ r"); __kavēšanās_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("Paldies"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); paziņojums_led = 0; } } } }
Pilns kods un darbojošais video ir norādīts zemāk.