Právě jste provedli platbu restauraci a obdrželi jste malý účet nebo vydali hotovost z bankomatu a obdrželi potvrzení o transakci. Tyto účtenky se tisknou pomocí termální tiskárny nebo tiskárny účtenek.
Termální tiskárna je snadno dostupné a nákladově efektivní řešení pro tisk malých účtů nebo účtenek. Toto snadno integrovatelné řešení je k dispozici všude. Tiskárna používá termochromní papír, speciální typ papíru, který se při působení určitého tepla transformuje do černé barvy. Termální tiskárna používá k tisku na tento papír speciální proces ohřevu. Hlava tiskárny je zahřívána speciální elektrickou energií, aby byla udržována určitá teplota. Když termální papír prochází jeho hlavou, jeho tepelný povlak se změní na černou, kde je hlava zahřátá.
V předchozím projektu jsme propojili termální tiskárnu s mikrokontrolérem PIC. V tomto tutoriálu propojíme termální tiskárnu s deskou Arduino Uno. Tento projekt bude fungovat takto: -
- Tiskárna bude připojena k Arduino Uno.
- K desce Arduino je připojen hmatový spínač, který po stisknutí poskytuje možnost „ push to print“ .
- Integrovaná kontrolka Arduino LED informuje o stavu tisku. Rozsvítí se, pouze když probíhá tisk.
Specifikace tiskárny a připojení
Používáme termální tiskárnu CSN A1 od společnosti Cashino, která je snadno dostupná a cena není příliš vysoká.
Pokud uvidíme specifikaci na jejích oficiálních webových stránkách, uvidíme tabulku s podrobnými specifikacemi -
Na zadní straně tiskárny uvidíme následující připojení -
Konektor TTL poskytuje připojení Rx Tx ke komunikaci s jednotkou mikrokontroléru. Ke komunikaci s tiskárnou můžeme také použít protokol RS232. Napájecí konektor slouží k napájení tiskárny a tlačítko slouží k testování tiskárny. Když je tiskárna napájena, pokud stiskneme tlačítko autotestu, tiskárna vytiskne list, kde se vytisknou specifikace a řádky vzorků. Zde je samokontrolní list -
Jak vidíme, tiskárna používá pro komunikaci s jednotkou mikrokontroléru 9600 baudů. Tiskárna dokáže tisknout znaky ASCII. Komunikace je velmi snadná, můžeme tisknout cokoli jednoduše pomocí UART, přenášením řetězce nebo znaku.
Tiskárna pracuje od 5 do 9 V, použijeme napájecí zdroj 9 V 2 A, který může napájet tiskárnu i Arduino Uno. Tiskárna potřebuje k zahřátí hlavy tiskárny více než 1,5 A proudu. To je nevýhoda termální tiskárny, protože během procesu tisku odebírá obrovský zatěžovací proud.
Předpoklady
K vytvoření následujícího projektu potřebujeme následující věci: -
- Nepájivá deska
- Připojte vodiče
- Deska Arduino UNO s kabelem USB.
- Počítač s nastavením rozhraní Arduino připravený s Arduino IDE.
- 10k rezistor
- Hmatový spínač
- Termální tiskárna CSN A1 s rolkou papíru
- 9V 2A jmenovitý napájecí zdroj.
Schéma zapojení a vysvětlení
Schéma ovládání tiskárny pomocí Arduino Uno je uvedeno níže:
Obvod je jednoduchý. K zajištění výchozího stavu napříč vstupním kolíkem D2 přepínače používáme rezistor. Po stisknutí tlačítka se D2 změní na HIGH a tato podmínka se použije ke spuštění tisku. Jediný napájecí zdroj 9V 2A se používá k napájení termální tiskárny a desky Arduino. Před připojením k desce Arduino UNO je důležité zkontrolovat polaritu napájecího zdroje. Má vstup barel jack se středovou kladnou polaritou.
Zkonstruovali jsme obvod v prkénku a vyzkoušeli ho.
Program Arduino
Kompletní Arduino kód s ukázkovým videem je na konci projektu. Zde vysvětlujeme několik důležitých částí kódu.
Nejprve jsme deklarovali piny pro tlačítko (Pin 2) a na palubní LED (Pin13)
int led = 13; int SW = 2;
Poté je nakonfigurováno několik proměnných pro zpoždění odskoku a stav přepnutí lisu
int is_switch_press = 0; // Pro detekci spínače stiskněte stav int debounce_delay = 300; // Zpoždění odskoku
Ve funkci nastavení jsme nakonfigurovali pin LED jako výstup a přepínač jako vstup. Také jsme nakonfigurovali UART s přenosovou rychlostí 9600.
void setup () { / * * Tato funkce slouží k nastavení konfigurace pinu * / pinMode (led, OUTPUT); pinMode (SW, VSTUP); Serial.begin (9600); }
V hlavní smyčce nejprve zkontrolujeme, zda je spínač stisknutý nebo ne, pak znovu počkáme na nějakou dobu a znovu zkontrolujeme, abychom zjistili, zda je spínač skutečně stisknutý nebo ne, pokud je spínač stále stisknutý i po zpoždění, vytiskneme vlastní řádky v UART, tedy v termální tiskárně.
Na začátku tisku jsme nastavili palubní LED vysoko a po tisku jsme ji vypnuli snížením.
void loop () { is_switch_press = digitalRead (SW); // Čtení stavu přepínače press if (is_switch_press == HIGH) { delay (debounce_delay); // zpoždění odskoku při stisknutí tlačítka if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Dobrý den"); zpoždění (100); Serial.println ("Toto je rozhraní tiskárny Thermal"); Serial.println ("s Arduino UNO."); zpoždění (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println („Děkuji.“); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } else { digitalWrite (led, LOW); } }
Níže zkontrolujte kompletní kód Arduino a ukázkové video.