Du betalte nettopp til en restaurant og mottok en liten regning eller ga ut penger fra en minibank og mottok transaksjonskvitteringen. Disse kvitteringene skrives ut med en termisk skriver eller kvitteringsskriver.
Termisk skriver er den lett tilgjengelige og kostnadseffektive løsningen for å skrive ut små regninger eller kvitteringer. Denne enkle å integrere løsningen er tilgjengelig overalt. Skriveren bruker termokrom papir, en spesiell type papir som forvandles til svart farge når den utsettes for en viss mengde varme. Termisk skriver bruker en spesiell oppvarmingsprosess for å skrive ut på dette papiret. Skriverhodet varmes opp i en spesiell elektrisk for å opprettholde en viss temperatur. Når termopapiret passerer gjennom hodet, blir det termiske belegget svart der hodet varmes opp.
I det forrige prosjektet har vi koblet termisk skriver til PIC Microcontroller. I denne opplæringen vil vi grensesnitt en termisk skriver med Arduino Uno-kortet. Dette prosjektet vil fungere slik: -
- Skriveren vil være koblet til Arduino Uno.
- En taktil bryter kobles til Arduino-kortet for å gi alternativet ' trykk for å skrive ut' når du trykker på det.
- Ombord Arduino LED vil varsle utskriftsstatusen. Den lyser bare når utskriftsaktiviteten pågår.
Skriverspesifikasjon og tilkoblinger
Vi bruker CSN A1 termisk skriver fra Cashino, som er lett tilgjengelig og prisen ikke er for høy.
Hvis vi ser spesifikasjonen på den offisielle nettsiden, vil vi se en tabell som inneholder detaljerte spesifikasjoner-
På baksiden av skriveren ser vi følgende tilkobling-
TTL-kontakten gir Rx Tx-tilkoblingen for å kommunisere med mikrokontrollerenheten. Vi kan også bruke RS232-protokollen til å kommunisere med skriveren. Strømkontakten er for strømforsyning til skriveren, og knappen brukes til å teste formålet med skriveren. Hvis vi trykker på selvtestknappen, vil skriveren skrive ut et ark der spesifikasjoner og eksempler skal skrives ut når skriveren får strøm. Her er selvtestarket-
Som vi kan se, bruker skriveren 9600 baudrate for å kommunisere med mikrokontrollerenheten. Skriveren kan skrive ut ASCII-tegn. Kommunikasjonen er veldig enkel, vi kan skrive ut hva som helst ved å bruke UART, overføre streng eller karakter.
Skriveren fungerer fra 5-9V, vi vil bruke en 9V 2A strømforsyning som kan drive både skriveren og Arduino Uno. Skriveren trenger mer enn 1,5 A strøm for å varme opp skriverhodet. Dette er ulempen med den termiske skriveren da den tar enorm belastningsstrøm under utskriftsprosessen.
Forutsetninger
For å lage følgende prosjekt trenger vi følgende ting: -
- Brettbrett
- Koble ledninger
- Arduino UNO-kort med USB-kabel.
- En datamaskin med Arduino-grensesnittoppsett klar med Arduino IDE.
- 10k motstand
- Taktil bryter
- Termisk skriver CSN A1 med papirrull
- 9V 2A nominell strømforsyningsenhet.
Kretsdiagram og forklaring
Skjematisk skjema for å kontrollere skriveren med Arduino Uno er gitt nedenfor:
Kretsen er enkel. Vi bruker en motstand for å gi standardtilstand over bryterinngangspinnen D2. Når du trykker på knappen, blir D2 HØY, og denne tilstanden brukes til å utløse utskriften. Én strømforsyning på 9V 2A strømforsyning brukes til å drive termisk skriver og Arduino-kort. Det er viktig å sjekke strømforsyningens polaritet før du kobler den til Arduino UNO-kortet. Den har en fatjekkinngang med senterpositiv polaritet.
Vi konstruerte kretsen i et brødbrett og testet den.
Arduino-programmet
Komplett Arduino-kode med en demovideo er på slutten av prosjektet. Her forklarer vi noen viktige deler av koden.
Først erklærte vi pinnene for trykknapp (Pin 2) og ombord LED (Pin13)
int ledet = 13; int SW = 2;
Da er få variabler konfigurert for forsinkelse og avbryt pressestatus
int is_switch_press = 0; // For å oppdage bryteren, trykk status int debounce_delay = 300; // Avvisningsforsinkelse
I oppsettet funksjon, vi konfigurert LED tapp som utgang og bryteren som input. Vi konfigurerte også UART med 9600 baud rate.
ugyldig oppsett () { / * * Denne funksjonen brukes til å angi pin-konfigurasjon * / pinMode (ledet, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
I hovedsløyfen, må vi først sjekke om bryteren er trykket eller ikke, så igjen vi vente på en gang og igjen sjekk for å identifisere at bryteren er virkelig presset eller ikke, hvis bryteren er fortsatt trykket selv etter forsinkelsen, skriver vi tilpasset linjer i UART, så i termisk skriver.
I begynnelsen av utskriften satte vi den innebygde LED-lampen høyt og etter utskrift slo vi den av ved å gjøre den lav.
ugyldig sløyfe () { is_switch_press = digitalRead (SW); // Lesing av bryterens trykkstatus hvis (is_switch_press == HIGH) { forsinkelse (debounce_delay); // avvisningsforsinkelse for knappetrykk hvis (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Hei"); forsinkelse (100); Serial.println ("Dette er et termisk skrivergrensesnitt"); 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 ("Takk."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (ledet, LAV); } } annet { digitalWrite (ledet, LAV); } }
Sjekk den komplette Arduino-koden og demonstrasjonsvideoen nedenfor.