- Технічні характеристики принтера та підключення
- Передумови
- Принципова схема та пояснення
- Програма Arduino
Ви щойно здійснили оплату в ресторані, отримали невеликий рахунок або видали готівку в банкоматі та отримали квитанцію про транзакцію. Ці квитанції друкуються за допомогою термопринтера або принтера квитанцій.
Термопринтер - це доступне та економічно вигідне рішення для друку невеликих купюр або квитанцій. Це просте для інтеграції рішення доступне скрізь. Принтер використовує термохромний папір, спеціальний тип паперу, який перетворюється на чорний колір, коли на нього впливає певна кількість тепла. Термопринтер використовує спеціальний процес нагрівання для друку на цьому папері. Головка принтера нагрівається за допомогою спеціальної електрики, щоб підтримувати певну температуру. Коли термопапір проходить через його головку, його теплове покриття стає чорним там, де нагрівається головка.
У попередньому проекті ми з'єднали термопринтер з мікроконтролером PIC. У цьому підручнику ми будемо взаємодіяти термопринтер з платою Arduino Uno. Цей проект працюватиме так: -
- Принтер буде підключений до Arduino Uno.
- Тактильний перемикач підключається до плати Arduino, щоб забезпечити опцію " натиснути на друк" при натисканні.
- Вбудований світлодіод Arduino повідомляє про стан друку. Він буде світитися лише тоді, коли триває друкарська діяльність.
Технічні характеристики принтера та підключення
Ми використовуємо термопринтер CSN A1 від Cashino, який доступний легко, а ціна не надто висока.
Якщо ми побачимо специфікацію на її офіційному веб-сайті, ми побачимо таблицю, яка містить докладні технічні характеристики -
На тильній стороні принтера ми побачимо таке підключення -
Роз'єм TTL забезпечує з'єднання Rx Tx для зв'язку з блоком мікроконтролера. Ми також можемо використовувати протокол RS232 для зв'язку з принтером. Роз'єм живлення призначений для живлення принтера, а кнопка використовується для тестування принтера. Якщо принтер живиться, якщо ми натиснемо кнопку самоперевірки, принтер надрукує аркуш, де будуть надруковані технічні характеристики та зразки рядків. Ось аркуш самоперевірки -
Як ми бачимо, принтер використовує швидкість передачі даних 9600 бод для зв'язку з блоком мікроконтролера. Принтер може друкувати символи ASCII. Зв'язок дуже простий, ми можемо надрукувати що завгодно, просто використовуючи UART, передаючи рядок або символ.
Принтер працює від напруги 5-9 В, ми будемо використовувати джерело живлення 9 В 2 А, яке може живити як принтер, так і Arduino Uno. Для нагрівання головки принтера для струму потрібно більше 1,5 А струму. Це недолік термопринтера, оскільки він приймає величезний струм навантаження в процесі друку.
Передумови
Щоб зробити наступний проект, нам потрібні такі речі: -
- Макет
- Підключіть дроти
- Плата Arduino UNO з USB-кабелем.
- Комп’ютер із налаштованим інтерфейсом Arduino, готовий за допомогою Arduino IDE.
- 10k резистор
- Тактильний перемикач
- Термопринтер CSN A1 з рулоном паперу
- Блок живлення 9 В 2А.
Принципова схема та пояснення
Схема управління принтером за допомогою Arduino Uno наведена нижче:
Схема проста. Ми використовуємо резистор для забезпечення стану за замовчуванням на вхідному штифті D2 комутатора. Після натискання кнопки D2 стає ВИСОКИМ, і ця умова використовується для запуску друку. Одномісний блок живлення 9В 2А використовується для живлення теплового принтера та плати Arduino. Важливо перевірити полярність джерела живлення, перш ніж підключати його до плати Arduino UNO. Він має вхідний отвір для ствола з позитивною полярністю в центрі.
Ми побудували схему в макеті та протестували її.
Програма Arduino
Повний код Arduino з демонстраційним відео знаходиться в кінці проекту. Тут ми пояснюємо кілька важливих частин коду.
Спочатку ми оголосили штифти для кнопки (Pin 2) та бортового світлодіода (Pin13)
int led = 13; int SW = 2;
Тоді конфігурується кілька змінних для затримки розмови і перемикання стану преси
int is_switch_press = 0; // Для виявлення стану преса перемикача int debounce_delay = 300; // Затримка дебаунсу
У функції налаштування ми налаштували світлодіодний штифт як вихідний сигнал і перемикач як вхідний. Ми також налаштували UART зі швидкістю передачі даних 9600.
void setup () { / * * Ця функція використовується для встановлення конфігурації контактів * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
У основному циклі ми спочатку перевіряємо, натиснуто перемикач чи ні, потім знову чекаємо деякий час і знову перевіряємо, щоб визначити, що перемикач справді натиснутий чи ні, якщо перемикач все ще натиснутий навіть після затримки, ми друкуємо на замовлення рядки в UART, так і в термопринтері.
На початку друку ми встановили високий рівень вбудованого світлодіода, а після друку ми вимкнули його, зробивши низьким.
недійсний цикл () { is_switch_press = digitalRead (SW); // Зчитування стану натискання Switch, якщо (is_switch_press == HIGH) { delay (debounce_delay); // затримка відмови від натискання кнопки if (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); } } else { digitalWrite (led, LOW); } }
Перевірте повний код Arduino та демонстраційне відео нижче.