پروژه چاپگر حرارتی CSN A1 با آردوینو (دستگاه کارت خوان)
سلام. پروژه چاپگر حرارتی CSN A1 با آردوینو (آموزش راه اندازی دستگاه کارت خوان POS) را آماده کردیم.
محتویات
پروژه چاپگر حرارتی CSN A1 با آردوینو
تا کنون به رسید های دستگاه های کارتخوان یا عابربانک ها دقت کرده اید ؟ این رسیدها با استفاده از چاپگر حرارتی حرارتی پرینت میشوند. این پرینتر ها راه حلی ارزان و در دسترس برای چاپ صورت حساب هستند (در رستوران ها و فروشگاه ها و …). این چاپگر ها از کاغذ ترموکرومیک استفاده میکنند که در صورت قرار گیری در معرض حرارت خاصی تغییر رنگ میدهند.
در این پروژه آردوینو ما یک پرینتر (چاپگر) حرارتی را راه اندازی میکنیم و متن چاپ شونده را توسط آردوینو تعیین میکنیم. با فشردن کلید متن مورد نظر ما روی کاغذ توسط چاپگر حرارتی CSN A1 چاپ میشود. این پروژه قبلا برای میکروکنترلر های PIC قرار داده شده بود و حالا آن را برای آردوینو نیز آماده کردیم : آموزش راه اندازی پرینتر حرارتی CSN A1 با PIC
توضیحات پرینتر حرارتی CSN A1
پرینتر حرارتی CSN A1 به راحتی در دسترس است و قیمت بالایی ندارد.
همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.
در تصویر زیر اتصالات این چاپگر حرارتی را میبینید :
اتصال TTL برقراری ارتباط با میکروکنترلر را فراهم می کند. ما همچنین می توانیم از پروتکل ارتباطی RS232 برای برقراری ارتباط با چاپگر استفاده کنیم.Power برای تأمین انرژی چاپگر استفاده می شود. دکمه ی Self-Test برای تست چاپگر است و با فشار دادن آن متن تست کارخانه روی کاغذ چاپ میشود. این چاپگر نیاز به منبع تغذیه 5 ولت 2 آمپر دارد و نقطه پرینتر های حرارتی به حساب می آید.
مدار پروژه چاپگر حرارتی CSN A1 با آردوینو
- برد آردوینو Uno
- مقاومت 10 کیلو اهم
- دکمه
- پرینتر حرارتی CSN A1
- منبع تغذیه 5 ولت 2 آمپر
توضیحات کد پروژه
در قسمت اول کد ما پین ال ای دی و دکمه را تعیین میکنیم :
int led = 13; int SW = 2;
در این قسمت پین های تعیین شده را پیکربندی میکنیم ، یعنی پین ال ای دی را یک پین خروجی و پین دکمه را یک پین ورودی تعریف میکنیم. و در خط بعد سرعت تبادل داده را روی 9600 قرار میدهیم.
void setup() { pinMode(led, OUTPUT); pinMode(SW, INPUT); Serial.begin(9600); }
تغییر متن چاپ شده توسط پرینتر حرارتی با 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); } }