chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

熱敏打印機(jī)的使用

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-02 09:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

使用這款非??蓯鄣臒崦舸蛴C(jī)將微型打印機(jī)添加到任何微控制器項(xiàng)目中。也就是收據(jù)打印機(jī),它們就是您在ATM或雜貨店看到的東西。現(xiàn)在,您可以將自己的一臺(tái)小型打印機(jī)嵌入機(jī)箱中。該打印機(jī)非常適合與微控制器接口,您只需從微控制器獲得3.3V至5V TTL串行輸出即可打印文本,條形碼,位圖圖形甚至是QR碼!

該打印機(jī)使用非常常見的2。 25英寸寬的熱敏紙,可在Adafruit商店或任何辦公室或文具用品店中購買。托架中最多可容納50英尺的紙張。您還需要5伏至9伏的可調(diào)節(jié)直流電源,該電源可提供1.5安培或在大電流打印過程中,我們的5V 2A電源可以很好地工作。

您可以在Adafruit商店購買熱敏打印機(jī)套件,包括打印機(jī),紙張,電源和接線盒適配器!

當(dāng)然,我們不會(huì)給您數(shù)據(jù)表和“好運(yùn)!” —本教程和匹配的Arduino庫演示了以下內(nèi)容:

使用大,中,小文本打印

粗體 下劃線和倒排文本

變量行距

左對(duì)齊,居中對(duì)齊和右對(duì)齊

以下標(biāo)準(zhǔn)格式的條形碼: UPC A,UPC E,EAN13,EAN8,CODE39,I25,CODEBAR,CODE93,CODE128,CODE11 和 MSI -具有可調(diào)整的條形碼高度

自定義單色位圖圖形

如何打印QR碼

電源

這些打印機(jī)使用熱敏頭加熱特殊收據(jù)紙并繪制圖像和文字。這使打印機(jī)非常小-沒有移動(dòng)的墨水頭-但這意味著它們需要大量電能。該打印機(jī)特別需要 5至9伏,1.5安培電流??!這意味著您將需要相當(dāng)強(qiáng)勁的電源,并且無法使用USB電源供電。 需要外部適配器!

我們建議在我們的商店中使用5V 2A電源,它有足夠的電源使打印機(jī)保持滿意狀態(tài),還可以使用它來運(yùn)行一些微控制器或傳感器剩余的500 mA電流是打印機(jī)不需要的。

為打印機(jī)供電的快速方法是僅使用2.1毫米插孔適配器,您可以將其連接到打印機(jī)的紅色/黑色導(dǎo)線:

首次測(cè)試

您應(yīng)該做的第一項(xiàng)測(cè)試是確保打印機(jī)正在運(yùn)行并且電源連接正確。

首先,向上拉小塑料卡舌以打開紙架。然后如下圖所示將57.5毫米(2 1/4英寸)熱敏紙卷插入托架。

對(duì)于產(chǎn)品ID#597“小型熱敏打印機(jī)”,最佳的紙張長(zhǎng)度將是為50英尺(約15米),因此請(qǐng)嘗試拾起該尺寸。有時(shí),如果您從辦公用品商店購買紙張,紙張會(huì)稍長(zhǎng)一些,大約80或85英尺,在這種情況下,您需要從紙卷中取出紙張,直到其直徑為1.5英寸/40毫米并且容易安裝。

對(duì)于產(chǎn)品#2751“微型熱敏打印機(jī)”,紙張的最佳長(zhǎng)度為33英尺(約10米),因此請(qǐng)嘗試拾取該尺寸。

對(duì)于產(chǎn)品#2752“納米熱敏打印機(jī)” “紙張的最佳長(zhǎng)度為16英尺(約5米),因此請(qǐng)嘗試拾取該尺寸。

對(duì)于我們的熱敏打印機(jī)內(nèi)膽套件,沒有紙架,因此您可以使用任何尺寸。/li》

確保紙張沒有被裝訂或粘在托架中,它應(yīng)該可以自由旋轉(zhuǎn)。

如前所述,使用5V至9V 1.5A為打印機(jī)供電或更高的電源,例如連接2.1mm DC電源插孔:

按住按鈕o在插入電源的同時(shí),在打印機(jī)頂部(或控制板上)。您應(yīng)該會(huì)看到打印出的收據(jù),其中顯示了字體表和一些診斷信息。

有是打印機(jī)膽量上的無按鈕(#2753)。您將需要在J1上附加一個(gè)或手動(dòng)將其短路。

打印機(jī)通電后,綠色或紅色LED可能會(huì)閃爍。不一定會(huì)穩(wěn)定!

如果沒有得到打印輸出,請(qǐng)檢查紙張是否正確插入并且沒有裝訂,電源線是否正確連接,電源是否已插入等。然后嘗試再次,在連接電源時(shí)按住按鈕。

請(qǐng)注意測(cè)試頁上的波特率??赡苁?9200或9600。稍后我們需要這個(gè)數(shù)字:

某些打印機(jī)膽量(#2753)沒有自檢功能。

如果未打印出波特率,請(qǐng)嘗試使用9600作為默認(rèn)值。

Arduino代碼

要將數(shù)據(jù)發(fā)送到打印機(jī),我們將使用5V TTL串行連接。這與計(jì)算機(jī)9針串行端口上的10V RS232串行端口不同-請(qǐng)勿將打印機(jī)直接連接到標(biāo)準(zhǔn)PC端口,否則可能會(huì)損壞它??梢允褂弥T如FTDI電纜之類的東西與打印機(jī)進(jìn)行通訊,但是我們假設(shè)幾乎每個(gè)人都希望將其與微控制器一起使用。本教程顯示了如何將其連接到Arduino,并且我們的示例代碼與Arduino兼容。任何可以輸出TTL串行信號(hào)的微控制器都可以正常工作,并且對(duì)代碼進(jìn)行了適當(dāng)?shù)男薷摹?/p>

首先,我們將連接打印機(jī)的數(shù)據(jù)線。一種簡(jiǎn)單的連接方法是,只需將匹配顏色的22AWG左右的電線插入插頭,然后使用這些電線將其擴(kuò)展到Arduino。

對(duì)于產(chǎn)品#597

“小型熱敏打印機(jī)”的數(shù)據(jù)線有三根導(dǎo)線

black = 接地

黃色=打印機(jī)數(shù)據(jù) IN

綠色=打印機(jī)數(shù)據(jù) OUT

在電源線上,將紅色連接到5-9VDC電源,將黑色連接到電源接地

對(duì)于產(chǎn)品#2751

“微型熱敏打印機(jī)”的數(shù)據(jù)電纜具有《堅(jiān)固的五根電線

黑色= 接地

綠色=數(shù)據(jù) IN 至打印機(jī)-迷你熱敏打印機(jī)對(duì)面!

黃色=數(shù)據(jù) OUT 打印機(jī)-迷你熱敏打印機(jī)的對(duì)面!

讓紅色和藍(lán)色未連接任何東西

在電源線上,連接紅色至5-9VDC電源,黑色為地面供電

對(duì)于產(chǎn)品#2752

“納米熱敏打印機(jī)”的數(shù)據(jù)電纜具有五根電線,而沒有電源電纜

黑色= 接地

藍(lán)色=數(shù)據(jù) IN 到打印機(jī)(在PCB上標(biāo)記為 RX )

綠色=打印機(jī)的數(shù)據(jù) OUT (在PCB上標(biāo)記為 TX )

紅色= 5-9VDC電源(連接

yellow = DTR,暫時(shí)不使用,請(qǐng)?zhí)^!

對(duì)于產(chǎn)品#2753

“ Thermal Printer Guts”的數(shù)據(jù)線有五線,無電源線

在這種情況下,該電纜可能沒有顏色,請(qǐng)?jiān)?a target="_blank">連接器上查找文本。可悲的是,當(dāng)您插入電纜時(shí),它會(huì)被覆蓋

VH = 5-9VDC電源(將電源插頭的接地與上述數(shù)據(jù)連接到同一接地)

