简介
微型热敏打印机采用热敏技术,无需添加墨粉或上墨,性能稳定,身材小巧,节省空间。微型热敏打印机在仪器仪表、食品检测、购物终端等场景应用广泛。生活中的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秒打印一次以下内容