Bir restorana ödeme yaptınız ve küçük bir fatura aldınız veya bir ATM'den nakit para verdiniz ve işlem makbuzunu aldınız. Bu fişler, bir Termal yazıcı veya fiş yazıcısı kullanılarak yazdırılır.
Termal yazıcı, küçük faturalar veya makbuzlar yazdırmak için hazır ve uygun maliyetli bir çözümdür. Bu entegrasyonu kolay çözüm her yerde mevcuttur. Yazıcı, belirli bir ısıya maruz kaldığında siyah renge dönüşen özel bir kağıt türü olan termokromik kağıdı kullanır. Termal yazıcı, bu kağıda yazdırmak için özel bir ısıtma işlemi kullanır. Yazıcı kafası, belirli bir sıcaklığı korumak için özel bir elektrikle ısıtılır. Termal kağıt kafasından geçtiğinde, termal kaplaması, kafanın ısıtıldığı yerde siyaha dönüşür.
Önceki projede, Termal yazıcıyı PIC Mikroişlemci ile arayüzlendirmiştik. Bu eğitimde, Arduino Uno kartı ile bir termal yazıcı arasında arayüz oluşturacağız. Bu proje şu şekilde çalışacak: -
- Yazıcı Arduino Uno ile bağlanacaktır.
- Basıldığında 'yazdırmak için it' seçeneğini sağlamak için Arduino kartına dokunsal bir anahtar bağlanıyor.
- Yerleşik Arduino LED'i yazdırma durumunu bildirecektir. Yalnızca yazdırma etkinliği devam ederken parlayacaktır.
Yazıcı Özellikleri ve bağlantıları
Cashino'dan kolay temin edilebilen ve fiyatı çok yüksek olmayan CSN A1 Termal Yazıcı kullanıyoruz.
Teknik özellikleri resmi web sitesinde görürsek, ayrıntılı özellikleri sağlayan bir tablo göreceğiz.
Yazıcının arka tarafında aşağıdaki bağlantıyı göreceğiz-
TTL konektörü, mikro denetleyici birimiyle iletişim kurmak için Rx Tx bağlantısını sağlar. Yazıcıyla iletişim kurmak için RS232 protokolünü de kullanabiliriz. Güç konektörü yazıcıya güç sağlamak içindir ve düğme, yazıcı test amacıyla kullanılır. Yazıcıya güç verildiğinde, kendi kendini sınama düğmesine basarsak, yazıcı, özelliklerin ve örnek satırların yazdırılacağı bir sayfa yazdırır. İşte kendi kendini sınama sayfası-
Gördüğümüz gibi yazıcı, mikro denetleyici birimiyle iletişim kurmak için 9600 baud hızı kullanıyor. Yazıcı ASCII karakterlerini yazdırabilir. İletişim çok kolaydır, sadece UART kullanarak, dize veya karakter ileterek her şeyi yazdırabiliriz.
Yazıcı 5-9V'den çalışır, hem yazıcıya hem de Arduino Uno'ya güç sağlayabilen 9V 2A güç kaynağı kullanacağız. Yazıcının, yazıcı kafasını ısıtması için 1,5A'dan fazla akıma ihtiyacı vardır. Bu, baskı işlemi sırasında büyük yük akımı aldığı için termal yazıcının dezavantajıdır.
Önkoşullar
Aşağıdaki projeyi yapmak için aşağıdakilere ihtiyacımız var: -
- Breadboard
- Kabloları bağlayın
- USB Kablosu ile Arduino UNO kartı.
- Arduino IDE ile hazır Arduino arayüz kurulumuna sahip bir bilgisayar.
- 10k direnç
- Dokunsal anahtar
- Termal Yazıcı CSN A1, kağıt rulolu
- 9V 2A nominal güç kaynağı ünitesi.
Devre Şeması ve Açıklama
İçin Şematik Arduino Uno yazıcıyı kontrol aşağıda verilmiştir:
Devre basittir. Switch giriş pini D2'de varsayılan durumu sağlamak için bir direnç kullanıyoruz. Düğmeye basıldığında, D2 YÜKSEK olur ve bu durum baskıyı tetiklemek için kullanılır. Termal yazıcıya ve Arduino kartına güç sağlamak için 9V 2A güç kaynağının tek güç kaynağı kullanılır. Arduino UNO kartına bağlamadan önce güç kaynağı polaritesini kontrol etmek önemlidir. Merkez pozitif polariteye sahip bir namlu jak girişine sahiptir.
Devreyi bir devre tahtasında kurduk ve test ettik.
Arduino Programı
Bir Demo Video ile Arduino kodunu tamamlayın, projenin sonunda. Burada kodun birkaç önemli bölümünü açıklıyoruz.
İlk olarak, buton (Pin 2) ve on board LED (Pin13) için pinleri ilan ettik.
int led = 13; int SW = 2;
Ardından, geri çevrilme gecikmesi ve anahtar basma durumu için birkaç değişken yapılandırılır
int is_switch_press = 0; // Anahtarı algılamak için status int debounce_delay = 300; // Gecikmeyi geri alma
In kurulum fonksiyonu, biz çıktı olarak LED pimini yapılandırılmış ve girdi olarak geçiş. Ayrıca UART'ı 9600 baud hızı ile yapılandırdık.
void setup () { / * * Bu işlev pin yapılandırmasını ayarlamak için kullanılır * / pinMode (led, OUTPUT); pinMode (SW, INPUT); Serial.begin (9600); }
Gelen ana döngü, ilk anahtar basılı olup olmadığını kontrol düğmesi bile hala gecikmeden sonra basıldığında anahtar gerçekten, basılı veya olmadığını belirlemek için kontrol tekrar ve tekrar biz bir ara bekleyip, biz özel baskı UART'daki çizgiler, yani Termal yazıcıdaki.
Baskı başlangıcında yerleşik led'i yükseğe ayarladık ve baskıdan sonra alçaltarak kapattık.
boşluk döngüsü () { is_switch_press = digitalRead (SW); // Anahtar basma durumunun okunması if (is_switch_press == HIGH) { delay ( debounce_delay); // düğmeye basma için gecikmeyi geri al if (is_switch_press == HIGH) { digitalWrite (led, HIGH); Serial.println ("Merhaba"); gecikme (100); Serial.println ("Bu bir Termal yazıcı arayüzüdür"); Serial.println ("Arduino UNO ile."); gecikme (100); Serial.println ("Circuitdigest.com"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("---------------------------- \ n \ r"); Serial.println ("Teşekkür Ederiz."); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); Serial.println ("\ n \ r"); digitalWrite (led, DÜŞÜK); } } else { digitalWrite (led, LOW); } }
Aşağıdaki tam Arduino kodunu ve Gösteri Videosunu kontrol edin.