Du har lige foretaget betaling til en restaurant og modtaget en lille regning eller udleveret kontanter fra en pengeautomat og modtaget transaktionskvitteringen. Disse kvitteringer udskrives ved hjælp af en termisk printer eller kvitteringsprinter.
Termisk printer er den let tilgængelige og omkostningseffektive løsning til udskrivning af små regninger eller kvitteringer. Denne løsning, der er let at integrere, er tilgængelig overalt. Printeren bruger termokromisk papir, en særlig papirtype, der omdannes til sort farve, når den udsættes for en vis mængde varme. Termoprinter bruger en speciel opvarmningsproces til at udskrive på dette papir. Printerhovedet opvarmes i en speciel elektrisk for at opretholde en bestemt temperatur. Når termopapiret passerer gennem hovedet, bliver dets termiske belægning sort, hvor hovedet opvarmes.
I det forrige projekt har vi grænsefladen til termisk printer med PIC Microcontroller. I denne vejledning vil vi interface en termisk printer med Arduino Uno-kortet. Dette projekt fungerer således: -
- Printeren tilsluttes Arduino Uno.
- En taktil switch er forbundet med Arduino-kortet for at give mulighed for ' tryk for at udskrive' , når du trykker på den.
- Indbygget Arduino LED giver besked om udskrivningsstatus. Den lyser kun, når udskrivningsaktiviteten foregår.
Printerspecifikation og forbindelser
Vi bruger CSN A1 termoprinter fra Cashino, som er let tilgængelig, og prisen ikke er for høj.
Hvis vi ser specifikationen på dens officielle hjemmeside, vil vi se en tabel, der indeholder de detaljerede specifikationer-
På bagsiden af printeren ser vi følgende forbindelse -
TTL-stikket tilvejebringer Rx Tx-forbindelsen til at kommunikere med mikrocontrollerenheden. Vi kan også bruge RS232-protokollen til at kommunikere med printeren. Strømstikket er til strømforsyning til printeren, og knappen bruges til printertestformål. Når printeren tændes, udskriver printeren et ark, hvor specifikationer og prøvelinjer udskrives, hvis vi trykker på selvtestknappen. Her er selvtestarket-
Som vi kan se, bruger printeren 9600 baudhastighed til at kommunikere med mikrocontrollerenheden. Printeren kan udskrive ASCII-tegn. Kommunikationen er meget let, vi kan udskrive hvad som helst ved blot at bruge UART, sende streng eller karakter.
Printeren fungerer fra 5-9V, vi bruger en 9V 2A strømforsyning, der kan drive både printeren og Arduino Uno. Printeren har brug for mere end 1,5 A strøm til opvarmning af printerhovedet. Dette er ulempen ved den termiske printer, da den tager enorm belastningsstrøm under udskrivningsprocessen.
Forudsætninger
For at lave følgende projekt har vi brug for følgende ting: -
- Brødbræt
- Tilslut ledninger
- Arduino UNO-kort med USB-kabel.
- En computer med Arduino interface opsætning klar med Arduino IDE.
- 10k modstand
- Taktil kontakt
- Termisk printer CSN A1 med papirrulle
- 9V 2A nominel strømforsyningsenhed.
Kredsløbsdiagram og forklaring
Skematisk skema til styring af printer med Arduino Uno er vist nedenfor:
Kredsløbet er simpelt. Vi bruger en modstand til at give standardtilstand på tværs af switchindgangsstiften D2. Når der trykkes på knappen, bliver D2 HØJ, og denne tilstand bruges til at udløse udskrivningen. En enkelt strømforsyning med 9V 2A strømforsyning bruges til at drive varmeprinteren og Arduino-kortet. Det er vigtigt at kontrollere strømforsyningens polaritet, før du slutter den til Arduino UNO-kortet. Det har en tønde jack input med center positiv polaritet.
Vi konstruerede kredsløbet i et brødbræt og testede det.
Arduino-program
Komplet Arduino-kode med en demo-video er i slutningen af projektet. Her forklarer vi nogle få vigtige dele af koden.
Først erklærede vi stifterne til trykknappen (Pin 2) og ombord LED (Pin13)
int ledet = 13; int SW = 2;
Derefter er få variabler konfigureret til forsinkelse af afvisning og skifte trykstatus
int is_switch_press = 0; // For at detektere kontakten skal du trykke på status int debounce_delay = 300; // Forsinkelse på afvisning
I opsætningsfunktionen konfigurerede vi LED-stiften som output og skift som input. Vi konfigurerede også UART med 9600 baudrate.
ugyldig opsætning () { / * * Denne funktion bruges til at indstille pin-konfigurationen * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
I det vigtigste loop, vi først undersøge, om der er trykket på kontakten eller ej, så er vi igen vente til engang og igen kontrollere at identificere, at kontakten virkelig er trykket eller ej, hvis kontakten stadig er trykket, selv efter forsinkelsen, vi udskriver brugerdefinerede linjer i UART, så i den termiske printer.
I starten af udskrivningen satte vi den indbyggede LED høj og efter udskrivning slukkede vi den ved at gøre den lav.
ugyldig sløjfe () { is_switch_press = digitalRead (SW); // Læsning af Skift- trykstatus, hvis (is_switch_press == HIGH) { forsinkelse (debounce_delay); // afvisningsforsinkelse for tryk på knap, hvis (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Hej"); forsinkelse (100); Serial.println ("Dette er en termisk printergrænseflade"); Serial.println ("med Arduino UNO."); forsinkelse (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Tak."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LAV); } } andet { digitalWrite (ledet, LAV); } }
Tjek den komplette Arduino-kode og demonstrationsvideo nedenfor.