简介

微型热敏打印机采用热敏技术,无需添加墨粉或上墨,性能稳定,身材小巧,节省空间。微型热敏打印机在仪器仪表、食品检测、购物终端等场景应用广泛。生活中的ATM机、存包柜、POS、超市电子称以及外卖小哥的外卖机里都有它。 打印机采用9~24V 宽电压供电方式,电压越高,打印效果越清晰。适用宽度为58MM的热敏纸卷,打印寿命 达50 公里。它支持arduino、树莓派以及Windows 串口与驱动打印。我们可以参照指令集,利用USB串口或TTL通讯接口向热敏打印机发送相应指令,打印机便能根据指令即时打印出你需要的文字、字符,条形码,二维码甚至是黑白图片; 我们可以将它和arduino控制器或树莓派利用串口连接。当配合各种传感器使用时便能DIY电子称、血压指数测量仪、土壤元素分析仪和行车记录仪等实用的仪器设备。我们也可以制作一个属于自己的小票打印机,小票上的内容任由你自己定义,经过开发甚至还可以实现远 程打印功能;

⚠注意事项:

嵌入式热敏打印机电压越高,打印速度越快,打印出来的单据更清晰(电压范围为9~24V,)。同时,产品正常工作电流均在 0.5~2.5A 之间波动。 瞬间电流最高可达到 2.5A, 若天气寒冷的地方, 电流安数要求也相应增加, 打印图形的功耗一般比较大, 如果打印小票上会涉及到图形, 建议选择适合的电源!
要用arduino进行打印汉字的话,需要建立一个C文件,不能在arduinoIDE下编译(IDE开发环境无法输入中文,使用剪贴板贴入,中文也是UTF8,打印出来是乱码)。C文件中写入相关数组数据进行调用。

技术规格

