(SKU: DFR0503) 嵌入式热敏打印机

来自DFRobot Product Wiki
2018年7月19日 (四) 11:22Techsupport讨论 | 贡献的版本

跳转至: 导航搜索
嵌入式热敏打印机

目录

简介

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

Warning yellow.png

注意事项:

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

技术规格

  • 工作电压: 5~9V
  • 工作电流:0.8~1.5A(瞬时电流≈2A)
  • 通信接口:TTL+USB
  • 打印方式:热敏点阵打印
  • 打印颜色:黑白输出
  • 分辨率:203DPI(8点/mm,每行384点)
  • 使用耗材:热敏小票纸卷
  • 纸卷规格:纸卷宽度(58mm±0.5mm)、纸卷直径(30mm)
  • 打印内容:支持文字、图形、一维条码、二维码、曲线等打印
  • 打印宽度:48mm(有效打印宽度)
  • 打印寿命:50公里
  • 打印速度:60mm/s
  • 打印字符:GB18030汉字库(24*24国际一、二级字库),12*24标准ASCII码,并能够对汉字和字符放大1-4倍打印
  • 工作温度:-20℃~50℃
  • 相对湿度:10-80%
  • 打印指令:ESC/POS 兼容指令集(详见《打印机指令集》
  • 外观尺寸:82*58*44 mm
  • 安装尺寸:77*53*42 mm


引脚说明

DFR0503引脚图
TTL通信接口
标号 名称 功能描述
1 GND 电源地
2 DTR 流控制
3 RXD 数据接收端
4 TXD 数据发送端
5 NC 空脚
电源接口
标号 名称 功能描述
1 VCC 5-9V
2 GND 电源地


使用教程


准备

  • 硬件
    • 1 x Arduino UNO控制板
    • 1 x IO 传感器扩展板 V7.1
    • 1 x 直流电源
    • 1 x 热敏打印机
    • 若干 杜邦线
  • 软件


接线图1

  • 如图所示,直流电源为Arduino UNO及热敏打印机提供9V供电。同时,将热敏打印机的TTL接口与此wiki示例程序定义的软串口端口(10-RXD,11-TXD)连接;
DFR0503连接图


打印字符(Arduino)

  • 打印非汉字字符可直接使用print语句;
  • 打印汉字则需要新建一个hz.c的文件,文件内容为新建一个字符数组(关于如何新建.c文件,建立一个.txt文件,然后修改后缀为.c就行了)。
const char hz[][32]={
"DFROBOT",	         //0
"极趣科技",	         //1
"嵌入式热敏打印机",	 //2
"arduino开发控制",	 //3
"DIY趣味",	         //4
"让我们一起共创未来",	 //5
"打造我们的DIY世界",	 //6
};


  • 然后,编写程序

/*!
   @file DFR0503.ino
   @brief Embedded Thermal Printer - TTL Serial
   @n [Get the module here]()
   @n This example is the Chinese characters printed on the paper roll and character.
   @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:_DFR0503)_%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%83%AD%E6%95%8F%E6%89%93%E5%8D%B0%E6%9C%BA#.E6.8E.A5.E7.BA.BF.E5.9B.BE)

   @copyright  [DFRobot](http://www.dfrobot.com), 2017
   @copyright GNU Lesser General Public License

   @author [lijun](ju.li@dfrobot.com)
   @version  V1.0
   @date  2017-05-23
*/

#include"C:\Users\Administrator\Documents\Arduino\uart_dayinji\hz.c"     //引用将之前新建的hz.c文件,引号内容为hz.c文件索引地址
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup()
{
  mySerial.begin(9600);
}
void loop() 
{
  mySerial.println();
  mySerial.println();
  mySerial.println("DFROBOT");
  mySerial.println();
  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]);
  mySerial.println();
  mySerial.println();
  mySerial.println();
  delay(10000);
}
                            


  • 结果

在热敏纸上显示下列字符:

DFROBOT

DFROBOT
极趣科技
嵌入式热敏打印机
arduino开发控制
DIY趣味
让我们一起共创未来
打造我们的DIY世界

打印二维码和条形码(Arduino)

  • 参考指令集写好条形码和二维码的打印指令,然后将指令放进数组中。

/*!
   @file DFR0503.ino
   @brief Embedded Thermal Printer - TTL Serial
   @n [Get the module here]()
   @n This example is a comprehensive display of the printer function
   @copyright  [DFRobot](http://www.dfrobot.com), 2016
   @copyright GNU Lesser General Public License
   @author [shichao](Chao.Shi@dfrobot.com)
   @version  V1.0
   @date  2018-01-23
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

/*--------打印条形码指令,其中包含信息为“DFR0503”---------*/
char bar_code[24]={
  0x1b, 0x40,
  0x1d, 0x48, 0x02, 
  0x1d, 0x68, 0x64, 
  0x1d, 0x77, 0x03,
  0x1d, 0x6b, 0x49, 0x09, 0x7B, 0x42, 0x44, 0x46, 0x52, 0x7B, 0x43, 0x05, 0x03                                   
};

/*--------打印二维码指令,其中包含信息为“www.dfrobot.com”---------*/
const char QRx[60]={
0x1b,0x40,
0x1d,0x28,0x6b,0x03,0x00,0x31,0x43,0x05,
0x1d,0x28,0x6b,0x03,0x00,0x31,0x45,0x30,
0x1d,0x28,0x6b,0x12,0x00,0x31,0x50,0x30,0x77,0x77,0x77,0x2E,0x64,0x66,0x72,0x6F,0x62,0x6F,0x74,0x2E,0x63,0x6F,0x6D,
0x1b,0x61,0x01,
0x1d,0x28,0x6b,0x03,0x00,0x31,0x52,0x30,
0x1d,0x28,0x6b,0x03,0x00,0x31,0x51,0x30
};       
void setup(){  
  mySerial.begin(9600);
  Serial.begin(9600);  
  while(Serial.read()>= 0){}
  }
void loop(){
  mySerial.println();
  mySerial.print("---------------------------------"); 
  mySerial.println();
  mySerial.write(bar_code,60);                                                                 //向打印机发送打印条形码指令       
  delay(5);
  mySerial.println();
  mySerial.write(QRx,60);                                                                      //向打印机发送打印二维码指令
  mySerial.println();
  mySerial.print("---------------------------------"); 
  delay(5000);
}


常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!


更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。


更多


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