- ప్రింటర్ స్పెసిఫికేషన్ మరియు కనెక్షన్లు
- ముందస్తు అవసరాలు
- సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
- కోడ్ వివరణ
థర్మల్ ప్రింటర్ను తరచుగా రసీదు ప్రింటర్ అని పిలుస్తారు. రెస్టారెంట్లు, ఎటిఎం, షాపులు మరియు రశీదులు లేదా బిల్లు అవసరమయ్యే అనేక ఇతర ప్రదేశాలలో ఇది విస్తృతంగా ఉపయోగించబడుతుంది. ఇది ఖర్చుతో కూడుకున్న పరిష్కారం మరియు యూజర్ వైపు నుండి మరియు డెవలపర్ వైపు నుండి ఉపయోగించడానికి చాలా సులభమైంది. థర్మల్ ప్రింటర్ ప్రత్యేక ప్రింటింగ్ విధానాన్ని ఉపయోగిస్తుంది, ఇది ప్రింటింగ్ కోసం థర్మోక్రోమిక్ పేపర్ లేదా థర్మల్ పేపర్ను ఉపయోగిస్తుంది. ప్రింటర్ హెడ్ ఒక నిర్దిష్ట ఉష్ణోగ్రత వద్ద వేడి చేయబడుతుంది, ప్రింట్ హెడ్ నుండి థర్మల్ పేపర్ వెళుతున్నప్పుడు, ప్రింటర్ హెడ్ వేడిచేసిన ప్రదేశాలలో పేపర్ పూత నల్లగా మారుతుంది.
ఈ ట్యుటోరియల్లో, మేము విస్తృతంగా ఉపయోగించే PIC మైక్రోకంట్రోలర్ PIC16F877A తో థర్మల్ ప్రింటర్ CSN A1 ను ఇంటర్ఫేస్ చేస్తాము. ఇక్కడ ఈ ప్రాజెక్ట్లో, PIC16F877A అంతటా థర్మల్ ప్రింటర్ అనుసంధానించబడి ఉంది మరియు ముద్రణను ప్రారంభించడానికి స్పర్శ స్విచ్ ఉపయోగించబడుతుంది. ముద్రణ స్థితిని తెలియజేయడానికి నోటిఫికేషన్ LED కూడా ఉపయోగించబడుతుంది. ప్రింటింగ్ కార్యాచరణ జరుగుతున్నప్పుడు మాత్రమే ఇది మెరుస్తుంది.
ప్రింటర్ స్పెసిఫికేషన్ మరియు కనెక్షన్లు
మేము క్యాషినో నుండి CSN A1 థర్మల్ ప్రింటర్ను ఉపయోగిస్తున్నాము, ఇది సులభంగా లభిస్తుంది మరియు ధర చాలా ఎక్కువగా లేదు.
మేము దాని అధికారిక వెబ్సైట్లో స్పెసిఫికేషన్ను చూస్తే, వివరణాత్మక స్పెసిఫికేషన్లను అందించే పట్టికను చూస్తాము-
ప్రింటర్ వెనుక వైపు, మేము ఈ క్రింది కనెక్షన్ను చూస్తాము-
TTL కనెక్టర్ మైక్రోకంట్రోలర్ యూనిట్తో కమ్యూనికేట్ చేయడానికి Rx Tx కనెక్షన్ను అందిస్తుంది. ప్రింటర్తో కమ్యూనికేట్ చేయడానికి మేము RS232 ప్రోటోకాల్ను కూడా ఉపయోగించవచ్చు. పవర్ కనెక్టర్ ప్రింటర్ను శక్తివంతం చేయడం కోసం మరియు బటన్ ప్రింటర్ పరీక్ష ప్రయోజనం కోసం ఉపయోగించబడుతుంది. ప్రింటర్ శక్తితో ఉన్నప్పుడు, మేము ప్రింటర్ను స్వీయ-పరీక్ష బటన్ను నొక్కితే, స్పెసిఫికేషన్లు మరియు నమూనా పంక్తులు ముద్రించబడే షీట్ను ప్రింట్ చేస్తుంది. ఇక్కడ స్వీయ పరీక్ష షీట్-
మైక్రోకంట్రోలర్ యూనిట్తో కమ్యూనికేట్ చేయడానికి ప్రింటర్ 9600 బాడ్ రేట్ను ఉపయోగిస్తుందని మనం చూడవచ్చు. ప్రింటర్ ASCII అక్షరాలను ముద్రించగలదు. కమ్యూనికేషన్ చాలా సులభం, మేము UART ఉపయోగించి, స్ట్రింగ్ లేదా అక్షరాన్ని ప్రసారం చేయడం ద్వారా ఏదైనా ప్రింట్ చేయవచ్చు.
ప్రింటర్ హెడ్ను వేడి చేయడానికి ప్రింటర్కు 5 వి 2 ఎ విద్యుత్ సరఫరా అవసరం. థర్మల్ ప్రింటర్ యొక్క లోపం ఇది ప్రింటింగ్ ప్రక్రియలో భారీ లోడ్ కరెంట్ తీసుకుంటుంది.
ముందస్తు అవసరాలు
కింది ప్రాజెక్ట్ చేయడానికి, మాకు ఈ క్రింది విషయాలు అవసరం: -
- బ్రెడ్బోర్డ్
- వైర్లను హుక్ చేయండి
- PIC16F877A
- 2 పిసిలు 33 పిఎఫ్ సిరామిక్ డిస్క్ కెపాసిటర్
- 680 ఆర్ రెసిస్టర్
- ఏదైనా రంగు దారితీసింది
- స్పర్శ స్విచ్
- 2 పిసిలు 4.7 కె రెసిస్టర్లు
- పేపర్ రోల్తో థర్మల్ ప్రింటర్ CSN A1
- 5 వి 2 ఎ రేటెడ్ విద్యుత్ సరఫరా యూనిట్.
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
PIC మైక్రోకంట్రోలర్తో ప్రింటర్ను నియంత్రించడానికి స్కీమాటిక్ క్రింద ఇవ్వబడింది:
ఇక్కడ మేము PIC16F877A ను మైక్రోకంట్రోలర్ యూనిట్గా ఉపయోగిస్తున్నాము. MCLR పిన్ను 5V విద్యుత్ సరఫరాతో అనుసంధానించడానికి 4.7k రెసిస్టర్ ఉపయోగించబడుతుంది. క్లాక్ సిగ్నల్ కోసం 33 పిఎఫ్ కెపాసిటర్లతో 20 మెగాహెర్ట్జ్ బాహ్య ఓసిలేటర్ను కూడా కనెక్ట్ చేసాము. RB2 పోర్టులో 680R లీడ్ కరెంట్ లిమిటింగ్ రెసిస్టర్తో ఒక నోటిఫికేషన్ LED అనుసంధానించబడి ఉంది. స్పర్శ స్విచ్ బటన్ నొక్కినప్పుడు అది అందిస్తుంది RB0 పిన్ అంతటా అనుసంధానించబడిన తర్కశాస్త్రం హై లేకపోతే పిన్ అందుకుంటారు తర్కశాస్త్రం తక్కువ 4.7k నిరోధకం ద్వారా.
ప్రింటర్ CSN A1 క్రాస్ కాన్ఫిగరేషన్ ఉపయోగించి కనెక్ట్ చేయబడింది, మైక్రోకంట్రోలర్ ట్రాన్స్మిట్ పిన్ ప్రింటర్ యొక్క రిసీవ్ పిన్తో అనుసంధానించబడింది. ప్రింటర్ 5V మరియు GND సరఫరాతో కూడా కనెక్ట్ చేయబడింది.
మేము బ్రెడ్బోర్డ్లో సర్క్యూట్ను నిర్మించి పరీక్షించాము.
కోడ్ వివరణ
కోడ్ అర్థం చేసుకోవడానికి చాలా సులభం. PIC16F877A తో థర్మల్ ప్రింటర్ను ఇంటర్ఫేసింగ్ కోసం పూర్తి కోడ్ వ్యాసం చివరలో ఇవ్వబడింది. ఎప్పటిలాగే, మేము మొదట PIC మైక్రోకంట్రోలర్లో కాన్ఫిగరేషన్ బిట్లను సెట్ చేయాలి.
// PIC16F877A ఆకృతీకరణ బిట్ సెట్టింగులు // 'సి' వనరు రేఖ config ప్రకటనలు // config #pragma config FOSC = HS // ఓసిలేటర్ ఎంపిక బిట్స్ (HS ఓసిలేటర్) #pragma config WDTE OFF = // వాచ్డాగ్ టైమర్ ప్రారంభించు బిట్ (WDT డిసేబుల్) # pragma config PWRTE OFF = // పవర్ అప్ టైమర్ బిట్ (PWRT డిసేబుల్) ప్రారంభించు #pragma config బోరెన్ = ON // బ్రౌన్ అవుట్ రీసెట్ బిట్ (బోర్ ఎనేబుల్) ప్రారంభించు #pragma config LVP OFF = // తక్కువ వోల్టేజ్ (సింగిల్-సప్లై) ఇన్-సర్క్యూట్ సీరియల్ ప్రోగ్రామింగ్ ఎనేబుల్ బిట్ (RB3 / PGM పిన్ PGM ఫంక్షన్ను కలిగి ఉంది; తక్కువ-వోల్టేజ్ ప్రోగ్రామింగ్ ప్రారంభించబడింది) # ప్రాగ్మా కాన్ఫిగర్ CPD = OFF // డేటా EEPROM మెమరీ కోడ్ ప్రొటెక్షన్ బిట్ (డేటా EEPROM కోడ్ రక్షణ ఆఫ్) #pragma config WRT = OFF // ఫ్లాష్ ప్రోగ్రామ్ మెమరీ రైట్ బిట్లను ప్రారంభించండి (రక్షణను వ్రాయండి; అన్ని ప్రోగ్రామ్ మెమరీని EECON నియంత్రణ ద్వారా వ్రాయవచ్చు) #pragma config CP = OFF // ఫ్లాష్ ప్రోగ్రామ్ మెమరీ కోడ్ ప్రొటెక్షన్ బిట్ (కోడ్ ప్రొటెక్షన్ ఆఫ్)
ఆ తరువాత, మేము సిస్టమ్ హార్డ్వేర్ సంబంధిత మాక్రోలను నిర్వచించాము మరియు యూసార్ట్ సంబంధిత హార్డ్వేర్ నియంత్రణ కోసం eusart1.h హెడర్ ఫైల్ను ఉపయోగించాము. UART హెడర్ ఫైల్ లోపల 9600 బాడ్ రేటుతో కాన్ఫిగర్ చేయబడింది.
# చేర్చండి
లో ప్రధాన ఫంక్షన్, మేము మొదటి స్విచ్ అవాంతరాలు తొలగించడానికి 'బటన్ ప్రెస్' మరియు కూడా ఉపయోగిస్తారు స్విచ్ debounce వ్యూహాలు వచ్చేసాడు. 'బటన్ ప్రెస్డ్' కండిషన్ కోసం if స్టేట్మెంట్ సృష్టించాము. మొదట దారితీసింది మెరుస్తుంది మరియు UART తీగలను ముద్రిస్తుంది. కస్టమ్ పంక్తులు if స్టేట్మెంట్ లోపల ఉత్పత్తి చేయబడతాయి మరియు స్ట్రింగ్ గా ముద్రించవచ్చు.
void main (void) { system_init (); (1) { if (printer_sw == 1) {// స్విచ్ నొక్కినప్పుడు __delay_ms (50); // debounce ఆలస్యం ఉంటే (printer_sw == 1) {// స్విచ్ ఇప్పటికీ నొక్కినప్పుడు notification_led = 1; put_string ("హలో! \ n \ r"); // థర్మల్ ప్రింటర్కు ముద్రించండి __delay_ms (50); put_string ("థర్మల్ ప్రింటర్ ట్యుటోరియల్. \ n \ r"); __ ఆలస్యం_ఎంఎస్ (50); put_string ("సర్క్యూట్ డైజెస్ట్. \ n \ r"); __ ఆలస్యం_ఎంఎస్ (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("ధన్యవాదాలు"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); notification_led = 0; } } } }
పూర్తి కోడ్ మరియు పని వీడియో క్రింద ఇవ్వబడింది.