- Spécifications de l'imprimante et connexions
- Conditions préalables
- Schéma de circuit et explication
- Programme Arduino
Vous venez d'effectuer un paiement dans un restaurant et vous avez reçu une petite facture ou distribué de l'argent à un guichet automatique et reçu le reçu de transaction. Ces reçus sont imprimés à l'aide d'une imprimante thermique ou d' une imprimante de reçus.
L'imprimante thermique est la solution facilement disponible et économique pour imprimer de petites factures ou des reçus. Cette solution facile à intégrer est disponible partout. L'imprimante utilise du papier thermochromique, un type de papier spécial qui se transforme en couleur noire lorsqu'il est exposé à une certaine quantité de chaleur. L'imprimante thermique utilise un processus de chauffage spécial pour imprimer sur ce papier. La tête d'impression est chauffée dans un appareil électrique spécial pour maintenir une certaine température. Lorsque le papier thermique passe à travers sa tête, son revêtement thermique devient noir là où la tête est chauffée.
Dans le projet précédent, nous avons interfacé l'imprimante thermique avec le microcontrôleur PIC. Dans ce tutoriel, nous allons interfacer une imprimante thermique avec la carte Arduino Uno. Ce projet fonctionnera comme ceci: -
- L'imprimante sera connectée à Arduino Uno.
- Un commutateur tactile est connecté à la carte Arduino pour fournir l' option ` ` pousser pour imprimer '' lorsqu'il est enfoncé.
- La LED Arduino intégrée notifiera l'état de l'impression. Il ne brille que lorsque l'activité d'impression est en cours.
Spécifications de l'imprimante et connexions
Nous utilisons l' imprimante thermique CSN A1 de Cashino, qui est disponible facilement et le prix n'est pas trop élevé.
Si nous voyons la spécification sur son site officiel, nous verrons un tableau qui fournit les spécifications détaillées-
À l'arrière de l'imprimante, nous verrons la connexion suivante:
Le connecteur TTL fournit la connexion Rx Tx pour communiquer avec le microcontrôleur. Nous pouvons également utiliser le protocole RS232 pour communiquer avec l'imprimante. Le connecteur d'alimentation sert à alimenter l'imprimante et le bouton est utilisé à des fins de test de l'imprimante. Lorsque l'imprimante est sous tension, si nous appuyons sur le bouton d'auto-test, l'imprimante imprimera une feuille sur laquelle les spécifications et les exemples de lignes seront imprimés. Voici la feuille d'auto-test-
Comme nous pouvons le voir, l'imprimante utilise un débit de 9600 bauds pour communiquer avec l'unité de microcontrôleur. L'imprimante peut imprimer des caractères ASCII. La communication est très simple, nous pouvons tout imprimer en utilisant simplement UART, en transmettant une chaîne ou un caractère.
L'imprimante fonctionne à partir de 5-9V, nous utiliserons une alimentation 9V 2A qui peut alimenter à la fois l'imprimante et l'Arduino Uno. L'imprimante a besoin de plus de 1,5 A de courant pour chauffer la tête d'impression. C'est l'inconvénient de l'imprimante thermique car elle prend un courant de charge énorme pendant le processus d'impression.
Conditions préalables
Pour réaliser le projet suivant, nous avons besoin des éléments suivants: -
- Planche à pain
- Brancher les fils
- Carte Arduino UNO avec câble USB.
- Un ordinateur avec une configuration d'interface Arduino prêt avec l'IDE Arduino.
- Résistance 10k
- Interrupteur tactile
- Imprimante thermique CSN A1 avec rouleau de papier
- Bloc d'alimentation 9V 2A.
Schéma de circuit et explication
Le schéma de contrôle de l'imprimante avec Arduino Uno est donné ci-dessous:
Le circuit est simple. Nous utilisons une résistance pour fournir un état par défaut sur la broche d'entrée D2 du commutateur. Lorsque le bouton est enfoncé, D2 devient HAUT et cette condition est utilisée pour déclencher l'impression. Une alimentation unique de 9V 2A est utilisée pour alimenter l'imprimante thermique et la carte Arduino. Il est important de vérifier la polarité de l'alimentation avant de la connecter à la carte Arduino UNO. Il a une entrée jack cylindrique avec une polarité positive centrale.
Nous avons construit le circuit dans une maquette et l' avons testé.
Programme Arduino
Le code Arduino complet avec une vidéo de démonstration est à la fin du projet. Ici, nous expliquons quelques parties importantes du code.
Dans un premier temps, nous avons déclaré les broches pour le bouton-poussoir (Pin 2) et la LED embarquée (Pin13)
int led = 13; int SW = 2;
Ensuite, quelques variables sont configurées pour le délai anti-rebond et le statut de la presse
int is_switch_press = 0; // Pour détecter le commutateur, appuyez sur status int debounce_delay = 300; // Retard anti-rebond
Dans la fonction de configuration , nous avons configuré la broche LED comme sortie et le commutateur comme entrée. Nous avons également configuré l'UART avec un débit de 9600 bauds.
void setup () { / * * Cette fonction est utilisée pour définir la configuration des broches * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
Dans la boucle principale, nous vérifions d' abord si l'interrupteur est enfoncé ou non, puis à nouveau nous attendons quelques temps et vérifions à nouveau pour identifier que l'interrupteur est vraiment enfoncé ou non, si l'interrupteur est toujours enfoncé même après le délai, nous imprimons personnalisé lignes dans l'UART, donc dans l'imprimante thermique.
Au début de l'impression, nous avons réglé la LED embarquée à un niveau élevé et après l'impression, nous l'avons désactivée en la réduisant.
boucle vide () { is_switch_press = digitalRead (SW); // Lecture de l'état de la presse du commutateur if (is_switch_press == HIGH) { delay (debounce_delay); // délai anti- rebond pour la pression du bouton if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Bonjour"); retard (100); Serial.println ("Ceci est une interface d'imprimante thermique"); Serial.println ("avec Arduino UNO."); retard (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Merci."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } else { digitalWrite (led, LOW); } }
Vérifiez le code Arduino complet et la vidéo de démonstration ci-dessous.