Току-що извършихте плащане до ресторант и получихте малка сметка или раздадохте пари в брой от банкомат и получихте разписката за транзакцията. Тези разписки се отпечатват с помощта на термо принтер или принтер за разписки.
Термопринтерът е лесно достъпно и рентабилно решение за отпечатване на малки сметки или разписки. Това лесно за интегриране решение е достъпно навсякъде. Принтерът използва термохромна хартия, специален вид хартия, която се превръща в черен цвят, когато е изложена на определено количество топлина. Термопринтерът използва специален процес на нагряване, за да печата върху тази хартия. Главата на принтера се загрява в специална електрическа система, за да поддържа определена температура. Когато термохартията премине през главата си, топлинното й покритие се превръща в черно, където главата се нагрява.
В предишния проект сме свързали термопринтер с микроконтролер PIC. В този урок ще свържем термопринтер с платката Arduino Uno. Този проект ще работи по следния начин: -
- Принтерът ще бъде свързан с Arduino Uno.
- С таблото Arduino се свързва тактилен превключвател, за да се осигури опцията „ натисни за печат“ при натискане.
- Вграденият светодиод Arduino ще извести състоянието на печат. Той ще свети само когато печатната дейност продължава.
Спецификация на принтера и връзки
Използваме термопринтер CSN A1 от Cashino, който се предлага лесно и цената не е твърде висока.
Ако видим спецификацията на официалния му уебсайт, ще видим таблица, която предоставя подробните спецификации-
На задната страна на принтера ще видим следната връзка -
TTL конекторът осигурява Rx Tx връзка за комуникация с микроконтролера. Също така можем да използваме протокола RS232 за комуникация с принтера. Конекторът за захранване е за захранване на принтера, а бутонът се използва за тестване на принтера. Когато принтерът се захранва, ако натиснем бутона за самопроверка, принтерът ще отпечата лист, където ще бъдат отпечатани спецификации и примерни линии. Ето листа за самопроверка-
Както виждаме, принтерът използва 9600 скорости на предаване за комуникация с микроконтролера. Принтерът може да отпечатва ASCII символи. Комуникацията е много лесна, можем да отпечатаме всичко, като просто използваме UART, предавайки низ или символ.
Принтерът работи от 5-9V, ще използваме захранване 9V 2A, което може да захранва както принтера, така и Arduino Uno. Принтерът се нуждае от повече от 1,5 А ток за нагряване на главата на принтера. Това е недостатъкът на термопринтера, тъй като отнема голям ток на натоварване по време на процеса на печат.
Предпоставки
За да направим следния проект, са ни необходими следните неща: -
- Макет
- Закачете проводници
- Платка Arduino UNO с USB кабел.
- Компютър с настройка на интерфейс Arduino, готов с Arduino IDE.
- 10k резистор
- Тактилен превключвател
- Термопринтер CSN A1 с хартиена ролка
- 9V 2A номинален захранващ блок.
Електрическа схема и обяснение
Схемата за управление на принтер с Arduino Uno е дадена по-долу:
Веригата е проста. Използваме резистор, за да осигурим състояние по подразбиране през входния щифт D2 на превключвателя. При натискане на бутона D2 ще стане HIGH и това условие се използва за задействане на печата. Единично захранване от 9V 2A захранване се използва за захранване на термопринтера и платката Arduino. Важно е да проверите полярността на захранването, преди да го свържете към платката Arduino UNO. Той има вход за барел с централна положителна полярност.
Изградихме веригата в макет и я тествахме.
Програма Arduino
Пълният код на Arduino с демонстрационно видео е в края на проекта. Тук обясняваме няколко важни части от кода.
Първоначално декларирахме щифтовете за бутон (Pin 2) и бордовия светодиод (Pin13)
int led = 13; int SW = 2;
Тогава са конфигурирани няколко променливи за забавяне на закъснението и превключване на състоянието на натискане
int is_switch_press = 0; // За откриване на състоянието на пресата на превключвателя int debounce_delay = 300; // Закъснение на дебаунта
В настройка функция, ние конфигурирали LED щифт като продукция и да преминат като вход. Също така конфигурирахме UART с 9600 скорости на предаване.
void setup () { / * * Тази функция се използва за задаване на конфигурацията на пина * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
В основния цикъл първо проверяваме дали превключвателят е натиснат или не, след това отново изчакваме някога и отново проверяваме, за да идентифицираме, че превключвателят е наистина натиснат или не, ако превключвателят е натиснат дори след закъснението, отпечатваме по поръчка линии в UART, така и в термопринтера.
В началото на печата поставихме вградения светодиод високо и след отпечатването го изключихме, като го намалихме.
невалиден цикъл () { is_switch_press = digitalRead (SW); // Четене на състоянието на натискане на превключвателя, ако (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 и демонстрационното видео по-долу.