Lämpötulostinta kutsutaan usein kuittitulostimeksi. Sitä käytetään laajalti ravintoloissa, pankkiautomaateissa, kaupoissa ja monissa muissa paikoissa, joissa vaaditaan kuitit tai laskut. Se on kustannustehokas ratkaisu ja erittäin kätevä käyttää sekä käyttäjän että kehittäjän puolelta. Lämpökirjoittimessa käytetään erityistä painoprosessia, joka käyttää painamiseen lämpökromaattista paperia tai lämpöpaperia. Tulostuspää kuumennetaan tietyssä lämpötilassa, että kun lämpöpaperi kulkee tulostuspäästä, paperipäällyste muuttuu mustaksi alueilla, joilla tulostuspää kuumennetaan.
Tässä opetusohjelmassa yhdistämme CSN A1 -tulostimen ja yleisesti käytetyn PIC-mikrokontrollerin PIC16F877A. Tässä tässä projektissa lämpötulostin on kytketty PIC16F877A: n yli ja kosketuskytkintä käytetään tulostuksen aloittamiseen. Ilmoitus-LEDiä käytetään myös tulostuksen tilan ilmoittamiseen. Se hehkuu vain, kun tulostustoiminta on käynnissä.
Tulostimen tekniset tiedot ja liitännät
Käytämme Cashinon CSN A1 -lämpötulostinta, joka on saatavana helposti ja hinta ei ole liian korkea.
Jos näemme eritelmän sen virallisella verkkosivustolla, näemme taulukon, joka sisältää yksityiskohtaiset eritelmät -
Tulostimen takaosassa on seuraava liitäntä-
TTL-liitin tarjoaa Rx Tx -yhteyden kommunikoimaan mikro-ohjainyksikön kanssa. Voimme myös käyttää RS232-protokollaa yhteydenpitoon tulostimen kanssa. Virtaliitin on tarkoitettu kirjoittimen virtalähteeseen ja painiketta käytetään tulostimen testaamiseen. Kun painamme itsetestipainiketta, tulostimen virran ollessa käynnissä tulostin tulostaa arkin, jossa tekniset tiedot ja esimerkkirivit tulostetaan. Tässä on itsetestauslomake-
Kuten näemme, tulostin käyttää 9600 baudinopeutta yhteydenpitoon mikro-ohjainyksikön kanssa. Tulostin voi tulostaa ASCII-merkkejä. Viestintä on erittäin helppoa, voimme tulostaa mitä tahansa yksinkertaisesti käyttämällä UART: ta, lähettämällä merkkijonoa tai merkkiä.
Tulostin tarvitsee 5 V 2 A: n virtalähteen tulostuspään lämmittämiseen. Tämä on lämpötulostimen haittapuoli, koska se vie valtavan kuormavirran tulostuksen aikana.
Edellytykset
Seuraavan projektin tekemiseksi tarvitsemme seuraavia asioita: -
- Leipälauta
- Kiinnitä johdot
- PIC16F877A
- 2kpl 33pF keraaminen levykondensaattori
- 680R-vastus
- Mikä tahansa väri johti
- Kosketuskytkin
- 2kpl 4.7k vastukset
- Lämpötulostin CSN A1 paperirullalla
- 5V 2A mitoitettu virtalähde.
Piirikaavio ja selitys
Kaavio tulostimen ohjaamiseksi PIC-mikrokontrollerilla on annettu alla:
Tässä käytämme PIC16F877A: ta mikrokontrolleriyksikkönä. 4,7 k: n vastusta käytetään MCLR-nastan liittämiseen 5 V: n virtalähteeseen. Olemme myös liittäneet ulkoisen 20 MHz: n oskillaattorin 33pF-kondensaattoreilla kellosignaalia varten. Ilmoitus-LED on kytketty RB2-portin yli 680R-led-virtaa rajoittavalla vastuksella. Tactile kytkin on kytketty yli RB0 tappi, kun painiketta painetaan se antaa Logic korkea muuten tappi saa Logic alhainen , että 4.7k vastus.
Tulostimen CSN A1 on kytketty ristikokoonpanolla, mikrokontrollerin lähetystappi on kytketty tulostimen vastaanottotappiin. Tulostin liitettiin myös 5 V: n ja GND-virtalähteeseen.
Me rakennettu piiri leipälauta ja testattu sen.
Koodin selitys
Koodi on melko helppo ymmärtää. Täydellinen koodi lämpötulostimen ja PIC16F877A: n liittämiseksi on artikkelin lopussa. Kuten aina, meidän on ensin asetettava konfigurointibitit PIC-mikrokontrollerissa.
// PIC16F877A-määritysbittiasetukset // C-lähdekoodin määrityslausekkeet // CONFIG #pragma config FOSC = HS // Oskillaattorin valintabitit (HS-oskillaattori) #pragma config WDTE = POIS // Watchdog Timer Ota bitti käyttöön (WDT pois käytöstä) # pragma-konfiguraatio PWRTE = POIS // Käynnistysajastin Ota bitti käyttöön (PWRT pois käytöstä) #pragma-konfiguraatio BOREN = PÄÄLLÄ // Ruskea-out-nollaus Ota bitti käyttöön (BOR käytössä) #pragma-konfiguraatio LVP = POIS // Pienjännite (kertalähde)) Piirin sisäinen sarjaohjelmointi Aktivoi bitti (RB3 / PGM-nastalla on PGM-toiminto; matalajännitteinen ohjelmointi käytössä) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = POIS // Flash-ohjelmamuistin kirjoitus Salli bitit (Kirjoitussuojaus pois; kaikki ohjelmamuistit voidaan kirjoittaa EECON-ohjauksella) #pragma config CP = OFF // Flash-ohjelman muistikoodisuojabitti (koodisuojaus pois päältä)
Sen jälkeen määritimme järjestelmän laitteistoon liittyvät makrot ja käytimme eusart1.h-otsikkotiedostoa eusart-laitteiston hallintaan. UART on määritetty 9600 tiedonsiirtonopeudella otsikkotiedoston sisällä.
#sisältää
Vuonna tärkein toiminto, ensin tarkistanut 'napin painalluksella' ja käytti myös kytkin debounce taktiikka poistaa kytkimen virheitä. Olemme luoneet if- lausekkeen 'painettu' tilalle. Ensin led hehkuu ja UART tulostaa merkkijonot. Mukautetut rivit voidaan luoda if-käskyn sisällä ja ne voidaan tulostaa merkkijonoina.
void main (void) { system_init (); while (1) { if (printer_sw == 1) {// -kytkintä painetaan __delay_ms (50); // debounce viive , jos (printer_sw == 1) {// kytkin on edelleen painetaan notification_led = 1; put_string ("Hei! \ n \ r"); // Tulosta lämpökirjoittimelle __delay_ms (50); put_string ("Lämpökirjoittimen opetusohjelma. \ n \ r"); __viive_ms (50); put_string ("Piirin yhteenveto. \ n \ r"); __viive_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("Kiitos"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); ilmoitus_led = 0; } } } }
Täydellinen koodi ja toimiva video on annettu alla.