GND = 接地

PCB上標(biāo)有 RX 的數(shù)據(jù)=數(shù)據(jù) IN 到打印機(jī)

標(biāo)有 TX 的打印機(jī)上PCB =數(shù)據(jù) OUT

標(biāo)有 DTR PCB =連接到 GND 。

連接到Arduino

在Arduino端,數(shù)據(jù)輸出電線連接到數(shù)字引腳5 ,數(shù)據(jù)輸入轉(zhuǎn)到數(shù)字引腳6 ,并《接地》接地到任意 GND 引腳。您可以稍后更改數(shù)字引腳,但是要與示例代碼匹配,請(qǐng)暫時(shí)堅(jiān)持使用!

請(qǐng)注意下面的電線顏色不一定與數(shù)據(jù)電纜的顏色相匹配,因此請(qǐng)仔細(xì)檢查產(chǎn)品的輸入和輸出名稱,它們都不同!

安裝庫

現(xiàn)在是時(shí)候下載Arduino庫代碼了。

轉(zhuǎn)到 Sketch-》 Include Library-》 Manage Libraries 。..

下的Arduino庫管理器

從管理器中安裝 Adafruit熱敏打印機(jī)庫

我們還提供了有關(guān)Arduino庫安裝的出色教程,網(wǎng)址為:

http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

之后安裝庫,重新啟動(dòng)Arduino IDE 。

您現(xiàn)在應(yīng)該可以通過按以下順序?yàn)g覽菜單來訪問示例代碼: File→Sketchbook→Libraries→ Adafruit_Thermal→A_printertest

如果您的打印機(jī)測(cè)試頁顯示“ BAUDRATE:9600”,則需要對(duì)庫源代碼進(jìn)行少量更改。使用文本編輯器(記事本等)打開文件Adafruit_Thermal.cpp并更改此行:

下載:文件

復(fù)制代碼

#define BAUDRATE 19200 #define BAUDRATE 19200

為此:

下載:文件

復(fù)制代碼

#define BAUDRATE 9600 #define BAUDRATE 9600

某些打印機(jī)到貨出廠設(shè)置為19200波特,但是有些可能設(shè)置為9600。這不會(huì)對(duì)您的設(shè)備性能產(chǎn)生負(fù)面影響!通過打印機(jī)的紙張速度已經(jīng)遠(yuǎn)遠(yuǎn)低于此速度,您將看不到任何區(qū)別……這完全是使微控制器和打印機(jī)通信的數(shù)據(jù)協(xié)議問題。

確定將草圖(如有必要,更改波特率)上傳到Arduino。您應(yīng)該看到打印機(jī)打印出示例收據(jù),其中包括庫的所有功能。

如果這不起作用,請(qǐng)首先檢查打印機(jī)和Arduino均已供電,并且數(shù)據(jù)在其中,出線和接地線已正確連接到Arduino。

打印文本

熱敏打印機(jī)可以做一些方便的事情,其中大部分都在 A_printertest 草圖中。這些如上圖所示。按順序,從頂部開始:

倒排的文本:這是通過調(diào)用 inverseOn()來調(diào)用的—您將獲得黑底白字而不是黑字-on-white。 inverseOff()將其關(guān)閉。

雙倍高度:這會(huì)使文本特別高,請(qǐng)調(diào)用 doubleHeightOn()-同樣,使用 doubleHeightOff()

左/中/右對(duì)齊來關(guān)閉:這會(huì)將文本與頁面的左邊緣或右邊緣對(duì)齊或居中對(duì)齊。您可以通過調(diào)用 justify(‘R’)(用于右對(duì)齊), justify(‘C’)(用于居中)或 justify( ‘L’)(用于左對(duì)齊)。左對(duì)齊是默認(rèn)狀態(tài)。

粗體文本:使其更加突出,使用 boldOn()啟用,然后用 boldOff()

帶下劃線的文本:使其更加突出,使用 underlineOn()啟用,并通過 underlineOff()

大/中/小文本:默認(rèn)情況下,我們使用小號(hào),中號(hào)是高號(hào)的兩倍,大號(hào)是寬/高號(hào)的兩倍。使用 setSize(‘L’), setSize(‘M’)或 setSize(‘S’)

設(shè)置大小li》行距:您可以通過調(diào)用 setLineHeight()來更改文本行之間的間距 ,其中 numpix 是像素?cái)?shù)。最小值為24(行之間沒有多余的空格),默認(rèn)間距為32,雙倍行距的文本為64。

A_printertest草圖以查看在上下文中使用的這些。

位圖打印

此打印機(jī)可以打印出位圖,可以為帶有徽標(biāo)或類似字樣的收據(jù)添加一絲類。

第一個(gè)步驟是準(zhǔn)備徽標(biāo)。打印機(jī)只能打印單色(1位)圖像,最大寬度為384像素。我們建議從一個(gè)小的位圖(每側(cè)100像素或更小)開始,然后嘗試獲得所需的尺寸和外觀。/p》

需要一些步驟來準(zhǔn)備要打印的圖像。對(duì)于Windows用戶,有一個(gè)不錯(cuò)的圖形用戶界面。對(duì)于Mac和Linux,使用了不同的工具……雖然外觀不那么漂亮,但效果很好。

這些條形碼打印機(jī)不應(yīng)與LaserJet混淆-它們不能很好地打印大量黑色的濃密圖像,否則它們可能會(huì)粘住并停滯!

div》

Windows

使用圖像編輯程序?qū)D像保存為1位BMP —在Windows中,內(nèi)置的 Paint 程序就足夠了。

下載,安裝并運(yùn)行 LCD Assistant 。該程序僅適用于Windows,但做得非常好!加載先前生成的BMP文件(在Paint等中)。文件必須為BMP格式-該軟件將不會(huì)讀取PNG,GIF等。然后需要調(diào)整一些設(shè)置……

首先,在設(shè)置的“字節(jié)方向”部分中,請(qǐng)選擇“水平”(上圖中的項(xiàng)目A)。

第二個(gè)(上圖中的項(xiàng)目B),您可能需要更改“寬度”設(shè)置。由于此軟件(和熱敏打印機(jī))按八個(gè)像素的水平組處理圖像,如果圖像寬度不是8的倍數(shù),它將被截?cái)啵ú眉簦┑阶罱妮^小的8像素邊界。例如,在上面的75像素寬的圖片中,輸出將被裁剪為僅72像素寬,從右側(cè)邊緣丟失了一些數(shù)據(jù)。為避免這種情況,請(qǐng)將此數(shù)字增加到下一個(gè)8的倍數(shù) (在上面的示例中為80),并且輸出將用空白像素填充以填補(bǔ)空白。請(qǐng)記住您在此處使用的數(shù)字,以后將需要它。

圖像高度不需要這樣調(diào)整,只需調(diào)整寬度即可。

將表名設(shè)置為簡(jiǎn)短但可描述的名稱(例如,上面的“ adalogo”) ,然后從“文件”菜單中選擇“保存輸出”。給文件起一個(gè)簡(jiǎn)短但描述性的名稱,以“ .h”結(jié)尾(例如“ adalogo.h”)。

要將此文件放入Arduino草圖,請(qǐng)從“草圖”菜單中選擇“添加文件…”。這將在您的代碼中添加一個(gè)新標(biāo)簽。您的原始代碼仍在最左側(cè)的標(biāo)簽下。

兩個(gè)標(biāo)簽現(xiàn)在都需要進(jìn)行一些小的更改。首先,在包含新表數(shù)據(jù)的文件頂部,將“ const unsigned char”更改為“ static const uint8_t PROGMEM”,如下所示:

接下來,在包含代碼主體的標(biāo)簽中,添加“ include”語句以引用新文件:

下載:文件

復(fù)制代碼

#include “adalogo.h” #include “adalogo.h”

如果不確定如何正確包含代碼,請(qǐng)檢查 A_printertest 示例草圖。

