- Технические характеристики принтера и подключения
- Предпосылки
- Принципиальная схема и объяснение
- Программа 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.
- Резистор 10к
- Тактильный переключатель
- Термопринтер CSN A1 с бумажным рулоном
- Блок питания номиналом 9В 2А.
Принципиальная схема и объяснение
Схема управления принтером с помощью Arduino Uno приведена ниже:
Схема простая. Мы используем резистор, чтобы обеспечить состояние по умолчанию на входном контакте D2 переключателя. При нажатии кнопки D2 становится ВЫСОКИМ, и это состояние используется для запуска печати. Для питания термопринтера и платы Arduino используется единый блок питания 9В 2А. Важно проверить полярность блока питания перед подключением его к плате Arduino UNO. Он имеет вход цилиндрического разъема с центральной положительной полярностью.
Мы собрали схему на макете и проверили ее.
Программа Arduino
Полный код Arduino с демонстрационным видео находится в конце проекта. Здесь мы объясняем несколько важных частей кода.
Сначала мы объявили контакты для кнопки (контакт 2) и встроенного светодиода (контакт 13).
int led = 13; int SW = 2;
Затем несколько переменных настраиваются для задержки дребезга и состояния нажатия переключателя.
int is_switch_press = 0; // Для обнаружения переключателя нажмите status int debounce_delay = 300; // Задержка дребезга
В функции настройки мы настроили вывод светодиода как выход, а переключатель как вход. Мы также настроили UART на скорость 9600 бод.
void setup () { / * * Эта функция используется для установки конфигурации контактов * / pinMode (led, OUTPUT); pinMode (ПО, ВХОД); Serial.begin (9600); }
В основном цикле мы сначала проверяем, нажат переключатель или нет, затем снова ждем какое-то время и снова проверяем, действительно ли переключатель нажат или нет, если переключатель все еще нажат даже после задержки, мы печатаем custom линии в UART, так в термопринтере.
В начале печати мы установили встроенный светодиод на высокий уровень, а после печати мы выключили его, установив низкий уровень.
недействительный цикл () { is_switch_press = digitalRead (SW); // Чтение статуса нажатия Switch if (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 (светодиод, LOW); } } else { digitalWrite (светодиод, НИЗКИЙ); } }
Ознакомьтесь с полным кодом Arduino и демонстрационным видео ниже.