- Especificaciones y conexiones de la impresora
- Prerrequisitos
- Diagrama de circuito y explicación
- Programa Arduino
Acaba de realizar el pago en un restaurante y recibió una pequeña factura o dispensó efectivo de un cajero automático y recibió el recibo de la transacción. Estos recibos se imprimen mediante una impresora térmica o una impresora de recibos.
La impresora térmica es la solución rentable y fácilmente disponible para imprimir billetes pequeños o recibos. Esta solución fácil de integrar está disponible en todas partes. La impresora utiliza papel termocrómico, un tipo de papel especial que se transforma en color negro cuando se expone a una cierta cantidad de calor. La impresora térmica utiliza un proceso de calentamiento especial para imprimir en este papel. El cabezal de la impresora se calienta en un sistema eléctrico especial para mantener una determinada temperatura. Cuando el papel térmico pasa por su cabezal, su recubrimiento térmico se vuelve negro donde se calienta el cabezal.
En el proyecto anterior, hemos interconectado la impresora térmica con el microcontrolador PIC. En este tutorial, conectaremos una impresora térmica con la placa Arduino Uno. Este proyecto funcionará así: -
- La impresora se conectará con Arduino Uno.
- Se está conectando un interruptor táctil con la placa Arduino para proporcionar la opción ' presionar para imprimir' cuando se presiona.
- El LED Arduino integrado notificará el estado de la impresión. Brillará solo cuando la actividad de impresión esté en curso.
Especificaciones y conexiones de la impresora
Estamos utilizando la impresora térmica CSN A1 de Cashino, que está disponible fácilmente y el precio no es demasiado alto.
Si vemos la especificación en su sitio web oficial, veremos una tabla que proporciona las especificaciones detalladas-
En la parte posterior de la impresora, veremos la siguiente conexión:
El conector TTL proporciona la conexión Rx Tx para comunicarse con la unidad del microcontrolador. También podemos utilizar el protocolo RS232 para comunicarnos con la impresora. El conector de alimentación es para encender la impresora y el botón se utiliza para probar la impresora. Cuando la impresora está encendida, si presionamos el botón de autoprueba, la impresora imprimirá una hoja donde se imprimirán las especificaciones y las líneas de muestra. Aquí está la hoja de autoevaluación:
Como podemos ver, la impresora usa una velocidad de 9600 baudios para comunicarse con la unidad del microcontrolador. La impresora puede imprimir caracteres ASCII. La comunicación es muy fácil, podemos imprimir cualquier cosa simplemente usando UART, transmitiendo cadena o carácter.
La impresora funciona de 5-9V, usaremos una fuente de alimentación de 9V 2A que puede alimentar tanto la impresora como el Arduino Uno. La impresora necesita más de 1,5 A de corriente para calentar el cabezal de la impresora. Este es el inconveniente de la impresora térmica, ya que consume una gran carga de corriente durante el proceso de impresión.
Prerrequisitos
Para hacer el siguiente proyecto, necesitamos lo siguiente: -
- Tablero de circuitos
- Conectar cables
- Placa Arduino UNO con cable USB.
- Una computadora con configuración de interfaz Arduino lista con el IDE de Arduino.
- Resistencia de 10k
- Interruptor táctil
- Impresora Térmica CSN A1 con rollo de papel
- Fuente de alimentación nominal de 9V 2A.
Diagrama de circuito y explicación
El esquema para controlar la impresora con Arduino Uno se muestra a continuación:
El circuito es sencillo. Estamos utilizando una resistencia para proporcionar el estado predeterminado en el pin de entrada D2 del interruptor. Cuando se presiona el botón, D2 pasará a ser ALTO y esta condición se usa para activar la impresión. Se utiliza una fuente de alimentación única de 9V 2A para alimentar la impresora térmica y la placa Arduino. Es importante comprobar la polaridad de la fuente de alimentación antes de conectarla a la placa Arduino UNO. Tiene una entrada jack de barril con polaridad positiva central.
Construimos el circuito en un tablero y lo probamos.
Programa Arduino
El código completo de Arduino con un video de demostración se encuentra al final del proyecto. Aquí estamos explicando algunas partes importantes del código.
Al principio, declaramos los pines para el pulsador (Pin 2) y el LED integrado (Pin13)
int led = 13; int SW = 2;
Entonces, pocas variables se configuran para el retardo de rebote y el estado de la pulsación del interruptor
int is_switch_press = 0; // Para detectar el interruptor, presione status int debounce_delay = 300; // Retraso de rebote
En la función de configuración , configuramos el pin LED como salida y el interruptor como entrada. También configuramos el UART con una velocidad de 9600 baudios.
void setup () { / * * Esta función se utiliza para establecer la configuración de pines * / pinMode (led, OUTPUT); pinMode (SW, ENTRADA); Serial.begin (9600); }
En el bucle principal, primero verificamos si el interruptor está presionado o no, luego nuevamente esperamos un momento y nuevamente verificamos para identificar que el interruptor está realmente presionado o no, si el interruptor todavía está presionado incluso después del retraso, imprimimos de forma personalizada líneas en la UART, por lo que en la impresora térmica.
Al inicio de la impresión, configuramos el LED integrado en alto y, después de imprimir, lo apagamos haciéndolo bajo.
bucle vacío () { is_switch_press = digitalRead (SW); // Leyendo el estado de pulsación del interruptor if (is_switch_press == HIGH) { delay (debounce_delay); // Retardo antirrebote para presionar botón if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Hola"); retraso (100); Serial.println ("Esta es una interfaz de impresora térmica"); Serial.println ("con Arduino UNO."); retraso (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Gracias"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, BAJO); } } else { digitalWrite (led, LOW); } }
Consulte el código completo de Arduino y el video de demostración a continuación.