您現(xiàn)在可以通過調(diào)用 printBitmap(width,height,tablename)輸出圖像,其中 width 和 height 是圖像的尺寸像素(如果您將圖像寬度更改為8的倍數(shù),請(qǐng)使用該數(shù)字而不是原始圖像尺寸),并且 tablename 是新標(biāo)簽中數(shù)組的名稱(例如,“ adalogo”) 。

圖形用戶界面很不錯(cuò),但是其中一些額外的步驟可能會(huì)造成混淆并且容易出錯(cuò)。如果您愿意,以下適用于Mac和Linux的技術(shù)也可在Windows中使用。

Mac和Linux

Mac和Linux的轉(zhuǎn)換工具不包含精美的GUI,但效果很好,并且避免了很多步驟(以及潛在的錯(cuò)誤步驟)。源圖像不需要采用BMP格式-大多數(shù)圖像格式都可以本地讀取-并可以通過進(jìn)一步編輯將輸出添加到草圖中。如果您愿意使用此方法,它也適用于Windows。

首先,如果尚未安裝處理語言,請(qǐng)從processing.org下載。處理看起來幾乎完全像Arduino IDE,但是它是為普通計(jì)算機(jī)而不是微控制器編寫代碼的。這可能會(huì)使初學(xué)者感到困惑,因此,如果某些東西似乎無法編譯,請(qǐng)確保您在正確的環(huán)境中運(yùn)行代碼: Arduino 用于Arduino板,正在為您的計(jì)算機(jī)進(jìn)行處理。

此代碼在Processing 2.x(可從其網(wǎng)站上獲得的最新版本的Processing)中運(yùn)行。不要使用較舊的Processing 1.5.x版本!

您先前下載的Adafruit_Thermal庫文件夾包含一個(gè)名為 processing 的子文件夾。里面是一個(gè)名為 bitmapImageConvert.pde 的草圖。將其加載到“處理”中,然后按RUN(三角形按鈕)。

系統(tǒng)將使用系統(tǒng)的標(biāo)準(zhǔn)文件選擇對(duì)話框提示您選擇圖像。該程序僅運(yùn)行一小會(huì)兒,就會(huì)在原始圖像文件旁邊創(chuàng)建一個(gè)新文件。例如,如果您選擇了一個(gè)名為“ adalogo.png”的圖像,則在同一位置將有一個(gè)名為“ adalogo.h”的新文件。該文件包含要添加到Arduino草圖中的代碼。除非要在其中更改變量名,否則無需編輯此文件。

要將此文件放入Arduino草圖,請(qǐng)從“草圖”菜單中選擇“添加文件…”。這將在您的代碼中添加一個(gè)新標(biāo)簽。您的原始代碼仍位于最左側(cè)的選項(xiàng)卡下。

下一步,在包含代碼主體的選項(xiàng)卡中,添加“ include”語句以引用新文件:

下載:文件

復(fù)制代碼

#include “adalogo.h” #include “adalogo.h”

如果不確定如何正確包含代碼,請(qǐng)檢查 A_printertest 示例草圖。

如果源圖像名為adalogo.png,則生成的.h文件(adalogo.h)將包含三個(gè)名為adalogo_width,adalogo_height和adalogo_data的值,可以直接將它們按順序傳遞給printBitmap()函數(shù),如下所示:

下載:文件

復(fù)制代碼

printBitmap(adalogo_width, adalogo_height, adalogo_data); printBitmap(adalogo_width, adalogo_height, adalogo_data);

條形碼打印

熱敏打印機(jī)非常擅長(zhǎng)打印條形碼!該打印機(jī)支持11種不同的代碼- UPC A,UPC E,EAN13,EAN8,CODE39,I25,CODEBAR,CODE93,CODE128,CODE11 和 MSI 。它僅支持線性(1-D)條形碼,不能生成二維碼(如QR碼)(盡管您可以做一些破解,請(qǐng)參見下文?。l形碼是“即時(shí)”生成的,這很好-您可以很容易地自定義包含的高度和數(shù)據(jù)。

您可以通過調(diào)用 printBarcode(“ barcodedata”,BARCODETYPE)制作條形碼,其中第一個(gè)字符串是要編碼的數(shù)據(jù)(例如aUPC代碼)和 BARCODETYPE 可以是 UPC_A,UPC_E, EAN13,EAN8,CODE39,I25,CODEBAR,CODE93,CODE128,CODE11 或 MSI 。

某些條形碼非常受限制-您只能輸入12個(gè)數(shù)字,不能輸入任何字符。其他的則非常靈活,幾乎可以輸入任何字符。請(qǐng)查看Wikipedia列表,詳細(xì)列出條形碼的種類,然后為您的應(yīng)用選擇合適的條形碼。

條形碼的可用范圍隨打印機(jī)固件版本的不同而不同。在Adafruit_Thermal.h中查看代碼列表。

如果您愿意預(yù)先生成QR代碼,也可以打印QR代碼。舉例來說,如果您想在收據(jù)中包含一個(gè)URL并且URL保持不變,這可能會(huì)很方便。您可以在包括該站點(diǎn)在內(nèi)的許多站點(diǎn)上生成QR碼。使用最小的QR碼大小。圖片將采用PNG格式,因此,如果您使用的是Windows LCD助手工具,則需要先將其轉(zhuǎn)換為BMP(Windows Paint適用于此功能)。然后,您可以按照前面所述將其轉(zhuǎn)換并嵌入到Arduino草圖中。

CircuitPython

將熱敏打印機(jī)與CircuitPython(或Python)和Adafruit CircuitPython熱敏打印機(jī)模塊一起使用很容易。該模塊使您可以輕松地編寫控制打印機(jī)的Python代碼,例如打印文本和條形碼(請(qǐng)注意,CircuitPython代碼現(xiàn)在不支持位圖打印不)。

CircuitPython微控制器接線

第一個(gè)完全按照Arduino前幾頁所示,通過串行連接將熱敏打印機(jī)連接到板上。確保為打印機(jī)提供電源,該電源可以在約1.5到2A的電流下提供5-9V電壓。

請(qǐng)記住,還有兩種連接打印機(jī)的方法,最簡(jiǎn)單的方法是連接打印機(jī)的電源。電路板的TX到打印機(jī)的RX –這使您可以打印任何東西,但不檢查紙張狀態(tài):

打印機(jī)電源正極(紅線)至 5-9V電源正極。

打印機(jī)電源接地(紅色旁邊的黑線)至電源負(fù)極/接地。

打印機(jī)RX(黃色)到板載串行TX 。

打印機(jī)接地(黃色旁邊的黑線)到板地/GND。

一個(gè)更高級(jí)的選項(xiàng)是連接打印機(jī)‘的TX引腳連接到開發(fā)板的串行RX引腳。 但是要非常小心,以確保您的電路板支持5伏串行輸入!許多板卡,例如Feather M0,都不支持5V串行輸入,會(huì)損壞! :

打印機(jī)電源正極(紅線)到 5-9V直流電源正極。

打印機(jī)電源接地 (紅色旁邊的黑線)連接到電源負(fù)極/接地。

打印機(jī)RX (黃色)連接到板載串行TX 》。

打印機(jī)接地(黃色旁邊的黑線)到板接地/GND。

打印機(jī)TX 到2.2K Ω電阻的一側(cè)。

3.3K Ω電阻的一側(cè)到t的另一側(cè)他的2.2K Ω電阻。將3.3K Ω電阻的另一側(cè)連接到板地/GND。

板RX 連接到3.3K 的結(jié)Ω 和2.2K Ω電阻(即分壓器的輸出)。

再次非常小心地連接打印機(jī)TX(綠線)連接到板上!如上所述,如果不支持5伏輸入,則可能會(huì)損壞電路板。如有疑問,請(qǐng)斷開綠線的連接!您仍然可以在沒有綠線的情況下進(jìn)行打印,只有在有紙的情況下,您才失去閱讀能力。

Python計(jì)算機(jī)接線

由于存在數(shù)十種Linux計(jì)算機(jī)/主板,可以使用,我們將展示Raspberry Pi的接線。對(duì)于其他平臺(tái),請(qǐng)?jiān)L問Linux上的CircuitPython指南,以了解您的平臺(tái)是否受支持。

