Du betalade precis till en restaurang och fick en liten räkning eller delade ut kontanter från en bankomat och fick transaktionskvittot. Dessa kvitton skrivs ut med en termisk skrivare eller kvittoskrivare.
Termisk skrivare är den lättillgängliga och kostnadseffektiva lösningen för att skriva ut små räkningar eller kvitton. Den här lätta att integrera lösningen finns överallt. Skrivaren använder termokromt papper, en speciell papperstyp som förvandlas till svart färg när den utsätts för en viss mängd värme. Termisk skrivare använder en speciell uppvärmningsprocess för att skriva ut på detta papper. Skrivarhuvudet värms upp i en speciell elektrisk för att bibehålla en viss temperatur. När värmepapperet passerar genom huvudet blir dess värmebeläggning svart där huvudet värms upp.
I det föregående projektet har vi kopplat termisk skrivare till PIC Microcontroller. I den här handledningen kommer vi att ansluta en termisk skrivare till Arduino Uno-kortet. Detta projekt kommer att fungera så här: -
- Skrivaren kommer att anslutas till Arduino Uno.
- En taktil strömbrytare ansluts till Arduino-kortet för att ge alternativet " tryck för att skriva ut" när du trycker på den.
- Ombord Arduino LED kommer att meddela utskriftsstatusen. Den lyser först när utskriftsaktiviteten pågår.
Skrivarspecifikation och anslutningar
Vi använder CSN A1 termisk skrivare från Cashino, som är lätt tillgänglig och priset inte är för högt.
Om vi ser specifikationen på dess officiella webbplats kommer vi att se en tabell som innehåller detaljerade specifikationer-
På baksidan av skrivaren ser vi följande anslutning-
TTL-kontakten tillhandahåller Rx Tx-anslutningen för att kommunicera med mikrokontroller-enheten. Vi kan också använda protokollet RS232 för att kommunicera med skrivaren. Strömkontakten är avsedd för strömförsörjning av skrivaren och knappen används för testning av skrivare. Om vi trycker på självtestknappen kommer skrivaren att skriva ut ett ark där specifikationer och provrader skrivs ut när skrivaren är igång. Här är självtestarket-
Som vi kan se använder skrivaren 9600 baudhastighet för att kommunicera med mikrokontrollenheten. Skrivaren kan skriva ut ASCII-tecken. Kommunikationen är väldigt enkel, vi kan skriva ut vad som helst genom att helt enkelt använda UART, sända sträng eller tecken.
Skrivaren fungerar från 5-9V, vi använder en 9V 2A strömförsörjning som kan driva både skrivaren och Arduino Uno. Skrivaren behöver mer än 1,5 A ström för att värma skrivarhuvudet. Detta är nackdelen med den termiska skrivaren eftersom den tar enorm belastningsström under tryckprocessen.
Förutsättningar
För att göra följande projekt behöver vi följande saker: -
- Bakbord
- Anslut ledningar
- Arduino UNO-kort med USB-kabel.
- En dator med Arduino-gränssnittsinstallation redo med Arduino IDE.
- 10k motstånd
- Taktil brytare
- Termisk skrivare CSN A1 med pappersrulle
- 9V 2A märkt nätaggregat.
Kretsschema och förklaring
Schema för styrning av skrivare med Arduino Uno ges nedan:
Kretsen är enkel. Vi använder ett motstånd för att tillhandahålla standardläge över omkopplarens ingångsstift D2. När du trycker på knappen blir D2 HÖG och detta tillstånd används för att utlösa utskriften. En strömförsörjning med 9V 2A strömförsörjning används för att driva termoskrivaren och Arduino-kortet. Det är viktigt att kontrollera polariteten på strömförsörjningen innan du ansluter den till Arduino UNO-kortet. Den har en fatuttag med mittpositiv polaritet.
Vi konstruerade kretsen i ett brödbräda och testade den.
Arduino-programmet
Komplett Arduino-kod med en demo-video är i slutet av projektet. Här förklarar vi några viktiga delar av koden.
Först förklarade vi stiften för tryckknapp (stift 2) och ombord-lysdiod (stift 13)
int led = 13; int SW = 2;
Då konfigureras få variabler för avstängningsfördröjning och växlingspressstatus
int is_switch_press = 0; // För att detektera omkopplaren tryck status int debounce_delay = 300; // Avvisningsfördröjning
I installationsfunktionen konfigurerade vi LED-stiftet som utgång och växlade som ingång. Vi konfigurerade också UART med 9600 baud rate.
void setup () { / * * Denna funktion används för att ställa in pin-konfigurationen * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
I huvudslingan, vi först kontrollera om knappen trycks eller inte, då vi återigen vänta på gång och återigen kontrollera att identifiera att brytaren verkligen trycks in eller inte, om brytaren fortfarande trycks även efter fördröjningen, vi trycker anpassade linjer i UART, så i termisk skrivare.
I början av utskriften ställde vi in den inbyggda LED: n hög och efter utskrift stängde vi av den genom att göra den låg.
void loop () { is_switch_press = digitalRead (SW); // Läser omkopplarens tryckstatus om (is_switch_press == HIGH) { fördröjning (debounce_delay); // avstängningsfördröjning för knapptryckning om (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Hej"); fördröjning (100); Serial.println ("Detta är ett termiskt skrivargränssnitt"); Serial.println ("med Arduino UNO."); fördröjning (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Tack."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } annat { digitalWrite (led, LOW); } }
Kontrollera hela Arduino-koden och demonstrationsvideo nedan.