- A nyomtató specifikációi és csatlakozásai
- Előfeltételek
- Áramkör diagram és magyarázat
- Kód Magyarázat
A hőnyomtatót gyakran nyugtanyomtatónak nevezik. Széles körben használják éttermekben, ATM-ben, üzletekben és sok más helyen, ahol nyugtákra vagy számlákra van szükség. Költséghatékony megoldás, és nagyon praktikus a felhasználó és a fejlesztő oldaláról egyaránt. A hőnyomtató speciális nyomtatási eljárást alkalmaz, amely termokróm vagy hőpapírt használ a nyomtatáshoz. A nyomtatófejet olyan hőmérsékleten melegítik, hogy amikor a hőpapír áthalad a nyomtatófejtől, a papírbevonat fekete színűvé válik azokon a területeken, ahol a nyomtatófej melegszik.
Ebben az oktatóanyagban összekapcsoljuk a CSN A1 termikus nyomtatót a széles körben használt PIC16F877A PIC mikrovezérlővel. Ebben a projektben itt egy hőnyomtató van csatlakoztatva a PIC16F877A-hoz, és tapintható kapcsolót használnak a nyomtatás megkezdéséhez. Értesítési LED-et is használnak a nyomtatás állapotának értesítésére. Csak akkor fog világítani, amikor a nyomtatási tevékenység folyik.
A nyomtató specifikációi és csatlakozásai
A Cashino CSN A1 hőnyomtatóját használjuk, amely könnyen elérhető, és az ára sem túl magas.
Ha meglátjuk a specifikációt a hivatalos honlapján, meglátunk egy táblázatot, amely a részletes specifikációkat tartalmazza-
A nyomtató hátoldalán a következő csatlakozást látjuk:
A TTL csatlakozó biztosítja az Rx Tx kapcsolatot, hogy kommunikáljon a mikrovezérlő egységgel. Az RS232 protokollt használhatjuk a nyomtatóval való kommunikációhoz is. A tápcsatlakozó a nyomtató áramellátására szolgál, a gomb pedig a nyomtató tesztelésére szolgál. A nyomtató áramellátása alatt, ha megnyomjuk az önteszt gombot, a nyomtató kinyomtat egy lapot, ahol specifikációk és mintasorok kerülnek kinyomtatásra. Itt van az öntesztlap
Mint láthatjuk, a nyomtató 9600 baud sebességet használ a mikrovezérlő egységgel való kommunikációhoz. A nyomtató képes ASCII karaktereket nyomtatni. A kommunikáció nagyon egyszerű, bármit kinyomtathatunk egyszerűen az UART használatával, karakterlánc vagy karakter továbbításával.
A nyomtatónak 5V 2A tápegységre van szüksége a nyomtatófej fűtéséhez. Ez a hőnyomtató hátránya, mivel a nyomtatási folyamat során hatalmas terhelési áramot vesz fel.
Előfeltételek
A következő projekt elkészítéséhez a következő dolgokra van szükségünk: -
- Kenyérlemez
- Csatlakoztassa a vezetékeket
- PIC16F877A
- 2db 33pF kerámia tárcsás kondenzátor
- 680R ellenállás
- Bármilyen színű led
- Tapintható kapcsoló
- 2db 4.7k ellenállás
- Hőnyomtató CSN A1 papírtekerccsel
- 5V 2A névleges tápegység.
Áramkör diagram és magyarázat
Az alábbiakban bemutatjuk a nyomtató PIC mikrokontrollerrel történő vezérlésének vázlatát:
Itt a PIC16F877A- t használjuk mikrokontroller egységként. Egy 4,7k-os ellenállást használnak az MCLR tű csatlakoztatásához az 5V-os tápegységhez. Csatlakoztattunk egy 20 MHz-es külső oszcillátort 33pF kondenzátorokkal az órajelhez. Az RB2 porton egy értesítési LED van csatlakoztatva 680R led áramkorlátozó ellenállással. A tapintható kapcsoló az RB0 tűn keresztül van csatlakoztatva, amikor a gombot megnyomja, ez biztosítja a Logic High értéket, különben a csap a Logic Low- t kapja a 4,7 k-os ellenállástól.
A nyomtató CSN A1 a keresztkonfigurációval van összekötve, a mikrokontroller továbbító tűje a nyomtató fogadó tűjével van összekötve. A nyomtató az 5 V és a GND tápegységhez is csatlakozott.
Az áramkört kenyérlapon építettük és teszteltük.
Kód Magyarázat
A kód meglehetősen egyszerű megérteni. A termikus nyomtató és a PIC16F877A összekapcsolásának teljes kódja a cikk végén található. Mint mindig, először is be kell állítanunk a konfigurációs biteket a PIC mikrovezérlőben.
// PIC16F877A konfigurációs bitbeállítások // 'C' forrássor konfigurációs utasításai // CONFIG #pragma config FOSC = HS // oszcillátor kiválasztó bitjei (HS oszcillátor) #pragma config WDTE = KI // Watchdog időzítő bit engedélyezése (WDT letiltva) # pragma config PWRTE = OFF // Bekapcsolási időzítő bit engedélyezése (PWRT letiltva) # pragma config BOREN = BE // Brown-out Reset bit engedélyezése (BOR engedélyezve) #pragma config LVP = OFF // Alacsony feszültség (egyszeres táp)) Áramkörön belüli soros programozás engedélyezési bitje (az RB3 / PGM csapnak PGM funkciója van; alacsony feszültségű programozás engedélyezve) #pragma config CPD = OFF // Data EEPROM memóriakód védelmi bit (Data EEPROM kód védelem ki) #pragma config WRT = KI // Flash programmemória írása Bitek engedélyezése (Írásvédelem kikapcsolva; az összes programmemóriát írhatja az EECON vezérlés )
Ezt követően meghatároztuk a rendszer hardverrel kapcsolatos makrókat, és az eusart1.h fejlécfájlt használtuk az eusart kapcsolatos hardver vezérléshez. Az UART 9600 átviteli sebességgel van konfigurálva a fejlécfájlban.
#include
A fő funkcióban először a „gombnyomást” ellenőriztük, és a kapcsoló visszavonási taktikáját is alkalmaztuk a kapcsoló hibáinak kiküszöbölésére. Létrehoztunk egy if utasítást a „gomb megnyomásával” feltételhez. Először a led világítani fog, és az UART kinyomtatja a húrokat. Egyéni sorok létrehozhatók az if utasítás belsejében, és karakterláncként nyomtathatók ki.
void main (void) {rendszer_init (); while (1) { if (printer_sw == 1) {// kapcsolót lenyomjuk __késleltetés_ms (50); // visszavonási késleltetés, ha (printer_sw == 1) {// kapcsoló még mindig lenyomva van értesítés_led = 1; put_string ("Hello! \ n \ r"); // Nyomtatás hőnyomtatóra __delay_ms (50); put_string ("Termikus nyomtató bemutatója. \ n \ r"); __késleltetési_ms (50); put_string ("Circuit Digest. \ n \ r"); __késleltetési_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("Köszönöm"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); értesítés_led = 0; } } } }
A teljes kód és a működő videó az alábbiakban található.