在這里,您有兩個(gè)選擇:外部USB到串行轉(zhuǎn)換器,或USB上的內(nèi)置UART。 Pi的TX/RX引腳。下面是連接USB到串行轉(zhuǎn)換器的示例:

USB TX 至打印機(jī)RX

USB接地 》到打印機(jī)地面

以下是使用Pi內(nèi)置的示例UART:

Pi GND 至打印機(jī)接地(黑線)

Pistrong TXD 至打印機(jī)RX (黃線)

如果要使用內(nèi)置UART,則需要禁用串行控制臺(tái)并在 raspi-config 中啟用串行端口硬件。有關(guān)如何執(zhí)行此操作的詳細(xì)說明,請(qǐng)參見《 Raspberry Pi上的CircuitPython指南》的“ UART/串行”部分。

如果您希望能夠檢查打印機(jī)的紙張狀態(tài),則可以可以創(chuàng)建一個(gè)具有2.2K Ω和3.3K Ω電阻器電路的簡(jiǎn)單分壓器,將打印機(jī)的5V輸出降低到更安全的3.3V電平:

打印機(jī)RX (黃色)到 Pi串行TXD 。

打印機(jī)接地(黃色旁邊的黑線)到 Pi GND。

打印機(jī)TX 到2.2K Ω電阻器的一側(cè)。

3.3 K Ω電阻的一側(cè)到2.2K Ω電阻的另一側(cè)。將3.3K Ω電阻的另一端連接到 Pi GND 。

Pi RXD 到電阻的結(jié)。 3.3K Ω和2.2K Ω電阻(即分壓器的輸出)。

您可以對(duì)USB到串行電纜使用相同的技術(shù):

USB接地到面包板接地導(dǎo)軌。

打印機(jī)RX (黃色)到 USB TX (綠色)。

打印機(jī)接地(黃色旁邊的黑線)到接地軌。

打印機(jī)TX 到2.2K Ω電阻的一側(cè)。

3.3 K Ω電阻的一側(cè)到2.2K 的另一側(cè)Ω重sistor。將3.3K Ω電阻的另一端連接到接地軌。

USB RX 連接到 3.3K Ω和2.2K Ω電阻(即分壓器的輸出)。

CircuitPython熱敏打印機(jī)庫的安裝

如果您使用CircuitPython微控制器,則需要在CircuitPython板上安裝Adafruit CircuitPython熱敏打印機(jī)庫。

首先請(qǐng)確保您正在運(yùn)行

下一步,您需要安裝必要的庫才能使用硬件-仔細(xì)按照以下步驟從Adafruit的CircuitPython庫包中查找并安裝這些庫。我們的簡(jiǎn)介指南上有一個(gè)很棒的頁面,介紹了如何為快速和非表達(dá)板安裝庫包。

記住非裝飾板,例如Trinket M0,Gemma M0和Feather/Metro M0 basic, ’需要從捆綁包中手動(dòng)安裝必要的庫:

adafruit_thermal_printer

您還可以下載 adafruit_thermal_printer 文件夾在Github上的發(fā)布頁面。

在繼續(xù)之前,請(qǐng)確保您董事會(huì)的lib文件夾或根文件系統(tǒng)已復(fù)制 adafruit_thermal_printer 文件夾 。

GPS庫的Python安裝

如果將Raspberry Pi或其他計(jì)算機(jī)與Python配合使用,則需要安裝Adafruit_Blinka庫,該庫在Python中提供了CircuitPython支持。這可能需要驗(yàn)證您是否正在運(yùn)行Python3。由于每個(gè)平臺(tái)都略有不同,并且Linux經(jīng)常更改,請(qǐng)?jiān)L問Linux上的CircuitPython指南以使您的計(jì)算機(jī)準(zhǔn)備就緒!

完成后,從您的命令行運(yùn)行以下命令:

下載:文件

復(fù)制代碼

sudo pip3 install adafruit-circuitpython-thermal-printer sudo pip3 install adafruit-circuitpython-thermal-printer

固件版本和波特率

在使用打印機(jī)模塊之前,必須確定打印機(jī)的固件版本和波特率。如第一個(gè)測(cè)試頁所述,通過從打印機(jī)打印測(cè)試頁很容易發(fā)現(xiàn),并在通電時(shí)按住打印機(jī)按鈕。打印出測(cè)試頁,并記下底部打印的這些值:

波特率-請(qǐng)記住該值,通常為19200或9600。

版本-還要記下該值,例如2.2、2.64、2.68等。您將使用該版本來選擇用于與打印機(jī)交互的適當(dāng)模塊。

用法

如果您使用CircuitPython微控制器,請(qǐng)連接到開發(fā)板的串行端口REPL,所以您在CircuitPython 》》》 提示符下。如果您使用的是Raspberry Pi之類的計(jì)算機(jī),請(qǐng)通過鍵入python3在命令提示符處顯示REPL。 (在某些系統(tǒng)上,python可能運(yùn)行Python 3-確保不使用Python 2,因?yàn)樗皇苤С?。?/p>

為演示傳感器的用法,我們將其初始化并從REPL中打印一些文本。

首先,您必須導(dǎo)入必要的模塊以初始化與打印機(jī)的硬件串行連接。這些命令將根據(jù)您的硬件而有所不同-選擇適當(dāng)?shù)脑O(shè)置:

下載:文件

復(fù)制代碼

# On a CircuitPython microcontroller:

import board

import busio

uart = busio.UART(board.TX, board.RX, baudrate=19200) # On a CircuitPython microcontroller:

import board

import busio

uart = busio.UART(board.TX, board.RX, baudrate=19200)

下載:文件

復(fù)制代碼

# On the Raspberry Pi with the USB-to-serial converter:

import serial

uart = serial.Serial(“/dev/ttyUSB0”, baudrate=19200, timeout=3000) # On the Raspberry Pi with the USB-to-serial converter:

import serial

uart = serial.Serial(“/dev/ttyUSB0”, baudrate=19200, timeout=3000)

下載:文件

復(fù)制代碼

# On the Raspberry Pi with built-in UART:

import serial

uart = serial.Serial(“/dev/serial0”, baudrate=19200, timeout=3000) # On the Raspberry Pi with built-in UART:

import serial

uart = serial.Serial(“/dev/serial0”, baudrate=19200, timeout=3000)

注意,串行連接的波特率由 baudrate 關(guān)鍵字。對(duì)于大多數(shù)打印機(jī),它們將使用19200波特率,但是其他打印機(jī)可能被配置為使用不同的速率,例如9600波特。 使用您在打印機(jī)測(cè)試頁上看到的波特率!

還請(qǐng)注意,CircuitPython當(dāng)前需要雙向UART連接,因此即使您沒有該板,掛鉤RX引腳(根據(jù)建議),您必須保持?jǐn)嚅_狀態(tài),并忽略在項(xiàng)目中使用它。

創(chuàng)建ThermalPrinter類

接下來,您需要導(dǎo)入熱敏打印機(jī)模塊并調(diào)用一個(gè)函數(shù)以獲取正確的類,具體取決于打印機(jī)固件的版本。 請(qǐng)按照上面提到的步驟和上一個(gè)測(cè)試頁上的步驟,找到正確的打印機(jī)版本!

下載:文件

復(fù)制代碼

import adafruit_thermal_printer

ThermalPrinter = adafruit_thermal_printer.get_printer_class(2.69) import adafruit_thermal_printer

ThermalPrinter = adafruit_thermal_printer.get_printer_class(2.69)

注意,您從get_printer_class模塊中調(diào)用了adafruit_thermal_printer函數(shù)。您必須將此功能傳遞給您所使用的熱敏打印機(jī)版本,并且它將在內(nèi)部找到要導(dǎo)入并在您的代碼中使用的正確類。在此示例中,我們指定的打印機(jī)的固件版本為2.69,但請(qǐng)確保指定打印機(jī)的版本!

