Upravo ste izvršili uplatu u restoran, primili ste mali račun ili izdali gotovinu s bankomata i primili potvrdu o transakciji. Ove se potvrde tiskaju pomoću termalnog pisača ili pisača računa.
Termalni pisač lako je dostupno i isplativo rješenje za ispis malih računa ili računa. Ovo lako integrirano rješenje dostupno je svugdje. Pisač koristi termokromni papir, posebnu vrstu papira koji se pretvara u crnu boju kada je izložen određenoj količini topline. Termalni printer koristi poseban postupak zagrijavanja za ispis na ovaj papir. Glava pisača zagrijava se u posebnom električnom pogonu kako bi se održala određena temperatura. Kad termalni papir prolazi kroz njegovu glavu, njegova toplinska prevlaka postaje crna gdje se glava zagrijava.
U prethodnom smo projektu povezali termalni pisač s PIC mikrokontrolerom. U ovom uputstvu spojit ćemo termalni pisač s pločicom Arduino Uno. Ovaj projekt će raditi ovako: -
- Pisač će biti povezan s Arduino Uno.
- Dodirni prekidač povezan je s Arduino pločom kako bi se pružila opcija " pritisni za ispis" kada se pritisne.
- Ugrađena LED lampica Arduino obavijestit će o statusu ispisa. Svijetlit će samo kad se ispisuje.
Specifikacije pisača i veze
Koristimo termalni printer CSN A1 tvrtke Cashino, koji je dostupan lako i cijena nije previsoka.

Ako specifikaciju vidimo na njenoj službenoj web stranici, vidjet ćemo tablicu koja sadrži detaljne specifikacije -

Na stražnjoj strani pisača vidjet ćemo sljedeću vezu -

TTL konektor pruža Rx Tx vezu za komunikaciju s jedinicom mikrokontrolera. Za komunikaciju s pisačem možemo koristiti i protokol RS232. Priključak za napajanje služi za napajanje pisača, a gumb služi za testiranje pisača. Kad se pisač napaja, ako pritisnemo gumb za samoispitivanje, pisač će ispisati list na kojem će se ispisati specifikacije i uzorci. Ovdje je list samoispitivanja-

Kao što vidimo, pisač koristi 9600 brzina prijenosa za komunikaciju s jedinicom mikrokontrolera. Pisač može ispisivati ASCII znakove. Komunikacija je vrlo jednostavna, sve možemo ispisati jednostavnim korištenjem UART-a, prenoseći niz ili znak.
Pisač radi od 5-9V, koristit ćemo napajanje od 9V 2A koje može napajati i pisač i Arduino Uno. Za zagrijavanje glave pisača potrebno je više od 1,5 A struje. To je nedostatak termalnog pisača jer uzima veliku struju opterećenja tijekom postupka ispisa.
Preduvjeti
Da bismo napravili sljedeći projekt, trebaju nam sljedeće stvari: -
- Breadboard
- Spojite žice
- Arduino UNO ploča s USB kabelom.
- Računalo s postavkama sučelja Arduino spremno s Arduino IDE-om.
- 10k otpornik
- Taktilni prekidač
- Termalni printer CSN A1 s papirnatom rolom
- 9V 2A nazivna jedinica napajanja.
Kružni dijagram i objašnjenje
Shema za upravljanje pisačem s Arduino Uno data je u nastavku:

Krug je jednostavan. Koristimo otpornik za pružanje zadanog stanja preko ulaznog pina prekidača D2. Kada se pritisne tipka, D2 će postati VISOK i ovaj se uvjet koristi za pokretanje ispisa. Pojedinačno napajanje od 9V 2A napajanja koristi se za napajanje termalnog pisača i Arduino ploče. Važno je provjeriti polaritet napajanja prije spajanja na Arduino UNO ploču. Ima ulaz cijevnog priključka s središnjim pozitivnim polaritetom.
Konstruirali smo krug u ploči i isprobali ga.


Arduino program
Kompletni Arduino kôd s demo videom nalazi se na kraju projekta. Ovdje objašnjavamo nekoliko važnih dijelova koda.
Isprva smo deklarirali igle za tipku (Pin 2) i LED na ploči (Pin13)
int vodio = 13; int SW = 2;
Tada se konfigurira nekoliko varijabli za odgodu odbijanja zvuka i prebacivanje statusa pritiska
int is_switch_press = 0; // Za otkrivanje statusa prekidača prekida int debounce_delay = 300; // Odgoda odbijanja
U funkciji postavljanja konfigurirali smo LED pin kao izlaz i prekidač kao ulaz. Također smo konfigurirali UART sa 9600 brzina prijenosa.
void setup () { / * * Ova se funkcija koristi za postavljanje konfiguracije pin-a * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
U glavnoj petlji prvo provjeravamo je li prekidač pritisnut ili ne, zatim opet čekamo neko vrijeme i ponovno provjeravamo je li prekidač istinski pritisnut ili ne, ako je prekidač i nakon pritiska pritisnut, ispisujemo prilagođeno linije u UART-u, pa tako i u Thermal printeru.
Na početku ispisa ugrađenu LED diodu postavili smo visoko, a nakon ispisa isključili smo je smanjivanjem.
void loop () { is_switch_press = digitalRead (SW); // Čitanje statusa prekidača prekidača ako (is_switch_press == HIGH) { delay (debounce_delay); // kašnjenje ukidanja pritiska gumba if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Pozdrav"); kašnjenje (100); Serial.println ("Ovo je termalno sučelje pisača"); Serial.println ("s Arduino UNO."); kašnjenje (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); } }
U nastavku provjerite cjeloviti Arduino kôd i Demonstracijski video.
