- Đặc điểm kỹ thuật máy in và kết nối
- Điều kiện tiên quyết
- Sơ đồ mạch và giải thích
- Chương trình Arduino
Bạn vừa thực hiện thanh toán cho một nhà hàng và nhận được một hóa đơn nhỏ hoặc rút tiền mặt từ máy ATM và nhận được biên lai giao dịch. Các biên lai này được in bằng máy in Nhiệt hoặc máy in hóa đơn.
Máy in nhiệt là giải pháp sẵn có và hiệu quả về chi phí để in hóa đơn hoặc biên lai nhỏ. Giải pháp dễ dàng tích hợp này có sẵn ở mọi nơi. Máy in sử dụng giấy nhiệt sắc, một loại giấy đặc biệt sẽ chuyển thành màu đen khi tiếp xúc với một lượng nhiệt nhất định. Máy in nhiệt sử dụng một quy trình gia nhiệt đặc biệt để in trên loại giấy này. Đầu máy in được làm nóng trong một loại điện đặc biệt để duy trì nhiệt độ nhất định. Khi giấy nhiệt đi qua đầu của nó, lớp phủ nhiệt của nó chuyển thành màu đen ở nơi đầu được đốt nóng.
Trong dự án trước, chúng tôi đã giao tiếp máy in Nhiệt với Vi điều khiển PIC. Trong hướng dẫn này, chúng tôi sẽ giao diện một máy in nhiệt với bảng Arduino Uno. Dự án này sẽ hoạt động như thế này: -
- Máy in sẽ được kết nối với Arduino Uno.
- Một công tắc xúc giác đang được kết nối với bảng Arduino để cung cấp tùy chọn ' đẩy để in' khi được nhấn.
- Đèn LED Arduino tích hợp sẽ thông báo trạng thái in. Nó sẽ chỉ phát sáng khi hoạt động in đang diễn ra.
Đặc điểm kỹ thuật máy in và kết nối
Chúng tôi đang sử dụng Máy in nhiệt CSN A1 của Cashino, loại này có sẵn dễ dàng và giá thành không quá cao.
Nếu chúng ta thấy thông số kỹ thuật trên trang web chính thức của nó, chúng ta sẽ thấy một bảng cung cấp thông số kỹ thuật chi tiết-
Ở mặt sau của máy in, chúng ta sẽ thấy kết nối sau-
Đầu nối TTL cung cấp kết nối Rx Tx để giao tiếp với bộ vi điều khiển. Chúng tôi cũng có thể sử dụng giao thức RS232 để giao tiếp với máy in. Đầu nối nguồn dùng để cấp nguồn cho máy in và nút được sử dụng cho mục đích kiểm tra máy in. Khi máy in đang được cấp nguồn, nếu chúng ta nhấn nút tự kiểm tra, máy in sẽ in ra một tờ nơi thông số kỹ thuật và dòng mẫu sẽ được in. Đây là bảng tự kiểm tra-
Như chúng ta có thể thấy máy in sử dụng tốc độ truyền 9600 để giao tiếp với bộ vi điều khiển. Máy in có thể in các ký tự ASCII. Giao tiếp rất dễ dàng, chúng tôi có thể in bất cứ thứ gì bằng cách sử dụng UART, truyền chuỗi hoặc ký tự.
Máy in hoạt động từ 5-9V, chúng tôi sẽ sử dụng nguồn điện 9V 2A có thể cấp nguồn cho cả máy in và Arduino Uno. Máy in cần dòng điện hơn 1,5A để làm nóng đầu máy in. Đây là nhược điểm của máy in nhiệt vì nó tốn dòng tải rất lớn trong quá trình in.
Điều kiện tiên quyết
Để thực hiện dự án sau, chúng ta cần những điều sau: -
- Breadboard
- Móc dây
- Bo mạch Arduino UNO với Cáp USB.
- Một máy tính đã sẵn sàng thiết lập giao diện Arduino với Arduino IDE.
- Điện trở 10k
- Công tắc xúc giác
- Máy in nhiệt CSN A1 với cuộn giấy
- Bộ nguồn định mức 9V 2A.
Sơ đồ mạch và giải thích
Sơ đồ điều khiển máy in với Arduino Uno được đưa ra dưới đây:
Mạch rất đơn giản. Chúng tôi đang sử dụng một điện trở để cung cấp trạng thái mặc định qua chân đầu vào D2 của Công tắc. Khi nhấn nút, D2 sẽ trở nên CAO và điều kiện này được sử dụng để kích hoạt in. Nguồn điện duy nhất của bộ nguồn 9V 2A được sử dụng để cấp nguồn cho máy in nhiệt và bo mạch Arduino. Điều quan trọng là phải kiểm tra cực của nguồn điện trước khi kết nối nó với bảng Arduino UNO. Nó có một đầu vào giắc cắm thùng với cực dương trung tâm.
Chúng tôi đã xây dựng mạch trong một breadboard và thử nghiệm nó.
Chương trình Arduino
Hoàn thành mã Arduino với Video giới thiệu ở phần cuối của dự án. Ở đây chúng tôi đang giải thích một số phần quan trọng của mã.
Lúc đầu, chúng tôi khai báo các chân cho nút bấm (Pin 2) và đèn LED trên bo mạch (Pin13)
int led = 13; int SW = 2;
Sau đó, một số biến được định cấu hình cho độ trễ gỡ lỗi và chuyển trạng thái báo chí
int is_switch_press = 0; // Để phát hiện trạng thái chuyển đổi nhấn int debounce_delay = 300; // Chậm trễ bù trừ
Trong chức năng thiết lập , chúng tôi đã định cấu hình chân LED làm đầu ra và chuyển đổi làm đầu vào. Chúng tôi cũng đã định cấu hình UART với tốc độ truyền 9600.
void setup () { / * * Chức năng này được sử dụng để thiết lập cấu hình pin * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
Trong vòng lặp chính, trước tiên, chúng tôi kiểm tra xem công tắc đã được nhấn hay chưa, sau đó, chúng tôi chờ một lúc và kiểm tra lại để xác định rằng công tắc đã được nhấn thực sự hay chưa, nếu công tắc vẫn được nhấn ngay cả sau độ trễ, chúng tôi in tùy chỉnh. trong UART, trong máy in Nhiệt cũng vậy.
Khi bắt đầu in, chúng tôi đặt đèn LED trên bo mạch cao và sau khi in, chúng tôi tắt đèn bằng cách hạ thấp.
void loop () { is_switch_press = digitalRead (SW); // Đọc trạng thái báo chí Switch if (is_switch_press == HIGH) { delay (debounce_delay); // độ trễ gỡ lỗi khi nhấn nút if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Xin chào"); chậm trễ (100); Serial.println ("Đây là giao diện máy in Nhiệt"); Serial.println ("với Arduino UNO."); chậm trễ (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Cảm ơn."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (dẫn đầu, THẤP); } } else { digitalWrite (led, LOW); } }
Kiểm tra mã Arduino đầy đủ và Video trình diễn bên dưới.