راه اندازی پرینتر حرارتی TTL سریال CSN-A2 با بسکام (Bascom AVR)

پرینتر یا چاپگر یکی از متداول ترین واحدهای خروجی سیستم های کامپیوتری می باشد که برای تهیه یک سند چاپ شده مورد استفاده قرار می گیرد. یکی از ساده ترین پرینترهای موجود پرینتر حرارتی است که نیازی به جوهر نداشته و می تواند با مکانیزم ایجاد حرارت بر روی کاغذهای مخصوص (و البته ارزان قیمت) عباراتی را چاپ نماید. امروزه این نوع پرینترها به وفور در دستگاه های کارت خوان (POS) فروشگاهی، سیستم های نوبت دهی بانک ها، سیستم های چاپ فاکتور فروشگاه ها، باسکول های بزرگ تعیین وزن بار خودرو و … مشاهده می شود. در این مقاله تصمیم داریم پرینتر حرارتی TTL سریال CSN-A2 را با کمک میکروکنترلر ATmega8 از خانواده AVR و کامپایلر Bascom (بسکام) راه اندازی نماییم. پرینتر استفاده شده از فونت فارسی نیز پشتیبانی می کند و عباراتی با زبان فارسی نیز چاپ خواهیم کرد.

 

سخت افزار پرینتر:

پرینتر حرارتی CSN-A2 دارای دو پورت در قسمت زیرین می باشد که یک پورت مربوط به تغذیه و پورت دیگر مربوط به پورت سریال است. همانطوریکه در تصویر زیر مشاهده می شود پورت سمت چپ مربوط ورودی تغذیه 5 ولت می باشد. پایه وسط به جایی متصل نمی شود و تغذیه باید به دو پایه کناری متصل شود. این پرینتر دارای هیتر بوده و جریان زیادی مصرف می کند؛ پس برای راه اندازی این پرینتر به یک منبع تغذیه آمپر بالا احتیاج خواهید داشت (ما برای راه اندازی از تغذیه 5 ولت 4 آمپر استفاده کردیم). پورت سمت راست نیز همان پورت سریال با پایه های RX و TX و GND می باشد که منطق آن 5 ولت بوده (TTL) و عملا فقط دو پایه RX و GND به میکرو متصل می شود. (به TX و GND میکرو). باودریت (BAUD) این پرینتر در حالت پیشفرض 19200 می باشد و سایر تنظیمات به صورت پیشفرض هستند: یعنی 8 بیت دیتا No Parity و 1 بیت هم STOP bit.

پورت هاي پرينتر حرارتي CSN-A2
 

شماتيک پرينتر حرارتي CSN-A2

برنامه بسکام:

برنامه این پرینتر با بررسی سورس کدهای آماده آردوینو و نیز مطالعه دیتاشیت پرینتر حرارتی CSN-A2 نوشته شده و از زبان C به BASIC برگردانده شده است. برای راحتی کار با این پرینتر، تنظیمات فونت و غیره بصورت توابعی در انتهای برنامه نوشته شده که با فراخوانی آنها می توان اثر آن را در برنامه مشاهده کرد. تعداد 10 سابروتین در این برنامه تعریف شده که مهمترین آنها Init_printer می باشد. با فراخوانی این تابع در ابتدای برنامه، پرینتر تنظیم شده و آماده استفاده می شود. زیربرنامه Align سه رشته right,middle,left را دریافت می کند و برای راست چین، وسط چین و چپ چین کردن متن بکار می رود. سابروتین Font_w2_h2_b یک رشته بصورت”000″ الی “111” دریافت می کند که برای فعال یا غیر فعال کردن همزمان سه خصلت “فونت ضخیم”، “فونت با ارتفاع دوبرابر” و “فونت با پهنای دوبرابر” به کار میرود. مثلا با تنظیم این زیربرنامه به صورت “101” فونت BOLD با عرض دوبرابر (متن کشیده)خواهیم داشت. سابروتین بعدی inverse نام دارد که دو “عدد” 0 یا 1 را قبول می کند. در صورت 1 شدن رنگ نوشته ها و پس زمینه عوض می شود، یعنی بک گراند متن مشکی می شود و خود متن سفید خواهد بود. این کار برای جلب توجه متن در برخی موارد لازم است. مثلا عبارت: “تراکنش ناموفق”. زیربرنامه Font_bold نیز یک عدد 0 یا 1 را پذیرفته و در صورت 1 شدن فونت BOLD می شود، شبیه زیربرنامه Font_w2_h2_b می باشد ولی بصورت مجزا فقط برای تغییر ضخامت نوشته بکار می رود. زیربرنامه Font_width_x2 نیز یک عدد 0 یا 1 را گرفته و درصورت 1 شدن عرض متن را دوبرابر می کند و متنها به صورت کشیده چاپ می شود. زیربرنامه Font_x2 طول و عرض متن را باهم دوبرابر می کند و فونت به طور یکسان دوبرابر می شود. سابروتین Font_updown متن را برعکس چاپ می کند، کاملا سر و ته. سابروتین Font_underline سه عدد 0 یا 1 یا 2 را دریافت می کند. 0 یعنی نوشته های بدون زیرخط، 1 یعنی نوشته با زیرخط نازک و 2 یعنی نوشته با زیرخط ضخیم. سابروتین Line_spacing عددی بین 0 تا 255 را دریافت می کند که تعیین کننده فاصله بین خصوص است. پیشفرض آن 32 می باشد ولی برای رسم اشکال کاراکتری بهتر است روی 0 تنظیم شود تا خطها به هم بچسبند.

پس از انجام تنظیمات نوبت به چاپ متن می رسد. برای چاپ متون لاتین به راحتی با دستور print “test” می توان متن مورد نظر را چاپ کرد. برای متن های فارسی باید کد کاراکترها را که بین 128 تا 255 می باشد با دستور print chr(128) چاپ کرد. مثلا برای چاپ سلام که از سه حرف س لا م تشکیل شده باید کدهای حروف را به ترتیب از آخر به اول مطابق این عبارت در جلوی دستور پرینت نوشت: Print Chr(244) ; Chr(242) ; Chr(168)

به عنوان نکته آخر دستور print chr(10) باعث می شود کاغذ بصورت سفید به اندازه ی حدود یک سانت از پرینتر خارج شود که اصطلاحا به آن فید گفته می شود. در این قسمت کد کامل راه اندازی پرینتر TTL حرارتی فارسی CSN-A2 با بسکام/بیسکام (BASCOM) و میکروی AVR آورده می شود:

 

خرید پرينتر حرارتي CSN-A2

بازدیدها: 1054

4 دیدگاه دربارهٔ «راه اندازی پرینتر حرارتی TTL سریال CSN-A2 با بسکام (Bascom AVR)»

دیدگاه‌ها غیرفعالند.