結(jié)果是一個(gè)可以立即初始化的類:

初始化ThermalPrinter

現(xiàn)在構(gòu)造類:

下載:文件

復(fù)制代碼

ThermalPrinter printer = ThermalPrinter(uart)

注意,您必須傳遞先前構(gòu)建的串行UART連接。

請(qǐng)注意,它將從半到甚至五秒鐘,即可創(chuàng)建打印機(jī)并進(jìn)行初始化和預(yù)熱。您可以選擇將printer = ThermalPrinter(uart)指定為關(guān)鍵字,并手動(dòng)調(diào)用auto_warm_up=False函數(shù)來控制何時(shí)在應(yīng)用程序中需要此預(yù)熱時(shí)間(否則您會(huì)感到困惑,為什么代碼需要花很長(zhǎng)時(shí)間才能啟動(dòng))。

測(cè)試頁打印

現(xiàn)在就可以打印了!

嘗試使用warm_up功能打印完整的測(cè)試頁:

下載:文件

復(fù)制代碼

test_page printer.test_page()

您應(yīng)該看到打印機(jī)測(cè)試頁已打印出來。

您可以使用printer.test_page()功能將紙張向前推進(jìn)多行,嘗試進(jìn)紙2行以留出一些空間:

下載:文件

復(fù)制代碼

feed printer.feed(2)

現(xiàn)在使用printer.feed(2)功能打印一小段文本,并輸入幾行以將其移出打印機(jī)以進(jìn)行讀?。?/p>

下載:文件

復(fù)制代碼

print printer.print(‘Hello from CircuitPython!’)

printer.feed(2)

打印機(jī)字體

您可以使用一些屬性來調(diào)整文本的打印方式。可以將每個(gè)參數(shù)設(shè)置為printer.print(‘Hello from CircuitPython!’)

printer.feed(2)值以啟用,或?qū)rue值禁用:

False-打印粗體文本。

bold-打印倒置文本(黑底白字)。

inverse-打印倒置文本(可能不適用于所有版本的打印機(jī))。

li》

upside_down-高度文本加倍。

double_height-寬度文本加倍。

double_width-刪除線文本(再次可能不適用于所有版本的打印機(jī))。

嘗試打開粗體文本并打印一行:

下載:文件

復(fù)制代碼

strike printer.bold = True # Turn on bold

printer.print(‘This is bold text!’)

printer.bold = False # Turn off bold

# Feed lines to make visible:

printer.feed(2)

您可以將一些屬性設(shè)置為特殊值,以進(jìn)一步控制文本打?。?/p>

printer.bold = True # Turn on bold

printer.print(‘This is bold text!’)

printer.bold = False # Turn off bold

# Feed lines to make visible:

printer.feed(2)-此控件控制下劃線打印,可以為無(關(guān)閉),underline或adafruit_thermal_printer.UNDERLINE_THIN。

adafruit_thermal_printer.UNDERLINE_THICK -(文本),它控制文本的大小,可以是size , adafruit_thermal_printer.SIZE_SMALL , 或adafruit_thermal_printer.SIZE_MEDIUM 。 默認(rèn)值很小。

adafruit_thermal_printer.SIZE_LARGE -,它控制打印文本的對(duì)齊方式或位置,可以為justify , adafruit_thermal_printer.JUSTIFY_LEFT ,或adafruit_thermal_printer.JUSTIFY_CENTER 。 默認(rèn)為左對(duì)齊。

例如,打印帶有中心對(duì)齊的帶下劃線的中號(hào)粗文本:

下載:文件

復(fù)制代碼

adafruit_thermal_printer.JUSTIFY_RIGHT printer.underline = adafruit_thermal_printer.UNDERLINE_THICK

printer.size = adafruit_thermal_printer.SIZE_MEDIUM

printer.justify = adafruit_thermal_printer.JUSTIFY_CENTER

printer.print(‘Medium center!’)

# Reset back to normal printing:

printer.underline = None

printer.size = adafruit_thermal_printer.SIZE_SMALL

printer.justify = adafruit_thermal_printer.JUSTIFY_LEFT

# Feed lines to make visible:

printer.feed(2)

打印條形碼

最后,您可以使用printer.underline = adafruit_thermal_printer.UNDERLINE_THICK

printer.size = adafruit_thermal_printer.SIZE_MEDIUM

printer.justify = adafruit_thermal_printer.JUSTIFY_CENTER

printer.print(‘Medium center!’)

# Reset back to normal printing:

printer.underline = None

printer.size = adafruit_thermal_printer.SIZE_SMALL

printer.justify = adafruit_thermal_printer.JUSTIFY_LEFT

# Feed lines to make visible:

printer.feed(2)功能打印條形碼。每個(gè)打印機(jī)都支持不同類型和格式的條形碼,因此請(qǐng)查閱下載部分中有關(guān)每種類型的產(chǎn)品表。但是,以下是打印值為‘123456789012’的UPC A條形碼的示例:

Download:file

復(fù)制代碼

print_barcode printer.print_barcode(‘123456789012’, printer.UPC_A)

printer.feed(2)

printer.print_barcode(‘123456789012’, printer.UPC_A)

printer.feed(2)的第一個(gè)參數(shù)是定義條形碼值的字符串(這取決于條形碼的類型,UPC A碼是13位數(shù)字)。第二個(gè)參數(shù)是條形碼的類型,它又取決于打印機(jī)固件。您可能使用的典型值包括:

print_barcode

printer.UPC_A

printer.UPC_E

printer.EAN13

printer.EAN8

printer.CODE39

printer.ITF

printer.CODABAR

printer.CODE93

檢查紙張

如果您已經(jīng)將電路板的RX引腳連接到打印機(jī)TX (同樣,請(qǐng)務(wù)必確保您的板支持5V串行RX(很多不支持?。D梢允褂胮rinter.CODE128函數(shù)查詢紙張狀態(tài),如果有紙,則該函數(shù)返回has_paper或True:

下載:文件

復(fù)制代碼

False printer.has_paper()

這是在CircuitPython中使用熱敏打印機(jī)的全部?jī)?nèi)容!

用法的完整演示在庫中的thermal_printer_simpletest.py演示中。

如果您正在跑步在Raspberry Pi(或任何計(jì)算機(jī))上打開thermal_printer_simpletest.py,您必須進(jìn)行一些更改。

在Raspberry Pi上,注釋printer.has_paper()行,并取消注釋uart = busio(。..)和import serial行,將uart = serial.Serial(。..)更改為適當(dāng)?shù)拇卸丝凇?/p>

除非您使用分壓器連接打印機(jī)TX線,請(qǐng)確保注釋掉紙質(zhì)檢查代碼:

下載:文件

復(fù)制代碼

/dev/ttyUSB0 # Check if the printer has paper. This only works if the RX line is connected

# on your board (but BE CAREFUL as mentioned above this RX line is 5V!)

#if printer.has_paper():

# print(‘Printer has paper!’)

#else:

# print(‘Printer might be out of paper, or RX is disconnected!’)

現(xiàn)在,您可以使用以下命令運(yùn)行該程序:

下載:文件

復(fù)制代碼

# Check if the printer has paper. This only works if the RX line is connected

# on your board (but BE CAREFUL as mentioned above this RX line is 5V!)

#if printer.has_paper():

# print(‘Printer has paper!’)

#else:

# print(‘Printer might be out of paper, or RX is disconnected!’) python3 thermal_printer_simpletest.py

下載:Project Zip 或 thermal_printer_simpletest.py | 在Github上查看

復(fù)制代碼

python3 thermal_printer_simpletest.py # Simple demo of printer functionality.

# Author: Tony DiCola

import board

import busio

import adafruit_thermal_printer

# Pick which version thermal printer class to use depending on the version of

# your printer. Hold the button on the printer as it‘s powered on and it will

# print a test page that displays the firmware version, like 2.64, 2.68, etc.