工作电压: DC9~24V
工作电流:0.5~2.5A
待机电流:0.02A
通信接口:TTL+USB+485+RS232
打印方式:行式热敏打印
打印模式:小票打印/标签打印
打印颜色:黑白输出
分辨率:203DPI(8点/mm,0.125mm/点,每行384点)
使用耗材:热敏小票纸卷、热敏标签卷纸
纸卷规格:纸卷宽度(58mm±0.5mm)、纸卷直径(30mm)
打印内容:支持文字、图形、一维条码、二维码、曲线等打印
打印宽度:48mm(有效打印宽度)
打印寿命:50公里
打印速度:70mm/s
打印字符:GB18030汉字库(2424国际一、二级字库),1224标准ASCII码,并能够对汉字和字符放大1-4倍打印
工作温度:-5℃~50℃
工作湿度:25%~50%RH
储存温度:-20~70%°C
储存湿度:5~95%RH
打印指令:ESC/POS 兼容指令集(详见《打印机指令集》
外观尺寸:825844 mm
安装尺寸:775342 mm

引脚说明

接口描述

电源口 RS232/TTL串口 USB接口 485串口
XH2.54 2Pin PH2.0 4Pin PH2.0 4Pin PH2.0 2Pin

接口配置

串口通讯 波特率 奇偶校验 数据位 停止位
USB接口(默认虚拟打印口模式,可虚拟为串口模式) 115200 8 1

尺寸图

使用教程

基于windows上使用

小票模式

上位机软件
热敏打印机出厂默认为小票模式,USB接口方式,如需配置为虚拟串口方式,需要进行以下步骤:

配置完成后,可以通过上位机的小票测试下基本测试项,选择红框内的对应功能打印内容。

标签模式

将打印机内的小票纸张换成标签纸张,通过上位机切换为标签模式,POS_LABEL为标签模式,ESC为小票模式。

切换完成后,进行标签校验,即可打印标签测试。

基于Arduino上使用

接线图

TTL接口接线方式

打印机 Arduino UNO
DTR 红线 悬空
TXD 黑线 10脚
RXD 蓝线 11脚
GND 绿线 GND

  • 如图为热敏打印纸装入方式示意。

示例代码

小票模式打印字符

打印非汉字字符可直接使用print语句,例如英文字母,数字,标点符号......
打印汉字则需要采取下面方式:
建一个hz.c的文件,文件内容为新建一个字符数组(关于如何新建.c文件:建立一个.txt文件,然后修改后缀为.c,使用记事本打开,然后选择另存为,编码选择ANSI 后保存即可。)。
constchar hz[][32] 实际上是声明了一个字符串数组,每个字符串不能超过32字节(GB2312编码的汉字16个),如果你要显示的汉字特别长,请修改32这个数字;此种方法实际上是将汉字全部提出到一个数组中,应用此类方式很容易实现国际版程序,即切换数组就可以实现不同语种的显示;【注意】:建立这个外挂文件的目的就是为了解决使用IDE编程环境无法编辑GB2312内码汉字的问题,请勿使用IDE编程环境打开编辑此文件,这样操作会将此文件改写为UTF8内码的文件!

const char hz[][32]={
"DFROBOT",           //0
"极趣科技",          //1
"嵌入式热敏打印机",  //2
"arduino开发控制",   //3
"DIY趣味",             //4
"让我们一起共创未来",     //5
"打造我们的DIY世界",    //6
};
#include"E:\ces\hz.c"     //引用将之前新建的hz.c文件,引号内容为hz.c文件索引地址,需要根据hz.c实际位置作出相应修改
#include <SoftwareSerial.h>
uint8_t Com[7] = { 0x1F, 0x2F, 0x0B, 0x00, 0x01, 0x00, 0x00}; //切换为小票模式
SoftwareSerial mySerial(10, 11); // RX, TX
void setup()
{
  mySerial.begin(115200);
  mySerial.write(Com, 7);//切换为小票模式
}
void loop()
{
  mySerial.println("SKU:DFR0503-CN");
  mySerial.println(hz[0]);
  mySerial.println(hz[1]);
  mySerial.println(hz[2]);
  mySerial.println(hz[3]);
  mySerial.println(hz[4]);
  mySerial.println(hz[5]);
  mySerial.println(hz[6]);
  delay(10000);
}

示例结果:

每10秒打印一次以下内容

标签模式打印字符

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);                                // RX, TX
uint8_t Com[7] = { 0x1F, 0x2F, 0x0B, 0x00, 0x01, 0x01, 0x01 };  //切换为标签模式
uint8_t Com1[2] = { 0x1F, 0x63 };//标签校验
const char QRx[200] = {
0x1B,0x40,

0x1A,0x5B,0x01,0x00,0x00,0x00,0x00,0x90,0x01,0x40,0x01,0x02,

0x1A,0x31,0x00,0x05,0x02,0x1E,0x00,0x1E,0x00,0x04,0x00,0x77,0x77,0x77,0x2E,0x64,0x66,0x72,0x6F,0x62,0x6F,0x74,0x2E,0x63,0x6F,0x6D,0x00,

0x1A,0x54,0x01,0xC8,0x00,0x14,0x00,0x18,0x00,0x00,0x11,0x44,0x46,0x52,0x4F,0x42,0x4F,0x54,0x00,

0x1A,0x54,0x01,0xC8,0x00,0x37,0x00,0x18,0x00,0x00,0x11,0x53,0x4B,0x55,0x3A,0x44,0x46,0x52,0x30,0x35,0x30,0x33,0x2D,0x43,0x4E,0x00,

0x1A,0x54,0x01,0xC8,0x00,0x5A,0x00,0x18,0x00,0x00,0x11,0x77,0x77,0x77,0x2E,0x64,0x66,0x72,0x6F,0x62,0x6F,0x74,0x2E,0x63,0x6F,0x6D,0x00,

0x1A,0x5D,0x00,

0x1A,0x4F,0x00
};

void setup() {
  mySerial.begin(115200);
  Serial.begin(9600);
  mySerial.write(Com, 7);  //切换为标签模式
  delay(1000);
  mySerial.write(Com1, 2);
  while (Serial.read() >= 0) {}
}
void loop() {
  mySerial.println();
  mySerial.write(QRx, 200);  //向打印机发送打印指令
  mySerial.println();
  delay(10000);
}

示例结果:

每10秒打印一次以下内容

更多

打印指令示例.pdf
热敏打印机开发手册.pdf