- Specificații și conexiuni ale imprimantei
- Condiții prealabile
- Diagrama și explicația circuitului
- Program Arduino
Tocmai ați efectuat plata la un restaurant și ați primit o factură mică sau ați distribuit numerar de la un bancomat și ați primit chitanța tranzacției. Aceste chitanțe sunt imprimate folosind o imprimantă termică sau o imprimantă de chitanțe.
Imprimanta termică este soluția ușor disponibilă și rentabilă pentru a imprima facturi sau chitanțe mici. Această soluție ușor de integrat este disponibilă peste tot. Imprimanta folosește hârtie termocromă, un tip special de hârtie care se transformă în culoare neagră atunci când este expusă la o anumită cantitate de căldură. Imprimanta termică utilizează un proces special de încălzire pentru a imprima pe această hârtie. Capul imprimantei este încălzit într-un dispozitiv electric special pentru a menține o anumită temperatură. Când hârtia termică îi trece prin cap, învelișul său termic se transformă în negru acolo unde capul este încălzit.
În proiectul anterior, am interfațat imprimanta termică cu microcontrolerul PIC. În acest tutorial, vom interfața o imprimantă termică cu placa Arduino Uno. Acest proiect va funcționa astfel: -
- Imprimanta va fi conectată cu Arduino Uno.
- Un comutator tactil este conectat cu placa Arduino pentru a oferi opțiunea „ împingeți pentru a imprima” atunci când este apăsat.
- LED-ul Arduino de la bord va notifica starea imprimării. Va străluci numai atunci când se desfășoară activitatea de imprimare.
Specificații și conexiuni ale imprimantei
Folosim imprimanta termică CSN A1 de la Cashino, care este disponibilă cu ușurință, iar prețul nu este prea mare.
Dacă vedem specificațiile pe site-ul său oficial, vom vedea un tabel care oferă specificațiile detaliate-
În partea din spate a imprimantei, vom vedea următoarea conexiune-
Conectorul TTL oferă conexiunea Rx Tx pentru a comunica cu unitatea de microcontroler. Putem folosi și protocolul RS232 pentru a comunica cu imprimanta. Conectorul de alimentare este pentru alimentarea imprimantei, iar butonul este utilizat pentru testarea imprimantei. Când imprimanta este alimentată, dacă apăsăm butonul de auto-testare, imprimanta va imprima o foaie în care vor fi tipărite specificațiile și liniile de probă. Iată foaia de autotest-
După cum putem vedea, imprimanta folosește 9600 baud rate pentru a comunica cu unitatea de microcontroler. Imprimanta poate imprima caractere ASCII. Comunicarea este foarte ușoară, putem imprima orice prin simpla utilizare a UART, transmiterea șirului sau a caracterului.
Imprimanta funcționează de la 5-9V, vom folosi o sursă de alimentare de 9V 2A care poate alimenta atât imprimanta, cât și Arduino Uno. Imprimanta are nevoie de mai mult de 1,5 A curent pentru încălzirea capului imprimantei. Acesta este dezavantajul imprimantei termice, deoarece necesită un curent de încărcare uriaș în timpul procesului de imprimare.
Condiții prealabile
Pentru a realiza următorul proiect, avem nevoie de următoarele lucruri: -
- Breadboard
- Conectați firele
- Placa Arduino UNO cu cablu USB.
- Un computer cu configurarea interfeței Arduino gata cu ID-ul Arduino.
- Rezistor de 10k
- Comutator tactil
- Imprimantă termică CSN A1 cu rolă de hârtie
- Unitate de alimentare nominală de 9V 2A.
Diagrama și explicația circuitului
Schema pentru controlul imprimantei cu Arduino Uno este prezentată mai jos:
Circuitul este simplu. Folosim un rezistor pentru a furniza starea implicită pe pinul de intrare Switch D2. Când butonul este apăsat, D2 va deveni HIGH și această condiție este utilizată pentru a declanșa tipărirea. Sursa de alimentare unică de 9V 2A este utilizată pentru alimentarea imprimantei termice și a plăcii Arduino. Este important să verificați polaritatea sursei de alimentare înainte de a o conecta la placa Arduino UNO. Are o intrare jack cu butoi cu polaritate centrală pozitivă.
Am construit circuitul într-o placă de testare și l-am testat.
Program Arduino
Completarea codului Arduino cu un Demo Video este la sfârșitul proiectului. Aici explicăm câteva părți importante ale codului.
La început, am declarat pinii pentru buton (Pin 2) și LED de la bord (Pin13)
int led = 13; int SW = 2;
Apoi, puține variabile sunt configurate pentru întârzierea retrogradării și comutarea stării apăsării
int is_switch_press = 0; // Pentru detectarea comutatorului apăsați starea int debounce_delay = 300; // Întârziere de dezabonare
În funcția de configurare , am configurat pinul LED ca ieșire și comutăm ca intrare. De asemenea, am configurat UART cu 9600 baud rate.
void setup () { / * * Această funcție este utilizată pentru a seta configurația pinului / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
În bucla principală, verificăm mai întâi dacă comutatorul este apăsat sau nu, apoi așteptăm din nou și verificăm din nou pentru a identifica dacă comutatorul este cu adevărat apăsat sau nu, dacă comutatorul este încă apăsat chiar și după întârziere, imprimăm personalizate linii în UART, deci în imprimanta termică.
La începutul tipăririi am setat LED-ul de bord ridicat și după imprimare l-am oprit făcându-l scăzut.
bucla void () { is_switch_press = digitalRead (SW); // Citirea stării de apăsare a comutatorului dacă (is_switch_press == HIGH) { delay (debounce_delay); // întârziere debounce pentru apăsarea butonului if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Bună ziua"); întârziere (100); Serial.println („Aceasta este o interfață de imprimantă termică”); Serial.println ("cu Arduino UNO."); întârziere (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println („Mulțumesc.”); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } else { digitalWrite (led, LOW); } }
Verificați mai jos codul Arduino complet și videoclipul demonstrativ.