Pravkar ste plačali v restavraciji in prejeli majhen račun ali izdali gotovino iz bankomata in prejeli potrdilo o transakciji. Ti računi se natisnejo s termalnim tiskalnikom ali tiskalnikom računov.
Termalni tiskalnik je lahko dostopna in stroškovno učinkovita rešitev za tiskanje majhnih računov ali računov. Ta enostavna rešitev je na voljo povsod. Tiskalnik uporablja termokromni papir, posebno vrsto papirja, ki se ob izpostavljenosti določeni količini toplote spremeni v črno barvo. Termalni tiskalnik uporablja poseben postopek ogrevanja za tiskanje na ta papir. Tiskalna glava se segreva v posebni električni napravi za vzdrževanje določene temperature. Ko gre termo papir skozi njegovo glavo, se njegova toplotna prevleka spremeni v črno, kjer se glava segreje.
V prejšnjem projektu smo povezali termalni tiskalnik z mikrokrmilnikom PIC. V tej vadnici bomo povezali termalni tiskalnik s ploščo Arduino Uno. Ta projekt bo deloval tako:
- Tiskalnik bo povezan z Arduino Uno.
- Na ploščo Arduino je priključeno taktilno stikalo, ki ob pritisku nudi možnost " potisni za tiskanje" .
- Vgrajena LED diode Arduino bo obvestila o stanju tiskanja. Zasijalo bo šele, ko se bo tiskanje nadaljevalo.
Specifikacija tiskalnika in povezave
Uporabljamo termalni tiskalnik CSN A1 podjetja Cashino, ki je na voljo enostavno in cena ni previsoka.
Če na svojem uradnem spletnem mestu vidimo specifikacijo, bomo videli tabelo, ki vsebuje podrobne specifikacije -
Na zadnji strani tiskalnika bomo videli naslednjo povezavo -
Priključek TTL zagotavlja povezavo Rx Tx za komunikacijo z enoto mikrokrmilnika. Za komunikacijo s tiskalnikom lahko uporabimo tudi protokol RS232. Priključek za napajanje služi za napajanje tiskalnika, gumb pa se uporablja za preskušanje tiskalnika. Ko pritisnemo gumb za samopreizkus, bo tiskalnik med napajanjem tiskal list, na katerem bodo natisnjene specifikacije in vzorčne vrstice. Tu je list za samotestiranje -
Kot lahko vidimo, tiskalnik za komunikacijo z enoto mikrokrmilnika uporablja hitrost 9600 baudov. Tiskalnik lahko natisne znake ASCII. Komunikacija je zelo enostavna, lahko natisnemo karkoli s preprosto uporabo UART-a, s prenosom niza ali znaka.
Tiskalnik deluje od 5-9V, uporabili bomo napajalnik 9V 2A, ki lahko napaja tiskalnik in Arduino Uno. Tiskalnik potrebuje več kot 1,5 A toka za ogrevanje glave tiskalnika. To je pomanjkljivost termalnega tiskalnika, saj med tiskanjem potrebuje velik obremenitveni tok.
Pogoji
Za izdelavo naslednjega projekta potrebujemo naslednje stvari: -
- Breadboard
- Priklopite žice
- Arduino UNO plošča z USB kablom.
- Računalnik z nastavitvijo vmesnika Arduino, pripravljen z Arduino IDE.
- 10k upor
- Taktilno stikalo
- Termalni tiskalnik CSN A1 s papirnatim zvitkom
- 9V 2A nazivna napajalna enota.
Shema vezja in razlaga
Shema za upravljanje tiskalnika z Arduino Uno je navedena spodaj:
Vezje je preprosto. Z uporom uporabljamo privzeto stanje na vhodnem zatiču D2 stikala. Ko pritisnete gumb, bo D2 postal VISOK in ta pogoj se uporablja za sprožitev tiskanja. Za napajanje termičnega tiskalnika in plošče Arduino se uporablja en napajalnik z napetostjo 9V 2A. Pomembno je preveriti polarnost napajalnika, preden ga priključite na ploščo Arduino UNO. Ima cevni vhod s sredinsko pozitivno polarnostjo.
Vezje smo zgradili v tabli in ga preizkusili.
Program Arduino
Popolna koda Arduino z predstavitvenim videoposnetkom je na koncu projekta. Tukaj razlagamo nekaj pomembnih delov kode.
Sprva smo prijavili nožice za tipko (Pin 2) in vgrajeno LED (Pin13)
int led = 13; int SW = 2;
Potem je nastavljenih nekaj spremenljivk za zakasnitev prekinitve in preklopite stanje pritiska
int is_switch_press = 0; // Za zaznavanje stanja stiskalnega stikala int debounce_delay = 300; // Zakasnitev prekinitve
V nastavitveni funkciji smo LED izhod konfigurirali kot izhod in stikalo kot vhod. Prav tako smo konfigurirali UART s hitrostjo prenosa 9600 baudov.
void setup () { / * * Ta funkcija se uporablja za nastavitev konfiguracije pin-a * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
V glavni zanki najprej preverimo, ali je stikalo pritisnjeno ali ne, nato spet počakamo kdaj in spet preverimo, ali je stikalo zares pritisnjeno ali ne, če stikalo pritisnemo tudi po zakasnitvi, natisnemo po meri vrstic v UART-u, torej v termalnem tiskalniku.
Na začetku tiskanja smo postavili vgrajeno LED visoko, po tiskanju pa smo jo izklopili tako, da je bila nizka.
void loop () { is_switch_press = digitalRead (SW); // Branje stanja pritiska na stikalo if (is_switch_press == HIGH) { delay (debounce_delay); // zakasnitev izklopa za pritisk gumba if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Pozdravljeni"); zamuda (100); Serial.println ("To je vmesnik termalnega tiskalnika"); Serial.println ("z Arduino UNO."); zamuda (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Hvala."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } else { digitalWrite (led, LOW); } }
Spodaj preverite celotno kodo Arduino in predstavitveni video.