Właśnie dokonałeś płatności w restauracji i otrzymałeś mały rachunek lub wypłaciłeś gotówkę z bankomatu i otrzymałeś pokwitowanie transakcji. Te pokwitowania są drukowane za pomocą drukarki termicznej lub drukarki pokwitowań.
Drukarka termiczna to łatwo dostępne i ekonomiczne rozwiązanie do drukowania niewielkich rachunków lub paragonów. To łatwe do integracji rozwiązanie jest dostępne wszędzie. Drukarka wykorzystuje papier termochromowy, specjalny rodzaj papieru, który po wystawieniu na działanie określonej ilości ciepła zmienia kolor na czarny. Drukarka termiczna wykorzystuje specjalny proces podgrzewania do drukowania na tym papierze. Głowica drukarki jest podgrzewana specjalną elektrycznością, aby utrzymać określoną temperaturę. Kiedy papier termiczny przechodzi przez jego głowicę, jego powłoka termiczna zmienia kolor na czarny, gdzie głowica jest podgrzewana.
W poprzednim projekcie połączyliśmy drukarkę termiczną z mikrokontrolerem PIC. W tym samouczku połączymy drukarkę termiczną z płytką Arduino Uno. Ten projekt będzie działał w następujący sposób: -
- Drukarka zostanie połączona z Arduino Uno.
- Przełącznik dotykowy jest łączony z płytką Arduino, aby zapewnić opcję „ naciśnij, aby wydrukować” po naciśnięciu.
- Wbudowana dioda Arduino poinformuje o stanie drukowania. Będzie świecić tylko wtedy, gdy trwa czynność drukarska.
Specyfikacja drukarki i połączenia
Używamy drukarki termicznej CSN A1 firmy Cashino, która jest łatwo dostępna, a cena nie jest zbyt wysoka.
Jeśli zobaczymy specyfikację na jego oficjalnej stronie internetowej, zobaczymy tabelę, która zawiera szczegółowe specyfikacje-
Z tyłu drukarki zobaczymy następujące połączenie-
Złącze TTL zapewnia połączenie Rx Tx do komunikacji z jednostką mikrokontrolera. Do komunikacji z drukarką możemy również wykorzystać protokół RS232. Złącze zasilania służy do zasilania drukarki, a przycisk służy do testowania drukarki. Gdy drukarka jest zasilana, jeśli naciśniemy przycisk autotestu, drukarka wydrukuje arkusz, na którym zostaną wydrukowane specyfikacje i linie próbne. Oto arkusz autotestu
Jak widać drukarka komunikuje się z jednostką mikrokontrolera o szybkości 9600 bodów. Drukarka może drukować znaki ASCII. Komunikacja jest bardzo łatwa, możemy wydrukować wszystko używając UART, przesyłając ciąg lub znak.
Drukarka działa od 5-9V, użyjemy zasilacza 9V 2A, który może zasilić zarówno drukarkę, jak i Arduino Uno. Drukarka potrzebuje więcej niż 1,5 A prądu do podgrzania głowicy. Jest to wada drukarki termicznej, ponieważ podczas procesu drukowania pobiera ogromny prąd obciążenia.
Wymagania wstępne
Aby wykonać następujący projekt, potrzebujemy następujących rzeczy: -
- Płytka prototypowa
- Podłącz przewody
- Płytka Arduino UNO z kablem USB.
- Komputer z konfiguracją interfejsu Arduino gotowy z Arduino IDE.
- Rezystor 10k
- Przełącznik dotykowy
- Drukarka termiczna CSN A1 z rolką papieru
- Zasilacz znamionowy 9 V 2 A.
Schemat obwodu i wyjaśnienie
Schemat sterowania drukarką za pomocą Arduino Uno przedstawiono poniżej:
Obwód jest prosty. Używamy rezystora, aby zapewnić domyślny stan na pinie wejściowym przełącznika D2. Po naciśnięciu przycisku D2 zmieni się na WYSOKI i ten stan jest używany do wywołania drukowania. Pojedynczy zasilacz 9V 2A służy do zasilania drukarki termicznej i płyty Arduino. Ważne jest, aby sprawdzić biegunowość zasilania przed podłączeniem go do płyty Arduino UNO. Posiada wejście beczkowe z dodatnią polaryzacją środkową.
Mamy skonstruował obwód w makiet i przetestowane.
Program Arduino
Kompletny kod Arduino wraz z filmem demonstracyjnym jest na końcu projektu. Tutaj wyjaśniamy kilka ważnych części kodu.
Na początku zadeklarowaliśmy piny dla przycisku (Pin 2) i na płycie LED (Pin13)
int led = 13; int SW = 2;
Następnie kilka zmiennych jest konfigurowanych dla opóźnienia odbicia i stanu prasy przełączającej
int is_switch_press = 0; // W celu wykrycia przełącznika naciśnij status int debounce_delay = 300; // Opóźnienie odbicia
W konfiguracji funkcji, to jest skonfigurowane jako wyjścia kołek LED i przełącznik jako sygnał wejściowy. Skonfigurowaliśmy również UART z prędkością 9600 bodów.
void setup () { / * * Ta funkcja służy do ustawienia konfiguracji pinów * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
W głównej pętli najpierw sprawdzamy, czy przełącznik jest wciśnięty, czy nie, następnie ponownie czekamy jakiś czas i ponownie sprawdzamy, czy przełącznik jest naprawdę wciśnięty, czy nie, jeśli przełącznik jest nadal wciśnięty nawet po opóźnieniu, drukujemy niestandardowo linie w UART, a więc w drukarce termicznej.
Na początku drukowania ustawiliśmy wbudowaną diodę LED na wysoką wartość, a po wydrukowaniu ją wyłączyliśmy, zmniejszając ją.
void loop () { is_switch_press = digitalRead (SW); // Odczytywanie statusu naciśnięcia przełącznika if (is_switch_press == HIGH) { delay (debounce_delay); // opóźnienie odbicia dla naciśnięcia przycisku if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Witaj"); opóźnienie (100); Serial.println ("To jest interfejs drukarki termicznej"); Serial.println ("z Arduino UNO."); opóźnienie (100); Serial.println („Circuitdigest.com”); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Dziękuję."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } else { digitalWrite (led, LOW); } }
Sprawdź pełny kod Arduino i film demonstracyjny poniżej.