# Use this version in the get_printer_class function below.

ThermalPrinter = adafruit_thermal_printer.get_printer_class(2.69)

# Define RX and TX pins for the board’s serial port connected to the printer.

# Only the TX pin needs to be configued, and note to take care NOT to connect

# the RX pin if your board doesn‘t support 5V inputs. If RX is left unconnected

# the only loss in functionality is checking if the printer has paper--all other

# functions of the printer will work.

RX = board.RX

TX = board.TX

# Create a serial connection for the printer. You must use the same baud rate

# as your printer is configured (print a test page by holding the button

# during power-up and it will show the baud rate)。 Most printers use 19200.

uart = busio.UART(TX, RX, baudrate=19200)

# For a computer, use the pyserial library for uart access.

# import serial

# uart = serial.Serial(“/dev/serial0”, baudrate=19200, timeout=3000)

# Create the printer instance.

printer = ThermalPrinter(uart, auto_warm_up=False)

# Initialize the printer. Note this will take a few seconds for the printer

# to warm up and be ready to accept commands (hence calling it explicitly vs.

# automatically in the initializer with the default auto_warm_up=True)。

printer.warm_up()

# Check if the printer has paper. This only works if the RX line is connected

# on your board (but BE CAREFUL as mentioned above this RX line is 5V?。?/p>

if printer.has_paper():

print(’Printer has paper!‘)

else:

print(’Printer might be out of paper, or RX is disconnected!‘)

# Print a test page:

printer.test_page()

# Move the paper forward two lines:

printer.feed(2)

# Print a line of text:

printer.print(’Hello world!‘)

# Print a bold line of text:

printer.bold = True

printer.print(’Bold hello world!‘)

printer.bold = False

# Print a normal/thin underline line of text:

printer.underline = adafruit_thermal_printer.UNDERLINE_THIN

printer.print(’Thin underline!‘)

# Print a thick underline line of text:

printer.underline = adafruit_thermal_printer.UNDERLINE_THICK

printer.print(’Thick underline!‘)

# Disable underlines.

printer.underline = None

# Print an inverted line.

printer.inverse = True

printer.print(’Inverse hello world!‘)

printer.inverse = False

# Print an upside down line.

printer.upside_down = True

printer.print(’Upside down hello!‘)

printer.upside_down = False

# Print a double height line.

printer.double_height = True

printer.print(’Double height!‘)

printer.double_height = False

# Print a double width line.

printer.double_width = True

printer.print(’Double width!‘)

printer.double_width = False

# Print a strike-through line.

printer.strike = True

printer.print(’Strike-through hello!‘)

printer.strike = False

# Print medium size text.

printer.size = adafruit_thermal_printer.SIZE_MEDIUM

printer.print(’Medium size text!‘)

# Print large size text.

printer.size = adafruit_thermal_printer.SIZE_LARGE

printer.print(’Large size text!‘)

# Back to normal / small size text.

printer.size = adafruit_thermal_printer.SIZE_SMALL

# Print center justified text.

printer.justify = adafruit_thermal_printer.JUSTIFY_CENTER

printer.print(’Center justified!‘)

# Print right justified text.

printer.justify = adafruit_thermal_printer.JUSTIFY_RIGHT

printer.print(’Right justified!‘)

# Back to left justified / normal text.

printer.justify = adafruit_thermal_printer.JUSTIFY_LEFT

# Print a UPC barcode.

printer.print(’UPCA barcode:‘)

printer.print_barcode(’123456789012‘, printer.UPC_A)

# Feed a few lines to see everything.

printer.feed(2)

下載

用于Arduino的Adafruit_Thermal庫。

LCD助手— Windows的可選位圖轉(zhuǎn)換實(shí)用程序。

處理語言-Mac或Linux(以及可選的Windows)的位圖轉(zhuǎn)換所需的語言。下載版本1.5.1,而不是2.0 beta。

熱敏打印機(jī)用戶手冊(cè)。

舊版本的熱敏打印機(jī)用戶手冊(cè)。

熱敏打印機(jī)產(chǎn)品表。

固件更改器

如果要冒險(xiǎn),可以使用制造商提供的此工具還原/更改固件。我們還沒有嘗試過。完全不支持它,您可能會(huì)損壞打印機(jī)。如果由于固件更改而停止運(yùn)行,我們將不予更換!

update_firmware.zip

問題排查!

我無法正常工作!

首先要嘗試的是開機(jī)測(cè)試。為此,您不需要使用arduino。

確保紙張正確插入進(jìn)紙架中,紙張應(yīng)該上下進(jìn)紙,以使紙張穿過插槽而不會(huì)彎曲

按住按鈕,然后插入打印機(jī)電源。它應(yīng)該打印出測(cè)試頁

綠色LED不會(huì)一直亮著,它會(huì)偶爾閃爍一次,這是正常的。

我是

請(qǐng)確保您擁有一個(gè)可以提供所需電流的良好電源。如果嘗試以5V電壓運(yùn)行,則即使在打印過程中電流需求達(dá)到峰值,您的電源也必須能夠保持恒定的5V電壓。如果您的打印機(jī)正在嘗試打印但又出現(xiàn)故障,那么您的電源可能會(huì)跌至5V以下。

如果可能,請(qǐng)嘗試使用更高電壓的電源。在9V電壓下,您應(yīng)該可以擺脫1A電流。

我很難獲得打印輸出

確保紙張正確插入進(jìn)紙架中,紙張應(yīng)向下或向上進(jìn)紙,以使紙張穿過插槽而不會(huì)彎曲

紙卷在托架中沒有“卡住”的感覺,應(yīng)該可以輕松旋轉(zhuǎn)!

我的Arduino草圖曾經(jīng)可以使用,但是現(xiàn)在無法編譯!

已進(jìn)行一些更改以支持更廣泛的版本系列的Arduino樣板。較舊的代碼將需要更新。

舊語法:

Adafruit_Thermal打印機(jī)(RX_PIN,TX_PIN);

新語法:聲明一個(gè)SoftwareSerial對(duì)象,并將其地址傳遞給Adafruit_Thermal構(gòu)造函數(shù),如下所示:

SoftwareSerial mySerial(RX_PIN,TX_PIN);

Adafruit_Thermal打印機(jī)(&mySerial);

然后在setup()函數(shù)中:

mySerial.begin(19200);

printer.begin();

我的草圖已編譯,但輸出為

打印機(jī)的功能和行為在各種固件版本中都發(fā)生了變化

首先,檢查Adafruit_Thermal.h中的PRINTER_FIRMWARE值,確保它與打印機(jī)測(cè)試頁底部的值匹配。 e(在接通電源以打印測(cè)試頁時(shí),按住進(jìn)紙按鈕)。

某些功能在各個(gè)版本中的行為略有不同……條形碼,換行等,如果您以前使用的是較舊的庫或較舊的打印機(jī),您可能需要調(diào)整代碼以使用當(dāng)前設(shè)置生成所需的格式。

USB打印機(jī)未顯示為

打印機(jī)可能處于不同的模式。要檢查和更改當(dāng)前的USB模式,請(qǐng)執(zhí)行以下操作:

類似于自檢-在應(yīng)用 BUT KEEP HOLDING IT 時(shí)按住FEED按鈕(請(qǐng)參見下文) 。

您應(yīng)該獲得額外的輸出,告訴您當(dāng)前的USB模式。

如果未輸入COM,則再次按住FEED按鈕2秒鐘即可更改USB模式。

它應(yīng)打印新的USB模式,然后然后退出。

完成。

黑客!

看看那些巨大的,銳利的圖像打?。∧胍恍﹩??

以下內(nèi)容……

是無證件打印機(jī)功能,不能保證正常工作。

可能需要修改您的打印機(jī)-一項(xiàng)避免保修的操作!繼續(xù),后果自負(fù)。

如果符合以下條件的 全部 ,則應(yīng)僅嘗試此操作:

首先確認(rèn)打印機(jī)在通過常規(guī)程序進(jìn)行操作時(shí)工作正常。

