คุณเพิ่งชำระเงินให้ร้านอาหารและได้รับบิลเล็ก ๆ หรือจ่ายเงินสดจากตู้เอทีเอ็มและได้รับใบเสร็จการทำธุรกรรม ใบเสร็จรับเงินเหล่านี้จะถูกพิมพ์โดยใช้เครื่องพิมพ์ความร้อนหรือเครื่องพิมพ์ใบเสร็จ
เครื่องพิมพ์ความร้อนเป็นโซลูชันที่พร้อมใช้งานและคุ้มค่าสำหรับการพิมพ์บิลหรือใบเสร็จขนาดเล็ก โซลูชันที่ง่ายต่อการผสานรวมนี้มีอยู่ทุกที่ เครื่องพิมพ์ใช้กระดาษเทอร์โมโครมิกซึ่งเป็นกระดาษชนิดพิเศษซึ่งเปลี่ยนเป็นสีดำเมื่อสัมผัสกับความร้อนจำนวนหนึ่ง เครื่องพิมพ์ความร้อนใช้กระบวนการให้ความร้อนพิเศษเพื่อพิมพ์ลงบนกระดาษนี้ หัวเครื่องพิมพ์ถูกทำให้ร้อนด้วยไฟฟ้าพิเศษเพื่อรักษาอุณหภูมิที่แน่นอน เมื่อกระดาษเทอร์มอลผ่านหัวกระดาษเคลือบกันความร้อนจะเปลี่ยนเป็นสีดำเมื่อส่วนหัวร้อน
ในโครงการก่อนหน้านี้เราได้เชื่อมต่อเครื่องพิมพ์ความร้อนกับไมโครคอนโทรลเลอร์ PIC ในการกวดวิชานี้เราจะเชื่อมต่อเครื่องพิมพ์ความร้อนกับคณะกรรมการ Arduino Uno โครงการนี้จะทำงานดังนี้: -
- เครื่องพิมพ์จะเชื่อมต่อกับ Arduino Uno
- สวิตช์สัมผัสกำลังเชื่อมต่อกับบอร์ด Arduino เพื่อให้ตัวเลือก' กดเพื่อพิมพ์' เมื่อกด
- ออนบอร์ด Arduino LED จะแจ้งสถานะการพิมพ์ จะเรืองแสงก็ต่อเมื่อกำลังดำเนินกิจกรรมการพิมพ์
ข้อมูลจำเพาะเครื่องพิมพ์และการเชื่อมต่อ
เราใช้เครื่องพิมพ์ความร้อน CSN A1จาก Cashino ซึ่งหาซื้อได้ง่ายและราคาไม่สูงเกินไป
หากเราเห็นข้อมูลจำเพาะบนเว็บไซต์อย่างเป็นทางการเราจะเห็นตารางที่ให้ข้อมูลจำเพาะโดยละเอียด -
ที่ด้านหลังของเครื่องพิมพ์เราจะเห็นการเชื่อมต่อดังต่อไปนี้ -
เชื่อมต่อ TTL ให้การเชื่อมต่อ Rx Tx ในการสื่อสารกับหน่วยไมโครคอนโทรลเลอร์ เรายังสามารถใช้โปรโตคอล RS232 เพื่อสื่อสารกับเครื่องพิมพ์ ขั้วต่อสายไฟใช้สำหรับเปิดเครื่องพิมพ์และปุ่มนี้ใช้สำหรับการทดสอบเครื่องพิมพ์ เมื่อเครื่องพิมพ์กำลังขับเคลื่อนถ้าเรากดปุ่มทดสอบตัวเองเครื่องพิมพ์จะพิมพ์แผ่นงานที่จะพิมพ์ข้อมูลจำเพาะและเส้นตัวอย่าง นี่คือแผ่นทดสอบตัวเอง -
ดังที่เราเห็นเครื่องพิมพ์ใช้อัตรารับส่งข้อมูล 9600 ในการสื่อสารกับหน่วยไมโครคอนโทรลเลอร์ เครื่องพิมพ์สามารถพิมพ์อักขระ ASCII การสื่อสารนั้นง่ายมากเราสามารถพิมพ์อะไรก็ได้เพียงแค่ใช้ UART ส่งสตริงหรืออักขระ
เครื่องพิมพ์ทำงานตั้งแต่ 5-9V เราจะใช้แหล่งจ่ายไฟ 9V 2A ซึ่งสามารถจ่ายไฟให้ทั้งเครื่องพิมพ์และ Arduino Uno เครื่องพิมพ์ต้องการกระแสไฟฟ้ามากกว่า 1.5A เพื่อให้หัวเครื่องพิมพ์ร้อนขึ้น นี่เป็นข้อเสียเปรียบของเครื่องพิมพ์ความร้อนเนื่องจากต้องใช้กระแสไฟฟ้ามากในระหว่างกระบวนการพิมพ์
ข้อกำหนดเบื้องต้น
ในการสร้างโครงการต่อไปนี้เราต้องการสิ่งต่อไปนี้: -
- เขียงหั่นขนม
- เกี่ยวสายไฟ
- บอร์ด Arduino UNO พร้อมสาย USB
- คอมพิวเตอร์ที่ติดตั้งอินเทอร์เฟซ Arduino พร้อมกับ Arduino IDE
- ตัวต้านทาน 10k
- สวิตช์สัมผัส
- เครื่องพิมพ์ความร้อน CSN A1 พร้อมม้วนกระดาษ
- หน่วยจ่ายไฟ 9V 2A
แผนภาพวงจรและคำอธิบาย
แผนผังสำหรับ ควบคุมเครื่องพิมพ์ด้วย Arduino Uno มีดังต่อไปนี้:
วงจรเป็นเรื่องง่าย เรากำลังใช้ตัวต้านทานเพื่อระบุสถานะเริ่มต้นบนขาอินพุตสวิตช์ D2 เมื่อกดปุ่ม D2 จะกลายเป็น HIGH และเงื่อนไขนี้จะถูกใช้เพื่อเริ่มการพิมพ์ แหล่งจ่ายไฟเดี่ยวของแหล่งจ่ายไฟ 9V 2A ใช้เพื่อจ่ายไฟให้กับเครื่องพิมพ์ความร้อนและบอร์ด Arduino สิ่งสำคัญคือต้องตรวจสอบขั้วของแหล่งจ่ายไฟก่อนเชื่อมต่อกับบอร์ด Arduino UNO มันมีอินพุตแจ็คบาร์เรลที่มีขั้วบวกตรงกลาง
เราสร้าง วงจรในเขียงหั่นขนมและทดสอบ
โปรแกรม Arduino
กรอกรหัส Arduino ด้วยวิดีโอสาธิตอยู่ท้ายโครงการ เรากำลังอธิบายส่วนสำคัญบางส่วนของโค้ดนี้
ในตอนแรกเราได้ประกาศหมุดสำหรับปุ่มกด (Pin 2) และ LED บนบอร์ด (Pin13)
int นำ = 13; int SW = 2;
จากนั้นจะมีการกำหนดค่าตัวแปรเพียงไม่กี่ตัวสำหรับการหน่วงเวลาการดีบักและเปลี่ยนสถานะการกด
int is_switch_press = 0; // สำหรับตรวจจับการกดสวิตช์สถานะ int debounce_delay = 300; // ดีเลย์ดีเลย์
ใน การตั้งค่า ฟังก์ชั่นที่เรากำหนดค่าขา LED เป็นผลผลิตและเปลี่ยนเป็นอินพุท นอกจากนี้เรายังกำหนดค่า UART ด้วยอัตรารับส่งข้อมูล 9600
การตั้งค่าเป็นโมฆะ () { / * * ฟังก์ชันนี้ใช้เพื่อตั้งค่าการกำหนดค่าพิน * / pinMode (led, OUTPUT); pinMode (SW, อินพุต); Serial.begin (9600); }
ในลูปหลักก่อนอื่นเราตรวจสอบว่าสวิตช์ถูกกดหรือไม่จากนั้นอีกครั้งเรารอสักครู่แล้วตรวจสอบอีกครั้งเพื่อระบุว่าสวิตช์ถูกกดจริงหรือไม่หากสวิตช์ยังคงกดอยู่แม้หลังจากล่าช้าเราก็พิมพ์แบบกำหนดเอง เส้นใน UART ดังนั้นในเครื่องพิมพ์ความร้อน
ในช่วงเริ่มต้นของการพิมพ์เราตั้งค่า LED บนบอร์ดให้สูงและหลังจากการพิมพ์เราปิดโดยทำให้ต่ำ
โมฆะ loop () { is_switch_press = digitalRead (SW); // การอ่านสถานะการกด Switch if (is_switch_press == HIGH) { delay (debounce_delay); // debounce delay สำหรับการกดปุ่ม if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("สวัสดี"); ล่าช้า (100); Serial.println ("นี่คืออินเทอร์เฟซเครื่องพิมพ์ความร้อน"); Serial.println ("กับ Arduino UNO."); ล่าช้า (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("ขอบคุณ."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, LOW); } } else { digitalWrite (led, LOW); } }
ตรวจสอบโค้ด Arduino และวิดีโอสาธิตด้านล่าง