Termálna tlačiareň sa často označuje ako tlačiareň účteniek. Je široko používaný v reštauráciách, bankomatoch, obchodoch a na mnohých ďalších miestach, kde sa vyžadujú účtenky alebo zmenky. Je to nákladovo efektívne riešenie a veľmi praktické sa používa zo strany používateľa aj zo strany vývojára. Termálna tlačiareň používa špeciálny proces tlače, pri ktorom sa na tlač používa termochromatický papier alebo termálny papier. Hlava tlačiarne sa zahrieva na určitú teplotu, ktorá pri prechode termálneho papiera z tlačovej hlavy spôsobí, že povrch papiera v oblastiach, kde sa zahrieva tlačová hlava, stmavne.
V tomto návode prepojíme tepelnú tlačiareň CSN A1 so široko používaným mikrokontrolérom PIC PIC16F877A. Tu v tomto projekte je cez tlačiareň PIC16F877A pripojená termálna tlačiareň a na spustenie tlače sa používa dotykový spínač. Na informovanie o stave tlače sa tiež používa oznamovacia LED. Rozsvieti sa, až keď bude prebiehať tlač.
Špecifikácia tlačiarne a pripojenia
Používame termálnu tlačiareň CSN A1 od spoločnosti Cashino, ktorá je ľahko dostupná a cena nie je príliš vysoká.
Ak uvidíme špecifikáciu na jej oficiálnych webových stránkach, zobrazí sa nám tabuľka s podrobnými špecifikáciami -
Na zadnej strane tlačiarne uvidíme nasledujúce pripojenie -
Konektor TTL poskytuje pripojenie Rx Tx na komunikáciu s jednotkou mikrokontroléra. Na komunikáciu s tlačiarňou môžeme tiež použiť protokol RS232. Napájací konektor slúži na napájanie tlačiarne a tlačidlo slúži na testovacie účely tlačiarne. Ak je tlačiareň napájaná, tlačidlom autotestu vytlačíme tlačiareň, ktorá vytlačí hárok, na ktorom budú vytlačené špecifikácie a vzorové riadky. Tu je hárok so samočinným testom
Ako vidíme, tlačiareň používa na komunikáciu s jednotkou mikrokontroléra 9600 baudov. Tlačiareň dokáže tlačiť znaky ASCII. Komunikácia je veľmi ľahká, môžeme vytlačiť čokoľvek jednoduchým použitím UART, prenášaním reťazca alebo znaku.
Tlačiareň potrebuje na ohrev hlavy tlačiarne napájanie 5V 2A. To je nevýhoda termálnej tlačiarne, pretože počas procesu tlače zaberá obrovský záťažový prúd.
Predpoklady
Na vytvorenie nasledujúceho projektu potrebujeme nasledujúce veci: -
- Nepál
- Pripojte drôty
- PIC16F877A
- 2ks keramický diskový kondenzátor 33pF
- Odpor 680R
- Ľahká farba
- Hmatový spínač
- 2ks 4,7k rezistory
- Termálna tlačiareň CSN A1 s rolkou papiera
- 5V 2A menovitý napájací zdroj.
Schéma zapojenia a vysvetlenie
Schéma ovládania tlačiarne pomocou mikrokontroléra PIC je uvedená nižšie:
Tu používame PIC16F877A ako jednotku mikrokontroléra. Na pripojenie kolíka MCLR k napájaciemu zdroju 5 V sa používa 4,7 000 rezistor. Pripojili sme tiež externý oscilátor 20 MHz s kondenzátormi 33pF pre hodinový signál. Na port RB2 je pripojená oznamovacia LED dióda s rezistorom obmedzujúcim prúd vedeným 680R. Prepínač Hmatové je pripojený cez RB0 pin pri stlačení tlačidla bude poskytovať logiku vysoká inak kolík obdrží Logic nízko u 4.7km odpor.
Tlačiareň CSN A1 sa pripája pomocou krížovej konfigurácie, prenosový pin mikrokontroléra sa spája s prijímacím pinom tlačiarne. Tlačiareň je tiež pripojená na napájanie 5 V a GND.
Obvod sme zostrojili v doske a vyskúšali sme ho.
Vysvetlenie kódu
Tento kód je celkom jednoduchý na pochopenie. Kompletný kód na prepojenie termálnej tlačiarne s PIC16F877A je uvedený na konci článku. Ako vždy, najskôr musíme nastaviť konfiguračné bity v mikrokontroléri PIC.
// Nastavenia konfiguračného bitu PIC16F877A // Príkazy na konfiguráciu zdrojového riadku „C“ // CONFIG #pragma config FOSC = HS // Bity výberu oscilátora (HS oscilátor) #pragma config WDTE = VYP // Watchdog Timer Enable bit (WDT disabled) # pragma config PWRTE = VYPNUTO // Časovač zapnutia povolený bit (PWRT deaktivovaný) #pragma config BOREN = ZAPNUTÝ // Brown-out Reset Povolený bit (povolený BOR) #pragma config LVP = VYPNUTÉ // Nízke napätie (jedno napájanie)) Povolený bit sériového programovania v obvode (pin RB3 / PGM má funkciu PGM; programovanie nízkeho napätia je povolené) #pragma config CPD = VYP // Bit ochrany dátového kódu EEPROM (ochrana kódu EEPROM dát vypnutá) #pragma config WRT = VYPNUTO // Zápis do pamäte Flash programu Povolenie bitov (ochrana proti zápisu vypnutá; do pamäte programu môže byť zapisovaná pomocou ovládacieho prvku EECON) #pragma config CP = VYPNUTO // Bit kódu ochrany kódu programovej pamäte (ochrana kódu vypnutá)
Potom sme definovali makrá súvisiace so systémovým hardvérom a na kontrolu hardvéru súvisiaceho s eusart sme použili hlavičkový súbor eusart1.h. UART je v hlavičkovom súbore nakonfigurovaný na 9600 baudov.
#include
V hlavnej funkcii sme najskôr skontrolovali „stlačenie tlačidla“ a tiež sme použili taktiku odblokovania spínača na odstránenie závad spínača. Vytvorili sme , ak vyhlásenie o, stlačení tlačidla 'stave. Najskôr sa žiarovka rozsvieti a UART vytlačí reťazce. Vlastné riadky je možné generovať vo vnútri príkazu if a môžu byť vytlačené ako reťazec.
void main (void) { system_init (); while (1) { if (printer_sw == 1) {// je stlačený prepínač __delay_ms (50); // oneskorenie debounce if (printer_sw == 1) {// prepínač je stále stlačený notification_led = 1; put_string ("Dobrý deň! \ n \ r"); // Tlač na termálnu tlačiareň __delay_ms (50); put_string ("Výukový program pre tepelnú tlačiareň. \ n \ r"); __delay_ms (50); put_string ("Súhrn okruhu. \ n \ r"); __delay_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("Ďakujem"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); notification_led = 0; } } } }
Kompletný kód a funkčné video sú uvedené nižšie.