具有真正的性能瓶頸,首先不能通過調(diào)整打印機(jī)的時(shí)間和熱量設(shè)置來充分解決。

舒服的打開東西和焊接。

修改后的打印機(jī)是不符合退款或交換條件。

這些打印機(jī)的串行接收緩沖區(qū)有限。將位推入打印機(jī)的速度超過了其物理加熱點(diǎn)和送紙的速度,并且您會(huì)遇到“溢出”的情況-位圖圖像變得亂碼,可能會(huì)跳過文本和格式化命令。

熱敏打印機(jī)庫試圖將數(shù)據(jù)以適當(dāng)?shù)乃俾收{(diào)整到打印機(jī)。太快,就會(huì)發(fā)生溢出。太慢了,會(huì)浪費(fèi)您的時(shí)間;打印機(jī)無法以峰值吞吐量運(yùn)行。這是一個(gè)不完善的過程……盡管我們使用非常保守的時(shí)序估計(jì),但無法預(yù)測(cè)通過打印機(jī)的實(shí)際速度……有時(shí)會(huì)仍然發(fā)生溢出。

硬件握手是打印機(jī)或其他設(shè)備可以向微控制器報(bào)告已準(zhǔn)備好接收更多數(shù)據(jù)的一種方法,實(shí)際上消除了緩沖區(qū)溢出(同時(shí)以峰值吞吐量運(yùn)行)……僅在物理上絕對(duì)必要時(shí)才停止進(jìn)紙。最佳性能。

這些熱敏打印機(jī)中的某些品種似乎支持硬件握手(例如,固件v2.64、2.68)。數(shù)據(jù)表中幾乎沒有提到這一點(diǎn),實(shí)際上在打印機(jī)的外部甚至沒有物理連接。請(qǐng)稍作手術(shù)……

“ Tiny”和“ Nano”打印機(jī)(加上“ Printer Guts”)的DTR引腳裸露-無需修改必要!向下滾動(dòng)到“代碼更改”部分以繼續(xù)。

所需的零件和工具

小型梅花槽螺絲刀

鉗子

烙鐵及相關(guān)用具

一點(diǎn)線…但理想的是母跳線

過程

拔下所有電纜,將打印機(jī)翻轉(zhuǎn)過來,并卸下兩顆菲利普斯小螺釘。

取下背板,然后卸下將電路板固定到位的兩顆(有時(shí)是四顆)十字螺絲。

這些螺釘a比保留的小一些……不要混淆它們!

請(qǐng)小心,以免松開或拔下連接器,將電路板翻轉(zhuǎn)過來,尋找未打孔的帶有“ DTR”標(biāo)簽的孔。

如果您愿意的話,這里還有一些其他有趣的焊接點(diǎn)。 “ HV”是電源的原始5–9伏特。右側(cè)是一個(gè)3.3V引腳,盡管我不知道可用電流??梢韵氲降氖?,可以減少這些電纜的數(shù)量,從而減少項(xiàng)目中的總體布線……甚至可以在內(nèi)部安裝一個(gè)微型微控制器!

從母跳線上剪下一端,然后剝皮并鍍錫。

此會(huì)從打印機(jī)中伸出來……因此,如果您不使用連接器,則 female 跳線可以防止意外接觸物品。如果您只有普通電線,那很好,請(qǐng)注意不要讓裸露的晃來晃去。

將導(dǎo)線焊接到DTR焊盤。頂部,底部無所謂。..正好靠在串行連接插頭上,因此使用最適合您的任何路徑,都有足夠的空間來沿任一方向布線。

助聽器可能會(huì)注意到,從技術(shù)上講,這不是DTR引腳,而是CTS。這在打印機(jī)制造商中已經(jīng)存在很久了……顯然,誤稱是幾十年前的事,但一直困擾著

在后面板上,串行和電源插座之間有一個(gè)小的金屬“手指”。可以使用鉗子將其彎曲以向DTR導(dǎo)線提供出口路徑。

將控制板重新擰緊到位(檢查兩條電纜是否都未松開),在兩個(gè)插座之間布線DTR導(dǎo)線,然后將其擰緊。/p》

已完成硬件!

然后可以重新連接電源和串行插座,然后像以前一樣進(jìn)行布線。

使用跳線將DTR連接到任何可用的Arduino引腳。在我們的示例中,我們將使用數(shù)字引腳4。

打印機(jī)電子設(shè)備的工作電壓為3.3V,因此,對(duì)于3.3V板(Arduino Due等),無需進(jìn)行電平轉(zhuǎn)換…可以安全地直接連接。

代碼更改

只需一行。.. Adafruit_Thermal構(gòu)造函數(shù)。..需要更改。它可以接受可選參數(shù),即用于DTR的引腳號(hào):

下載:文件

復(fù)制代碼

Adafruit_Thermal printer(&mySerial, 4); Adafruit_Thermal printer(&mySerial, 4);

這與硬件串行端口(例如Arduino Mega或Due)同樣有效:

下載:文件

復(fù)制代碼

Adafruit_Thermal printer(&Serial1, 4); Adafruit_Thermal printer(&Serial1, 4);

不需要其他更改。嘗試使用其中一個(gè)示例草圖進(jìn)行嘗試……您會(huì)發(fā)現(xiàn)打印機(jī)突然很多更快!那是因?yàn)椴辉偈褂密浖烷T……打印機(jī)不斷向微控制器報(bào)告其實(shí)際的“就緒”狀態(tài)。

打印巨大圖像

printBitmap()函數(shù)可以從開放流輸出圖像或?qū)⑵浯鎯?chǔ)在PROGMEM(閃存)中……如“打印位圖”頁面上所述。

盡管Arduino Mega具有高達(dá)256K的閃存空間,但AVR微控制器的局限性在于單個(gè)陣列不能超過32K……大約是384x680像素的位圖圖像。如果您嘗試在代碼中嵌入較大的圖像,則編譯器將報(bào)告錯(cuò)誤。

一種解決方法可能是將很長(zhǎng)的圖像分解為多個(gè)較小的圖像,并在不使用feed()的情況下連續(xù)打印出來

另一種方法是使用非AVR Arduino兼容板,例如32位Arduino Due。大規(guī)模陣列沒有問題。上面的克萊斯勒大廈圖片為384x1132像素!

其他要知道的事情

只要總體點(diǎn)密度相當(dāng)?shù)停ㄈ绲陀?0%),這種打印機(jī)最適合使用淺色線條藝術(shù)以及有時(shí)抖動(dòng)的攝影圖像。較大的實(shí)心填充區(qū)域顯示出奇怪的條紋痕跡……這不是磁帶庫或打印機(jī)固件的錯(cuò)誤,而只是收據(jù)打印機(jī)操作方式的副作用,即它們一次只能加熱這么多的點(diǎn)并且必須拉動(dòng)shenanigans不能做到這一點(diǎn),否則它們就會(huì)卡住。

下面是一些精美的商業(yè)票據(jù)打印機(jī)的示例。

在第一個(gè)通知中,“純黑色”區(qū)域并不是真正的“純黑色”……仔細(xì)檢查它,您會(huì)看到它密密麻麻地抖動(dòng)了,但沒有100%被填充。

第二個(gè)確實(shí)具有實(shí)心填充,但限制了總面積。在任何給定行上,僅設(shè)置了這么多像素。

如果您嘗試打印“密集”圖像,則卡紙(圖像被垂直壓扁),將較低的濃度值傳遞給printer.begin()。默認(rèn)值為120。例如:

下載:文件

復(fù)制代碼

printer.begin(80); printer.begin(80);

