थर्मल प्रिंटर को अक्सर रसीद प्रिंटर कहा जाता है। यह व्यापक रूप से रेस्तरां, एटीएम, दुकानों और कई अन्य स्थानों पर उपयोग किया जाता है जहां रसीद या बिल की आवश्यकता होती है। यह एक लागत प्रभावी समाधान है और उपयोगकर्ता की ओर से और साथ ही डेवलपर की ओर से उपयोग करने के लिए बहुत आसान है। एक थर्मल प्रिंटर एक विशेष मुद्रण प्रक्रिया का उपयोग करता है जो मुद्रण के लिए थर्मोक्रोमिक पेपर या थर्मल पेपर का उपयोग करता है। प्रिंटर हेड को एक निश्चित तापमान पर गर्म किया जाता है, जब थर्मल पेपर प्रिंट हेड से गुजरता है, तो पेपर कोटिंग उन क्षेत्रों में काला हो जाता है जहां प्रिंटर हेड गर्म होता है।
इस ट्यूटोरियल में, हम व्यापक रूप से उपयोग किए जाने वाले PIC माइक्रोकंट्रोलर PIC16F877A के साथ एक थर्मल प्रिंटर CSN A1 को इंटरफेस करेंगे । यहां इस परियोजना में, एक थर्मल प्रिंटर PIC16F877A से जुड़ा हुआ है और प्रिंटिंग शुरू करने के लिए एक स्पर्श स्विच का उपयोग किया जाता है। मुद्रण की स्थिति को सूचित करने के लिए एक अधिसूचना एलईडी का भी उपयोग किया जाता है। यह तभी चमकेगा जब मुद्रण गतिविधि चल रही होगी।
प्रिंटर विशिष्टता और कनेक्शन
हम कैशिनो से सीएसएन ए 1 थर्मल प्रिंटर का उपयोग कर रहे हैं, जो आसानी से उपलब्ध है और कीमत बहुत अधिक नहीं है।
यदि हम इसकी आधिकारिक वेबसाइट पर विनिर्देश देखते हैं, तो हम एक तालिका देखेंगे जो विस्तृत विवरण प्रदान करती है-
प्रिंटर के पीछे की ओर, हम निम्नलिखित कनेक्शन देखेंगे-
TTL कनेक्टर माइक्रोकंट्रोलर यूनिट के साथ संचार करने के लिए Rx Tx कनेक्शन प्रदान करता है । हम प्रिंटर के साथ संचार करने के लिए RS232 प्रोटोकॉल का भी उपयोग कर सकते हैं। पावर कनेक्टर प्रिंटर को पावर देने के लिए है और बटन का उपयोग प्रिंटर परीक्षण के उद्देश्य के लिए किया जाता है। जब प्रिंटर संचालित किया जा रहा है, यदि हम स्व-परीक्षण बटन को धक्का देते हैं, तो एक शीट प्रिंट करेगा जहां विनिर्देशों और नमूना लाइनें मुद्रित की जाएंगी। ये है सेल्फ टेस्ट शीट-
जैसा कि हम देख सकते हैं कि प्रिंटर का उपयोग माइक्रोकंट्रोलर यूनिट के साथ संवाद करने के लिए 9600 बॉड दर है। प्रिंटर ASCII वर्णों को प्रिंट कर सकता है। संचार बहुत आसान है, हम केवल UART का उपयोग करके, स्ट्रिंग या वर्ण प्रेषित करके कुछ भी प्रिंट कर सकते हैं।
प्रिंटर सिर को गर्म करने के लिए प्रिंटर को 5V 2A बिजली की आपूर्ति की आवश्यकता होती है । यह थर्मल प्रिंटर की खामी है क्योंकि यह प्रिंटिंग प्रक्रिया के दौरान भारी लोड लेती है।
आवश्यक शर्तें
निम्नलिखित प्रोजेक्ट बनाने के लिए, हमें निम्नलिखित चीजों की आवश्यकता है: -
- ब्रेड बोर्ड
- तारों को हुक करें
- PIC16F877A
- 2pcs 33pF सिरेमिक डिस्क कैपेसिटर
- 680R रोकनेवाला
- किसी भी रंग का नेतृत्व किया
- स्पर्शक स्विच
- 2pcs 4.7k प्रतिरोधों
- पेपर रोल के साथ थर्मल प्रिंटर CSN A1
- 5 वी 2 ए रेटेड बिजली आपूर्ति इकाई।
सर्किट आरेख और स्पष्टीकरण
PIC माइक्रोकंट्रोलर के साथ प्रिंटर को नियंत्रित करने के लिए योजनाबद्ध नीचे दिया गया है:
यहां हम PIC16F877A का उपयोग माइक्रोकंट्रोलर यूनिट के रूप में कर रहे हैं । एक 4.7k रोकनेवाला का उपयोग 5V बिजली की आपूर्ति के लिए MCLR पिन को जोड़ने के लिए किया जाता है। हमने क्लॉक सिग्नल के लिए 33pF कैपेसिटर के साथ 20 मेगाहर्ट्ज का एक बाहरी थरथरानवाला भी जोड़ा है । एक सूचना LED RB2 पोर्ट से जुड़ा हुआ है जिसमें 680R लेट करंट लिमिटिंग रेसिस्टर है। स्पर्श स्विच RB0 पिन भर में कनेक्ट होने पर बटन यह प्रदान करेगा दबाया जाता है तर्क उच्च अन्यथा पिन प्राप्त होगा तर्क कम 4.7k बाधा से।
प्रिंटर CSN A1 क्रॉस कॉन्फ़िगरेशन का उपयोग करके जुड़ा हुआ है, माइक्रोकंट्रोलर ट्रांसमिट पिन प्रिंटर के रिसीव पिन के साथ जुड़ा हुआ है। प्रिंटर 5 वी और जीएनडी आपूर्ति के साथ भी जुड़ा हुआ है।
हमने एक ब्रेडबोर्ड में सर्किट का निर्माण किया और इसका परीक्षण किया ।
कोड स्पष्टीकरण
कोड को समझना बहुत आसान है। PIC16F877A के साथ थर्मल प्रिंटर को इंटर करने के लिए पूरा कोड लेख के अंत में दिया गया है। हमेशा की तरह, हमें पहले PIC माइक्रोकंट्रोलर में कॉन्फ़िगरेशन बिट्स सेट करने की आवश्यकता है।
// PIC16F877A कॉन्फ़िगरेशन बिट सेटिंग्स // 'C' सोर्स लाइन कॉन्फिगरेशन स्टेटमेंट्स // CONFIG #pragma config FOSC = HS // Oscillator सिलेक्शन बिट्स (HS ऑसिलेटर) #pragma config WDTE = OFF // वॉचटॉग टाइमर बिट (WDT अक्षम) सक्षम करें # pragma config PWRTE = OFF // पावर-अप टाइमर सक्षम करें (PWRT अक्षम) #pragma config BOREN = ON // ब्राउन-आउट रीसेट सक्षम बिट (BOR सक्षम) #pragma config LVP = OFF / लो-वोल्टेज (एकल-आपूर्ति)) इन-सर्किट सीरियल प्रोग्रामिंग इनेबल बिट (RB3 / PGM पिन में PGM फंक्शन है; लो-वोल्टेज प्रोग्रामिंग इनेबल है) #pragma config CPD = OFF // Data EEPROM मेमोरी कोड प्रोटेक्शन बिट (डेटा EEPROM कोड प्रोटेक्शन ऑफ) #pragma config WRT = OFF // फ़्लैश प्रोग्राम मेमोरी राइट बिट्स सक्षम करें (सुरक्षा बंद लिखें; सभी प्रोग्राम मेमोरी EECON कंट्रोल द्वारा लिखी जा सकती है) #pragma config CP = OFF // फ्लैश प्रोग्राम मेमोरी कोड प्रोटेक्शन बिट (कोड प्रोटेक्शन ऑफ)
उसके बाद, हमने सिस्टम हार्डवेयर संबंधित मैक्रोज़ को परिभाषित किया और eusart संबंधित हार्डवेयर नियंत्रण के लिए eusart1.h हेडर फ़ाइल का उपयोग किया । UART को हेडर फ़ाइल के अंदर 9600 बॉड दर पर कॉन्फ़िगर किया गया है।
#शामिल
में मुख्य समारोह, हम पहले स्विच खामियों को खत्म करने 'बटन प्रेस' और भी इस्तेमाल किया स्विच debounce रणनीति की जाँच की। हमने 'बटन दबाया' स्थिति के लिए एक if स्टेटमेंट बनाया है । पहले एलईडी की चमक बढ़ेगी और UART स्ट्रिंग्स को प्रिंट करेगा। कस्टम लाइनों को अगर स्टेटमेंट के अंदर जेनरेट किया जा सकता है और स्ट्रिंग के रूप में प्रिंट किया जा सकता है।
शून्य मुख्य (शून्य) { system_init (); जबकि (1) { if (प्रिंटर_स्व == 1) {// स्विच __delay_ms (50) दबाया जाता है ; // डेब्यू में देरी अगर (प्रिंटर_स्व == 1) {// स्विच अभी भी नोटिफिकेशन दबाया गया है = १; put_string ("हैलो! \ n \ r"); // थर्मल प्रिंटर पर प्रिंट करें __delay_ms (50); put_string ("थर्मल प्रिंटर ट्यूटोरियल। \ n \ r"); __delay_ms (50); put_string ("सर्किट डाइजेस्ट। \ n \ r"); __delay_ms (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"); नोटिफिकेशन_ल्ड = 0; }} } } }
पूरा कोड और काम करने वाला वीडियो नीचे दिया गया है।