آموزش آردوینوپروژه های آردوینو

پروژه چاپگر حرارتی CSN A1 با آردوینو (دستگاه کارت خوان)

سلام. پروژه چاپگر حرارتی CSN A1 با آردوینو (آموزش راه اندازی دستگاه کارت خوان POS) را آماده کردیم.

پروژه چاپگر حرارتی CSN A1 با آردوینو

تا کنون به رسید های دستگاه های کارتخوان یا عابربانک ها دقت کرده اید ؟  این رسیدها با استفاده از چاپگر حرارتی حرارتی پرینت میشوند. این پرینتر ها راه حلی ارزان و در دسترس برای چاپ صورت حساب هستند (در رستوران ها و فروشگاه ها و …). این چاپگر ها از کاغذ ترموکرومیک استفاده میکنند که در صورت قرار گیری در معرض حرارت خاصی تغییر رنگ میدهند.

در این پروژه آردوینو ما یک پرینتر (چاپگر) حرارتی را راه اندازی میکنیم و متن چاپ شونده را توسط آردوینو تعیین میکنیم. با فشردن کلید متن مورد نظر ما روی کاغذ توسط چاپگر حرارتی CSN A1 چاپ میشود. این پروژه قبلا برای میکروکنترلر های PIC قرار داده شده بود و حالا آن را برای آردوینو نیز آماده کردیم : آموزش راه اندازی پرینتر حرارتی CSN A1 با PIC

توضیحات پرینتر حرارتی CSN A1

پرینتر حرارتی CSN A1 به راحتی در دسترس است و قیمت بالایی ندارد.

پرینتر دستگاه کارت خوان POS

در تصویر زیر اتصالات این چاپگر حرارتی را میبینید :

اتصالات پرینتر حرارتی CSN-A1

اتصال TTL برقراری ارتباط با میکروکنترلر را فراهم می کند. ما همچنین می توانیم از پروتکل ارتباطی RS232 برای برقراری ارتباط با چاپگر استفاده کنیم.Power برای تأمین انرژی چاپگر استفاده می شود. دکمه ی Self-Test برای تست چاپگر است و با فشار دادن آن متن تست کارخانه روی کاغذ چاپ میشود. این چاپگر نیاز به منبع تغذیه 5 ولت 2 آمپر دارد و نقطه پرینتر های حرارتی به حساب می آید.

مدار پروژه چاپگر حرارتی CSN A1 با آردوینو

مدار پروژه چاپگر حرارتی CSN A1 با آردوینو 

  1. برد آردوینو Uno
  2. مقاومت 10 کیلو اهم
  3. دکمه
  4. پرینتر حرارتی CSN A1
  5. منبع تغذیه 5 ولت 2 آمپر
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

توضیحات کد پروژه

در قسمت اول کد ما پین ال ای دی و دکمه را تعیین میکنیم :

int led = 13;
int SW = 2;

در این قسمت پین های تعیین شده را پیکربندی میکنیم ، یعنی پین ال ای دی را یک پین خروجی و پین دکمه را یک پین ورودی تعریف میکنیم. و در خط بعد سرعت تبادل داده را روی 9600 قرار میدهیم.

void setup() {
 pinMode(led, OUTPUT);
 pinMode(SW, INPUT);
 Serial.begin(9600);
}

تغییر متن چاپ شده توسط پرینتر حرارتی با Arduino

تغییر متن چاپ شده توسط پرینتر حرارتی با Arduino

در این قسمت که قسمت اصلی کد ما است ، ما اتفاقت پس از فشرده شدن دکمه را تعیین میکنیم ، تصویر بالا و کد زیر را با هم مقایسه  کنید تا کاملا متوجه شوید.

void loop() {
  is_switch_press = digitalRead(SW)

  if (is_switch_press == HIGH){ 
    delay(debounce_delay); 
    if(is_switch_press == HIGH){ // در این فسمت میگوییم که اگر دکمه فشرده شد
    digitalWrite(led, HIGH); // ال ای دی روشن شود
    Serial.println("Hello"); // در خط اول متن Hello تایپ شود
    delay(100);
    Serial.println("This is a Thermal printer interface"); // متن چاپ شده قابل تغییر
    Serial.println("with Arduino UNO."); // متن چاپ شده قابل تغییر
    delay(100);
    Serial.println("Circuitdigest");  // متن چاپ شده قابل تغییر
    Serial.println ("\n\r"); // این کد همان اینتر زدن است و یک خط خالی اضافه میشود
    Serial.println ("\n\r"); // این کد همان اینتر زدن است و یک خط خالی اضافه میشود
    Serial.println ("\n\r"); // این کد همان اینتر زدن است و یک خط خالی اضافه میشود
    Serial.println ("---------------------------- \n \r"); // این کد هم خط چین
    Serial.println ("Thank You."); // متن چاپ شده قابل تغییر
    Serial.println ("\n\r"); // این کد همان اینتر زدن است و یک خط خالی اضافه میشود
    Serial.println ("\n\r"); // این کد همان اینتر زدن است و یک خط خالی اضافه میشود
    Serial.println ("\n\r"); // این کد همان اینتر زدن است و یک خط خالی اضافه میشود
    digitalWrite(led, LOW);  // ال ای دی خاموش شود
    }    
  }

  else{
    digitalWrite(led, LOW);
  }    
}
موارد موجود در فایل : شماتیک ، فایل Hex ، فایل آردوینو ، و …

PrCHharr(irenx.ir) دانلود فایل های پروژه

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
5/5 - (4 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

4 نظر

  1. سلام جناب رحیمی عزیز
    ممنون بابت آموزش و توضیحات خوبی که اینجا قرار دادی.
    سئوال:
    فرض کنید یه مدار دما سنج دیجیتال طراحی کردم و می خواهم هر موقع کلیدی را زدم اطلاعات همان لحظه دما چاپ شود؛ آیا با این پرینتر می شود همچین کاری را کرد؟ یعنی در هر لحظه اطلاعات متغیری را چاپ کند مثل ترازوهای دیجیتال
    و دوم اینکه آیا می توانیم تصویر را هم چاپ کنیم؟ مثل لوگو در بالای هر سربرگ؟

    1. سلام عزیز
      بله تمامی موارد با این چاپگر قابل انجام هست

    1. سلام جناب، بله فقط باید کاراکتر های خاص تعریف کنید یکم پیچیده میشه.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.