背景
现有一型号为HP C6602A的墨盒,需要研究其驱动方式,并使用合适的微控制器对其进行控制。
工作内容
一、 研究墨盒的驱动
墨盒的驱动原理和方法参考了现有开源项目InkShield的理论部分。由于HP C6602A是一款商业墨盒,HP公司并不提供技术细节,因此从驱动到物理连接等都需要自行研究。InkShield的作者在文献中寻找到了一种相类似的墨盒HP 51604的驱动方法。 墨盒喷头共有12个喷嘴,分别对应电路连接的12个触点。外加两个公共触点,该墨盒一共有14个触点对外连接。党需要某个喷嘴需要喷墨时,可以给这个喷嘴对应的触点加一个20V、6μs的正脉冲。不同喷嘴之间的脉冲不能同时发,脉冲之间需要相隔0.5μs以上;而同一只喷嘴的两个脉冲之间需要间隔800μs以上。如下图所示:
InkShield的作者实测了HP C6602A的特性,发现只要脉冲的宽度在3μs至20μs之间、电压在17.5V-27V之间,墨盒都可以正常出墨。而且出墨量不随脉宽和电压波动而变化。这使得用单片机对墨盒进行驱动成为了可能。
二、 设计墨盒的机械安装与电气连接结构
然而墨盒的驱动原理和方法搞清楚只是第一步,摆在面前一个非常大的问题就是墨盒的机械安装与电气连接。如下图所示,墨盒的触点镶嵌在墨盒内部的电路板上,两个触点之间的距离约为1.5mm,而触点的大小仅有1mm见方。
原始的InkShield项目在使用墨盒的同时需要一款墨盒的转接盒HP Q2374A。然而这款转接盒在国内是无法买到的,因此需要自行设计一款转接板。 此处考虑使用3D打印设计一款安装盒子,设计一款符合连接处尺寸的电路板,即连接板,并使用较细的测试弹簧探针Pogo Pin焊接在电路板上,对准触点进行压接,再通过软排线连接到驱动板上。
三、 墨盒驱动设计
墨盒的脉冲要求20V,而单片机输出仅有3.3V和5V,因此需要外部元件进行电平转换。此处选用InkShield项目同款的达林顿阵列ULN2803(也可以选用步进电机常用的UNL2003,二者的区别在于前者8通道,后者7通道,而C6602A有12个通道,用谁都得两片才够)。硬件连接原理图如下图所示:
该原理图分为三部分。其中左边是Arduino板;中间为自行设计的转接板,用于连接Arduino和达林顿阵列,并连接软排线所用的接口;右侧即为墨盒的连接板,用连接板连接电路板本体。
墨盒的脉冲要求宽度在3μs至20μs之间,这就要求单片机可以产生足够短的脉冲驱动墨盒。经过测量,如果使用Arduino库中的digitalWrite函数,引脚输出一高一低,延时约为4μs(不支持PWM输出的引脚)-5μs(支持PWM始出的引脚),这完全符合墨盒的需求,甚至可以使用delayMicroseconds函数加上几微秒的延时。
达林顿管驱动墨盒的原理图如上图所示。当达林顿管的基极输入低电平时管子闭合,墨盒处于悬空状态,不喷出墨水;当管子基极输入高电平时,墨盒的一端接20V电源,另一端接地,满足电压关系,便触发点火喷墨。因此尽管需要引脚接地喷墨,在达林顿管侧依旧需要高电平脉冲,平时保持低电平。
注意:墨盒的触点不可长时间接地,否则会导致墨盒的点火装置永久损坏。别问我怎么知道的emmm。
四、 打印效果展示
在Arduino中写一个简单的测试程序,测试一波喷墨的效果。
int printer_pin[]={19,18,17,16,15,14,7,6,5,4,3,2};
int pixel_array[]={
4095,3599,3591,4019,4027,4019,3591,3599,4095,4095,
4095,3983,3847,3699,3835,3803,3611,3611
};
void printer_print(int pixel)
{
int i=0
for(i=0;i<=11;i++)
{
if(((pixel>>i)&1)==0)digitalWrite(printer_pin[i],HIGH);
delayMicroseconds(6);
digitalWrite(printer_pin[i],LOW);
}
delay(50);
}
void setup() {
int i=0;
Serial.begin(115200);
for(i=0;i<12;i++)Serial.println((pixel_array[2]>>i)&0x001);
for(i=0;i<=11;i++)
{
pinMode(printer_pin[i],OUTPUT);
digitalWrite(printer_pin[i],LOW);
}
}
void loop() {
int i=0;
for(i=0;i<328;i++)
{
printer_print(pixel_array[i]);
}
delay(1000);
}
效果如下图所示:
经过测量,12点的字宽约3mm,平均每个点的宽度为0.25mm。如果推动墨盒的速度够均匀,手法更精准,理论上来说可以打印出较高质量的点阵图,配合多次喷墨可以实现一定程度的灰度图。之后可以设计步进电机滑轨系统与通信系统,实现图片的打印。
|