- Προδιαγραφές και συνδέσεις εκτυπωτή
- Προαπαιτούμενα
- Διάγραμμα κυκλώματος και επεξήγηση
- Πρόγραμμα Arduino
Μόλις πραγματοποιήσατε πληρωμή σε ένα εστιατόριο και λάβατε ένα μικρό λογαριασμό ή διανέμετε μετρητά από ένα ATM και λάβατε την απόδειξη συναλλαγής. Αυτές οι αποδείξεις εκτυπώνονται χρησιμοποιώντας θερμικό εκτυπωτή ή εκτυπωτή απόδειξης.
Ο θερμικός εκτυπωτής είναι η εύκολα διαθέσιμη και οικονομικά αποδοτική λύση για την εκτύπωση μικρών λογαριασμών ή αποδείξεων. Αυτή η εύχρηστη λύση είναι διαθέσιμη παντού. Ο εκτυπωτής χρησιμοποιεί θερμοχρωμικό χαρτί, έναν ειδικό τύπο χαρτιού που μετατρέπεται σε μαύρο χρώμα όταν εκτίθεται σε μια συγκεκριμένη ποσότητα θερμότητας. Ο θερμικός εκτυπωτής χρησιμοποιεί μια ειδική διαδικασία θέρμανσης για εκτύπωση σε αυτό το χαρτί. Η κεφαλή του εκτυπωτή θερμαίνεται με ειδικό ηλεκτρικό για να διατηρηθεί μια συγκεκριμένη θερμοκρασία. Όταν το θερμικό χαρτί περνά από το κεφάλι του, η θερμική του επίστρωση μετατρέπεται σε μαύρο όπου θερμαίνεται η κεφαλή.
Στο προηγούμενο έργο, έχουμε συνδέσει τον θερμικό εκτυπωτή με τον μικροελεγκτή PIC. Σε αυτό το σεμινάριο, θα συνδέσουμε έναν θερμικό εκτυπωτή με τον πίνακα Arduino Uno. Αυτό το έργο θα λειτουργήσει ως εξής: -
- Ο εκτυπωτής θα συνδεθεί με το Arduino Uno.
- Ένας διακόπτης αφής συνδέεται με την πλακέτα Arduino για να παρέχει την επιλογή « push to print» όταν πατηθεί.
- Το ενσωματωμένο Arduino LED θα ειδοποιήσει την κατάσταση εκτύπωσης. Θα ανάβει μόνο όταν η δραστηριότητα εκτύπωσης συνεχίζεται.
Προδιαγραφές και συνδέσεις εκτυπωτή
Χρησιμοποιούμε θερμικό εκτυπωτή CSN A1 από το Cashino, ο οποίος διατίθεται εύκολα και η τιμή δεν είναι πολύ υψηλή.
Εάν δούμε τις προδιαγραφές στον επίσημο ιστότοπό της, θα δούμε έναν πίνακα που παρέχει τις λεπτομερείς προδιαγραφές-
Στην πίσω πλευρά του εκτυπωτή, θα δούμε την ακόλουθη σύνδεση-
Η σύνδεση TTL παρέχει τη σύνδεση Rx Tx για επικοινωνία με τη μονάδα μικροελεγκτή. Μπορούμε επίσης να χρησιμοποιήσουμε το πρωτόκολλο RS232 για επικοινωνία με τον εκτυπωτή. Ο σύνδεσμος τροφοδοσίας προορίζεται για τροφοδοσία του εκτυπωτή και το κουμπί χρησιμοποιείται για σκοπούς δοκιμής εκτυπωτή. Όταν τροφοδοτείται ο εκτυπωτής, εάν πατήσουμε το κουμπί αυτόματης δοκιμής, ο εκτυπωτής θα εκτυπώσει ένα φύλλο όπου θα εκτυπωθούν οι προδιαγραφές και οι γραμμές δείγματος. Εδώ είναι το φύλλο αυτοελέγχου-
Όπως μπορούμε να δούμε ο εκτυπωτής χρησιμοποιεί 9600 baud rate για επικοινωνία με τη μονάδα μικροελεγκτή. Ο εκτυπωτής μπορεί να εκτυπώσει χαρακτήρες ASCII. Η επικοινωνία είναι πολύ εύκολη, μπορούμε να εκτυπώσουμε οτιδήποτε χρησιμοποιώντας απλά UART, μεταδίδοντας συμβολοσειρά ή χαρακτήρα.
Ο εκτυπωτής λειτουργεί από 5-9V, θα χρησιμοποιήσουμε ένα τροφοδοτικό 9V 2A το οποίο μπορεί να τροφοδοτήσει τόσο τον εκτυπωτή όσο και το Arduino Uno. Ο εκτυπωτής χρειάζεται περισσότερο από 1,5A ρεύματος για τη θέρμανση της κεφαλής του εκτυπωτή. Αυτό είναι το μειονέκτημα του θερμικού εκτυπωτή καθώς παίρνει τεράστιο ρεύμα φορτίου κατά τη διαδικασία εκτύπωσης.
Προαπαιτούμενα
Για να κάνουμε το ακόλουθο έργο, χρειαζόμαστε τα ακόλουθα πράγματα: -
- Ψωμί
- Συνδέστε τα καλώδια
- Arduino UNO board με καλώδιο USB.
- Ένας υπολογιστής με εγκατάσταση διεπαφής Arduino έτοιμος με το Arduino IDE.
- 10k αντίσταση
- Διακόπτης αφής
- Θερμικός εκτυπωτής CSN A1 με ρολό χαρτιού
- 9V 2A ονομαστική μονάδα τροφοδοσίας.
Διάγραμμα κυκλώματος και επεξήγηση
Σχηματικό για τον έλεγχο του εκτυπωτή με το Arduino Uno παρατίθεται παρακάτω:
Το κύκλωμα είναι απλό. Χρησιμοποιούμε μια αντίσταση για να παρέχουμε την προεπιλεγμένη κατάσταση στον πείρο εισόδου διακόπτη D2. Όταν πατηθεί το κουμπί, το D2 θα γίνει ΥΨΗΛΟ και αυτή η συνθήκη χρησιμοποιείται για την ενεργοποίηση της εκτύπωσης. Ενιαία τροφοδοσία τροφοδοσίας 9V 2A χρησιμοποιείται για την τροφοδοσία του θερμικού εκτυπωτή και της πλακέτας Arduino. Είναι σημαντικό να ελέγξετε την πολικότητα του τροφοδοτικού πριν τη συνδέσετε στην πλακέτα του Arduino UNO. Έχει είσοδο υποδοχής βαρελιού με θετική πολικότητα στο κέντρο.
Κατασκευάσαμε το κύκλωμα σε ένα breadboard και το δοκιμάσαμε.
Πρόγραμμα Arduino
Ο πλήρης κωδικός Arduino με ένα Demo Video βρίσκεται στο τέλος του έργου. Εδώ εξηγούμε λίγο σημαντικό μέρος του κώδικα.
Αρχικά, δηλώσαμε τους πείρους για το κουμπί (Pin 2) και το LED επί του σκάφους (Pin13)
int led = 13; int SW = 2;
Στη συνέχεια, λίγες μεταβλητές διαμορφώνονται για καθυστέρηση απόρριψης και αλλαγή κατάστασης τύπου
int is_switch_press = 0; // Για την ανίχνευση του διακόπτη πατήστε την κατάσταση int debounce_delay = 300; // Καθυστέρηση κατάργησης
Στη λειτουργία ρύθμισης , διαμορφώσαμε την καρφίτσα LED ως έξοδο και αλλάζουμε ως είσοδο. Διαμορφώσαμε επίσης το UART με ρυθμό baud 9600.
void setup () { / * * Αυτή η λειτουργία χρησιμοποιείται για τον καθορισμό της διαμόρφωσης pin * / pinMode (led, OUTPUT). pinMode (SW, ΕΙΣΟΔΟΣ); Serial.begin (9600); }
Στον κύριο βρόχο, ελέγχουμε πρώτα αν ο διακόπτης είναι πατημένος ή όχι, και πάλι περιμένουμε για λίγο και ξανά ελέγξουμε για να διαπιστώσουμε ότι ο διακόπτης είναι πραγματικά πατημένος ή όχι, εάν ο διακόπτης εξακολουθεί να πατηθεί ακόμη και μετά την καθυστέρηση, εκτυπώνουμε προσαρμοσμένο γραμμές στο UART, έτσι στον θερμικό εκτυπωτή.
Στην αρχή της εκτύπωσης, θέσαμε το ενσωματωμένο LED υψηλό και μετά την εκτύπωση, το απενεργοποιήσαμε κάνοντας χαμηλό.
void loop () { is_switch_press = digitalRead (SW); // Διαβάζοντας την κατάσταση εναλλαγής τύπου εάν (is_switch_press == HIGH) { καθυστέρηση (debounce_delay); // καθυστέρηση απόρριψης για το πάτημα του κουμπιού εάν (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Γεια σας"); καθυστέρηση (100); Serial.println ("Αυτή είναι μια διεπαφή θερμικού εκτυπωτή"); Serial.println ("με το Arduino UNO."); καθυστέρηση (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Ευχαριστώ."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } αλλιώς { digitalWrite (led, LOW). } }
Δείτε τον πλήρη κώδικα Arduino και το βίντεο επίδειξης παρακάτω.