- Pagtutukoy ng Printer at mga koneksyon
- Mga Pangangailangan
- Circuit Diagram at Paliwanag
- Programa ng Arduino
Nagbayad ka lang sa isang restawran at nakatanggap ng isang maliit na bayarin o nag-dispense ng cash mula sa isang ATM at natanggap ang resibo ng transaksyon. Ang mga resibo na ito ay naka-print gamit ang isang Thermal printer o resibo ng printer.
Ang Thermal printer ay madaling magagamit at mabisang solusyon sa solusyon upang mag-print ng maliliit na bayarin o resibo. Ang madaling pagsamahin ang solusyon ay magagamit saanman. Gumagamit ang printer ng thermochromic paper, isang espesyal na uri ng papel na nagiging itim na kulay kapag nahantad ito sa isang tiyak na dami ng init. Gumagamit ang Thermal printer ng isang espesyal na proseso ng pag-init upang mai-print sa papel na ito. Ang ulo ng printer ay pinainit sa isang espesyal na elektrikal upang mapanatili ang isang tiyak na temperatura. Kapag ang thermal paper ay dumaan sa ulo nito, ang thermal coating ay nagiging itim kung saan pinainit ang ulo.
Sa nakaraang proyekto, nag-interface kami ng Thermal printer sa PIC Microcontroller. Sa tutorial na ito, makikipag-ugnay kami sa isang thermal printer sa Arduino Uno board. Ang proyektong ito ay gagana tulad nito: -
- Ang printer ay makakonekta sa Arduino Uno.
- Ang isang tactile switch ay konektado sa board ng Arduino upang ibigay ang pagpipiliang ' push to print' kapag pinindot.
- Aabisuhan ng Onboard Arduino LED ang katayuan sa pagpi-print. Mag-iilaw lamang ito kapag nangyayari ang aktibidad sa pag-print.
Pagtutukoy ng Printer at mga koneksyon
Gumagamit kami ng CSN A1 Thermal Printer mula sa Cashino, na madaling magagamit at ang presyo ay hindi masyadong mataas.
Kung nakikita namin ang detalye sa opisyal na website, makakakita kami ng isang talahanayan na nagbibigay ng detalyadong mga pagtutukoy-
Sa likurang bahagi ng printer, makikita namin ang sumusunod na koneksyon-
Ang konektor ng TTL ay nagbibigay ng koneksyon sa Rx Tx upang makipag-usap sa yunit ng microcontroller. Maaari din naming gamitin ang RS232 na protocol upang makipag-usap sa printer. Ang konektor ng kuryente ay para sa pagpapagana ng printer at ang pindutan ay ginagamit para sa layunin ng pagsubok ng printer. Kapag pinapatakbo ang printer, kung pipilitin namin ang pindutan ng self-test ang printer, magpi-print ng isang sheet kung saan mai-print ang mga pagtutukoy at sample na linya. Narito ang pansubok na sheet-
Tulad ng nakikita natin ang printer na gumagamit ng 9600 baud rate upang makipag-usap sa yunit ng microcontroller. Maaaring i-print ng printer ang mga character na ASCII. Napakadali ng komunikasyon, maaari naming mai-print ang anumang bagay sa pamamagitan lamang ng paggamit ng UART, paglilipat ng string o character.
Gumagana ang printer mula 5-9V, gagamit kami ng isang 9V 2A power supply na maaaring mapagana ang parehong printer at ang Arduino Uno. Ang printer ay nangangailangan ng higit sa 1.5A ng kasalukuyang para sa pagpainit ng ulo ng printer. Ito ang disbentaha ng thermal printer dahil tumatagal ito ng napakalaking kasalukuyang pag-load sa panahon ng proseso ng pag-print.
Mga Pangangailangan
Upang gawin ang sumusunod na proyekto, kailangan namin ang mga sumusunod na bagay: -
- Breadboard
- I-hook up ang mga wire
- Arduino UNO board na may USB Cable.
- Isang computer na may pag-setup ng Arduino interface na handa na gamit ang Arduino IDE.
- 10k risistor
- Tactile switch
- Thermal Printer CSN A1 na may papel na roll
- 9V 2A na na-rate na power supply unit.
Circuit Diagram at Paliwanag
Ang iskematika para sa pagkontrol sa printer na may Arduino Uno ay ibinibigay sa ibaba:
Ang circuit ay simple. Gumagamit kami ng isang risistor upang magbigay ng default na estado sa kabuuan ng Switch input pin D2. Kapag pinindot ang pindutan, ang D2 ay magiging MATAPOS at ang kondisyong ito ay ginagamit upang ma-trigger ang pag-print. Ang solong supply ng kuryente ng 9V 2A power supply ay ginagamit upang paandarin ang thermal printer at Arduino board. Mahalagang suriin ang polarity ng suplay ng kuryente bago ito ikonekta sa Arduino UNO board. Mayroon itong input ng barrel jack na may positibong polarity sa gitna.
Itinayo namin ang circuit sa isang breadboard at sinubukan ito.
Programa ng Arduino
Kumpletuhin ang Arduino code na may Demo Video na nasa dulo ng proyekto. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code.
Sa una, idineklara namin ang mga pin para sa pushbutton (Pin 2) at sa board LED (Pin13)
int led = 13; int SW = 2;
Pagkatapos ng ilang mga variable ay nai-configure para sa pagkaantala ng debounce at lumipat sa katayuan ng pindutin
int is_switch_press = 0; // Para sa pagtuklas ng switch press status int debounce_delay = 300; // Pag-antala ng debate
Sa pag- andar ng pag- setup , na- configure namin ang LED pin bilang output at lumipat bilang input. Na-configure din namin ang UART na may 9600 baud rate.
void setup () { / * * Ginagamit ang pagpapaandar na ito upang maitakda ang pagsasaayos ng pin * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
Sa pangunahing loop, susuriin muna namin kung ang switch ay pinindot o hindi, pagkatapos ay maghintay muli kami para sa ilang oras at muli suriin upang makilala na ang switch ay tunay na pinindot o hindi, kung ang switch ay pinindot pa rin kahit na matapos ang pagka-antala, nai-print namin ang pasadyang mga linya sa UART, kaya sa Thermal printer.
Sa pagsisimula ng pag-print itinakda namin ang onboard LED mataas at pagkatapos ng pag-print, pinatay namin ito sa pamamagitan ng paggawa ng mababa.
void loop () { is_switch_press = digitalRead (SW); // Pagbasa ng katayuan ng press ng Switch kung (is_switch_press == TAAS) { pagkaantala (debounce_delay); // debounce delay for press press if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Kamusta"); pagkaantala (100); Serial.println ("Ito ay isang interface ng Thermal printer"); Serial.println ("kasama ng Arduino UNO."); pagkaantala (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Salamat."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } iba pa { digitalWrite (led, LOW); } }
Suriin ang kumpletong Arduino code at Demonstration Video sa ibaba.