- Specifiche e collegamenti della stampante
- Prerequisiti
- Schema del circuito e spiegazione
- Programma Arduino
Hai appena effettuato il pagamento a un ristorante e hai ricevuto una piccola fattura o erogato contanti da un bancomat e hai ricevuto la ricevuta della transazione. Queste ricevute vengono stampate utilizzando una stampante termica o una stampante per ricevute.
La stampante termica è la soluzione immediatamente disponibile ed economica per stampare bollette o ricevute di piccole dimensioni. Questa soluzione facile da integrare è disponibile ovunque. La stampante utilizza carta termocromica, un particolare tipo di carta che si trasforma in colore nero quando viene esposta a una certa quantità di calore. La stampante termica utilizza uno speciale processo di riscaldamento per stampare su questa carta. La testina della stampante viene riscaldata in un apposito impianto elettrico per mantenere una certa temperatura. Quando la carta termica passa attraverso la sua testa, il suo rivestimento termico diventa nero dove la testa viene riscaldata.
Nel progetto precedente, abbiamo interfacciato la stampante termica con il microcontrollore PIC. In questo tutorial interfacciamo una stampante termica con la scheda Arduino Uno. Questo progetto funzionerà in questo modo: -
- La stampante sarà collegata ad Arduino Uno.
- Un interruttore tattile viene collegato alla scheda Arduino per fornire l' opzione " push to print" quando viene premuto.
- Il LED Arduino integrato notificherà lo stato della stampa. Si illuminerà solo quando l'attività di stampa è in corso.
Specifiche e collegamenti della stampante
Stiamo utilizzando la stampante termica CSN A1 di Cashino, che è facilmente disponibile e il prezzo non è troppo alto.
Se vediamo le specifiche sul suo sito ufficiale, vedremo una tabella che fornisce le specifiche dettagliate-
Sul lato posteriore della stampante, vedremo la seguente connessione:
Il connettore TTL fornisce la connessione Rx Tx per comunicare con l'unità microcontrollore. Possiamo anche utilizzare il protocollo RS232 per comunicare con la stampante. Il connettore di alimentazione serve per alimentare la stampante e il pulsante viene utilizzato a scopo di test della stampante. Quando la stampante viene alimentata, se premiamo il pulsante di autotest la stampante stamperà un foglio in cui verranno stampate le specifiche e le linee campione. Ecco il foglio di autotest-
Come possiamo vedere, la stampante utilizza una velocità di trasmissione di 9600 baud per comunicare con l'unità microcontrollore. La stampante può stampare caratteri ASCII. La comunicazione è molto semplice, possiamo stampare qualsiasi cosa semplicemente usando UART, trasmettendo stringa o carattere.
La stampante funziona da 5-9V, utilizzeremo un alimentatore da 9V 2A che può alimentare sia la stampante che Arduino Uno. La stampante necessita di più di 1,5 A di corrente per riscaldare la testina di stampa. Questo è lo svantaggio della stampante termica in quanto richiede un'enorme corrente di carico durante il processo di stampa.
Prerequisiti
Per realizzare il seguente progetto, abbiamo bisogno delle seguenti cose: -
- Breadboard
- Collegare i cavi
- Scheda Arduino UNO con cavo USB.
- Un computer con la configurazione dell'interfaccia Arduino pronta con l'IDE di Arduino.
- Resistenza da 10k
- Interruttore tattile
- Stampante termica CSN A1 con rotolo di carta
- Alimentatore da 9V 2A.
Schema del circuito e spiegazione
Di seguito è riportato lo schema per il controllo della stampante con Arduino Uno:
Il circuito è semplice. Stiamo usando un resistore per fornire lo stato predefinito attraverso il pin di ingresso Switch D2. Quando si preme il pulsante, D2 diventerà HIGH e questa condizione viene utilizzata per attivare la stampa. Un unico alimentatore da 9V 2A viene utilizzato per alimentare la stampante termica e la scheda Arduino. È importante controllare la polarità dell'alimentatore prima di collegarlo alla scheda Arduino UNO. Ha un ingresso jack barile con polarità positiva centrale.
Abbiamo costruito il circuito in una breadboard e lo abbiamo testato.
Programma Arduino
Il codice completo di Arduino con un video dimostrativo è alla fine del progetto. Qui stiamo spiegando alcune parti importanti del codice.
In un primo momento, abbiamo dichiarato i pin per il pulsante (Pin 2) e il LED a bordo (Pin13)
led int = 13; int SW = 2;
Quindi vengono configurate poche variabili per il ritardo antirimbalzo e lo stato della pressa di commutazione
int is_switch_press = 0; // Per rilevare lo switch premere status int debounce_delay = 300; // Ritardo antirimbalzo
Nella funzione di configurazione , abbiamo configurato il pin LED come uscita e l'interruttore come ingresso. Abbiamo anche configurato l'UART con 9600 baud rate.
void setup () { / * * Questa funzione viene utilizzata per impostare la configurazione dei pin * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
Nel ciclo principale, controlliamo prima se l'interruttore è premuto o meno, poi di nuovo aspettiamo un po 'di tempo e di nuovo controlliamo per identificare che l'interruttore sia veramente premuto o meno, se l'interruttore è ancora premuto anche dopo il ritardo, stampiamo personalizzato righe nell'UART, quindi nella stampante termica.
All'inizio della stampa abbiamo impostato alto il LED integrato e dopo la stampa l'abbiamo spento rendendolo basso.
void loop () { is_switch_press = digitalRead (SW); // Lettura dello stato della pressa di Switch if (is_switch_press == HIGH) { delay (debounce_delay); // ritardo antirimbalzo per la pressione del pulsante if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Hello"); ritardo (100); Serial.println ("Questa è un'interfaccia per stampante termica"); Serial.println ("con Arduino UNO."); ritardo (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Grazie."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } else { digitalWrite (led, LOW); } }
Controlla il codice Arduino completo e il video dimostrativo di seguito.