DTR支持不是萬能的。 偶爾還會(huì)出現(xiàn)毛刺…有時(shí)會(huì)溢出,有時(shí)會(huì)出現(xiàn)串行數(shù)據(jù)“成幀錯(cuò)誤”。但總體而言,它似乎相當(dāng)可靠且略微光滑!
責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    8385

    瀏覽量

    164643
  • 打印機(jī)
    +關(guān)注

    關(guān)注

    10

    文章

    835

    瀏覽量

    48752
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    龍芯2P0500打印機(jī)斬獲多個(gè)重量級(jí)訂單

    近日,基于龍芯打印芯片的打印機(jī)主控板卡亮相中國(guó)國(guó)家博物館,展示了我國(guó)在打印機(jī)核心技術(shù)領(lǐng)域的新突破。打印機(jī)主控板卡是打印機(jī)最核心的部件之一,能
    的頭像 發(fā)表于 02-03 15:07 ?740次閱讀

    deepin/UOS系統(tǒng)打印機(jī)配置指南

    無論是家庭使用還是辦公環(huán)境,打印機(jī)都是我們?nèi)粘9ぷ骱蛯W(xué)習(xí)中不可或缺的設(shè)備。在 deepin 或 UOS 系統(tǒng)中,打印機(jī)配置可以非常簡(jiǎn)單,大多數(shù)情況下只需幾步即可完成。
    的頭像 發(fā)表于 01-28 14:19 ?644次閱讀

    一臺(tái)熱敏打印機(jī),能有多少種可能?來看看唯創(chuàng)知音AI文生圖打印機(jī)的端云一體化突破!

    一臺(tái)熱敏打印機(jī),能有多少種可能?過去,它只是靜靜地等待著紙質(zhì)文件、照片或者票據(jù)的輸出指令。而今天,當(dāng)你對(duì)著它說出“幫我畫一只在太空漫步的貓”,幾秒鐘后,一幅充滿想象力的畫作便躍然紙上。是不是很驚喜
    的頭像 發(fā)表于 01-16 14:50 ?557次閱讀
    一臺(tái)<b class='flag-5'>熱敏</b><b class='flag-5'>打印機(jī)</b>,能有多少種可能?來看看唯創(chuàng)知音AI文生圖<b class='flag-5'>打印機(jī)</b>的端云一體化突破!

    tsc mh641系列工業(yè)打印機(jī):高清打印,精準(zhǔn)高效

    作為專為工業(yè)場(chǎng)景設(shè)計(jì)的打印設(shè)備,tscmh641打印機(jī)在功能與技術(shù)上充分貼合高效生產(chǎn)需求。它具備高清條碼打印能力,搭載先進(jìn)的熱敏/熱轉(zhuǎn)印雙模式打印
    的頭像 發(fā)表于 11-26 16:13 ?622次閱讀
    tsc mh641系列工業(yè)<b class='flag-5'>打印機(jī)</b>:高清<b class='flag-5'>打印</b>,精準(zhǔn)高效

    物聯(lián)網(wǎng)倉庫發(fā)貨必備設(shè)備有哪些?6 類核心設(shè)備匯總(附選型建議)

    電商倉庫想要發(fā)貨快又準(zhǔn),離不開專業(yè)設(shè)備支持。本文從倉庫負(fù)責(zé)人的角度,總結(jié)了倉庫必備的PDA掃碼手持機(jī)、熱敏打印機(jī)、包裝設(shè)備、揀貨小車、WMS系統(tǒng)等核心工具,結(jié)合實(shí)際應(yīng)用經(jīng)驗(yàn),幫助企業(yè)主高效選型,讓倉庫發(fā)貨更省時(shí)省力,避免錯(cuò)單漏單。
    的頭像 發(fā)表于 08-28 17:04 ?979次閱讀
    物聯(lián)網(wǎng)倉庫發(fā)貨必備設(shè)備有哪些?6 類核心設(shè)備匯總(附選型建議)

    RFID標(biāo)簽打印機(jī)應(yīng)用,如何選擇RFID標(biāo)簽打印機(jī)

    RFID標(biāo)簽打印機(jī)憑借其非接觸式數(shù)據(jù)寫入、可重復(fù)擦寫的特性,已成為現(xiàn)代企業(yè)實(shí)現(xiàn)物資智能化管理的核心設(shè)備。它能將產(chǎn)品信息加密寫入電子標(biāo)簽,配合讀寫器實(shí)現(xiàn)遠(yuǎn)距離批量識(shí)別,在效率與數(shù)據(jù)安全性上遠(yuǎn)超傳統(tǒng)打印
    的頭像 發(fā)表于 08-06 16:04 ?857次閱讀
    RFID標(biāo)簽<b class='flag-5'>打印機(jī)</b>應(yīng)用,如何選擇RFID標(biāo)簽<b class='flag-5'>打印機(jī)</b>

    打印機(jī)出口要做哪些認(rèn)證

    打印機(jī)出口要做哪些認(rèn)證?——按出口地區(qū)全面解析(含歐盟、美國(guó)、東南亞)一、歐盟市場(chǎng)(如德國(guó)、法國(guó))CE認(rèn)證(強(qiáng)制)適用指令:LVD指令:電氣安全(EN62368-1標(biāo)準(zhǔn))EMC指令:電磁兼容
    的頭像 發(fā)表于 07-25 17:43 ?1300次閱讀
    <b class='flag-5'>打印機(jī)</b>出口要做哪些認(rèn)證

    哪些場(chǎng)景要使用到RFID標(biāo)簽打印機(jī)?RFID標(biāo)簽打印機(jī)一般多少錢?

    RFID標(biāo)簽打印機(jī)是一種將射頻識(shí)別技術(shù)與打印技術(shù)相結(jié)合的設(shè)備,可實(shí)現(xiàn)對(duì)RFID標(biāo)簽的信息錄入與表面信息打印,廣泛應(yīng)用于多個(gè)領(lǐng)域。以下是一些常見的應(yīng)用場(chǎng)景:1、物流管理:在貨物的倉儲(chǔ)、運(yùn)輸和分銷
    的頭像 發(fā)表于 07-15 15:44 ?1039次閱讀
    哪些場(chǎng)景要使用到RFID標(biāo)簽<b class='flag-5'>打印機(jī)</b>?RFID標(biāo)簽<b class='flag-5'>打印機(jī)</b>一般多少錢?

    基于樹莓派的工業(yè)級(jí) 3D 打印機(jī)!

    基于計(jì)算模4的3D打印機(jī)功能強(qiáng)大、可靠且易于使用!Formlabs采用樹莓派計(jì)算模塊4為其最新款3D打印機(jī)Form4提供動(dòng)力,提升了其旗艦系列打印機(jī)的速度、質(zhì)量和成功率,為工業(yè)和商業(yè)客戶提供了一個(gè)
    的頭像 發(fā)表于 06-29 08:22 ?1167次閱讀
    基于樹莓派的工業(yè)級(jí) 3D <b class='flag-5'>打印機(jī)</b>!

    霍爾芯片在打印機(jī)中的應(yīng)用

    在數(shù)字化時(shí)代,打印機(jī)似乎逐漸淡出了許多人的日常生活。然而,對(duì)于學(xué)生、職場(chǎng)人士、家庭用戶以及自由職業(yè)者來說,打印機(jī)仍然是一個(gè)不可或缺的工具。那么霍爾芯片在打印機(jī)當(dāng)中起到什么作用呢?
    的頭像 發(fā)表于 06-09 17:26 ?1058次閱讀

    得力推出龍芯系列打印機(jī)新品

    近日,2025年得力龍芯系列打印機(jī)新品發(fā)布會(huì)暨簽約會(huì)在京舉行,正式發(fā)布基于龍芯2P0500開發(fā)的31系列自主安全打印機(jī)及善印系列打印機(jī),包括黑白激光打印機(jī)、黑白激光多功能一體機(jī)等多個(gè)機(jī)
    的頭像 發(fā)表于 05-22 11:14 ?1397次閱讀

    如何在熱敏打印機(jī)中實(shí)現(xiàn)圖片的灰階打印效果嗎?

    誰知道如何在熱敏打印機(jī)中實(shí)現(xiàn)圖片的灰階打印效果。 現(xiàn)在基本上文字打印,圖片打印功能都已開發(fā)結(jié)束,圖片打印
    發(fā)表于 04-03 08:40