İçindekiler:

Eski Noritake Itron VFD Modüllerini Kullanma: 7 Adım
Eski Noritake Itron VFD Modüllerini Kullanma: 7 Adım

Video: Eski Noritake Itron VFD Modüllerini Kullanma: 7 Adım

Video: Eski Noritake Itron VFD Modüllerini Kullanma: 7 Adım
Video: VFD (Vacuum Fluorescent Display) 1 : Çalışma prensipleri ve bağlantılarını belirleme 2024, Haziran
Anonim
Eski Noritake Itron VFD Modüllerini Kullanma
Eski Noritake Itron VFD Modüllerini Kullanma
Eski Noritake Itron VFD Modüllerini Kullanma
Eski Noritake Itron VFD Modüllerini Kullanma
Eski Noritake Itron VFD Modüllerini Kullanma
Eski Noritake Itron VFD Modüllerini Kullanma

Arada sırada ebay'de, arkadaşlarınızdan veya sadece ikinci el mağazalarında dolaşırken ilginç bölümlere rastlıyorsunuz. Bunun bir örneği, bir müşteriden aktarılan 1994 (veya daha önceki) tarihli büyük bir Noritake Itron 40 x 2 karakterli vakumlu floresan ekrandı.

Başlangıçta oldukça karmaşık görünüyordu, ancak biraz zaman harcadıktan sonra veri sayfaları bulundu ve basit bir seri arayüze sahip olduğu keşfedildi - ve biraz çalışmayla onu çalıştırdık, bu yüzden klasik VFD'lerle ilgileniyorsanız okumaya devam edin veya benzer bir birime sahip olmak.

Aşama 1:

resim
resim

Seri arabirim baud hızı, PCB üzerindeki jumper pedleri tarafından belirlenir.

Adım 2:

resim
resim

Bu nedenle, yukarıdaki tabloyu modülümüzdeki jumperlarla karşılaştırmak, bize eşliksiz 19200 bps veri hızı verir. Harika – seri çıkışlı ve 5V mantık seviyelerine sahip bir mikrodenetleyici ile kolayca böyle bir bağlantı oluşturabiliriz; Örneklerimiz için Arduino uyumlu bir kart kullanacağız.

Aşama 3:

VFD'yi kablolamak basittir - daha önce gösterildiği gibi CN2 etiketli beyaz jumperlara bakın. Pin 1 5V'dir (700 mA'ya kadar sunabilen harici bir kaynağa ihtiyacınız vardır), pin 2'den Arduino dijital pin 7'ye ve pin 3'ten Arduino'ya ve güç kaynağı GND'dir.

Arduino D7'yi TX yerine yazılım seri ile kullanıyoruz, böylece bir çizim yüklenirken ekranın çöp göstermemesi için. Ardından, ekrana metin göndermek yeterlidir, örneğin işte hızlı bir tanıtım taslağı:

// Noritake Itron VFD modülleriyle çalışma - model CU40026SCPB-T20A #include SoftwareSerial VFD(6, 7); // RX, TX

geçersiz kurulum()

{ VFD.başla(19200); }

boşluk döngüsü()

{ VFD.print("Merhaba dünya. Bu bir Noritake VFD'dir "); // Metni patlatabilirsiniz do {} while (1); }

4. Adım:

resim
resim

Aşağıdakilerden hangisiyle sonuçlanır…

Adım 5:

resim
resim

Ekranın rengine veya yoğunluğuna meraklı değilseniz, üstte biraz Perspex deneyin - örneğin…

Adım 6: Ekranı Kontrol Etme

Bu noktada veri sayfası veri sayfasına ihtiyacınız olacak. Daha önce gördüğünüz gibi, metin yazmak çok basittir – sadece.print fonksiyonlarını kullanın. Ancak, ekranın özelliklerini kontrol etmek için bireysel karakterlerin yanı sıra özel komutlar göndermek isteyebilirsiniz. Bunlar veri sayfasında özetlenmiştir – “Yazılım Komutları” ve “Karakter Yazı Tipleri” tablolarına bakın.

Tek komutlar göndermeniz gerekiyorsa – örneğin, 0x0E olan “görüntüyü temizle”, aşağıdaki gibi bir.write komutu kullanın:

VFD.write(0x0E); // ekranı temizle

Bazı komutlar kaçış kodları biçimindedir (bunları hatırlıyor musunuz?), bu nedenle örneğin parlaklığı %50'ye değiştirmek için ESC'yi ve ardından aşağıdaki baytı göndermeniz gerekir:

VFD.write(0x1B); // ESC VFD.write(0x4C); // parlaklık VFD.write(0x40); // %50 parlaklık

Bu bilgi ve veri sayfaları ile donanmış olarak artık tüm komutları çalıştırabilirsiniz. Veri sayfasına göre yazı tiplerini değiştirmek mümkündür, ancak hangi donanım jumper'ı veya denedik olursa olsun komut Japon katakana yazı tipinden ayrılmaz. Ekranınız değişebilir. "Ekran öncelikli yazma" işlevini kullanırsanız, ekrana sonraki yazmaları bir milisaniye geciktirerek uzatılmış "meşgul" süresine göre veri sayfasını dikkate alın.

7. Adım: Hepsini Bir Araya Getirmek

Her olası komutu açıklamak yerine, aşağıdaki gösterim taslağında belgelenen işlevlerin içine ortak olanları koydum ve ardından taslağın hızlı bir çalışma videosunu izliyorum.

// Noritake Itron VFD modülleriyle çalışma - model CU40026SCPB-T20A// John Boxall 2013

#Dahil etmek

YazılımSeri VFD(6, 7); // rx, tx

geçersiz kurulum()

{ VFD.başla(19200); // yazılım seri port resetVFD() için hızı ayarla; VFDclearsceen(); // VFD.write(0x12); // dikey kaydırma modu (açık) }

geçersiz sıfırlamaVFD()

// VFD denetleyicisinde bir yazılım sıfırlaması gerçekleştirir { VFD.write(0x1B); // ESC VFD.write(0x49); // yazılım sıfırlama }

geçersiz VFDnewline()

// imleci bir sonraki satırın başına taşır { VFD.write(0x0D); // satır başı VFD.write(0x0A); // satır besleme }

void VFDclearsceen()

// imleci sol üste taşır ve ekranı temizler { VFD.write(0x0E); // ekranı temizle VFD.write(0x0C); // form beslemesi - imleç sol üstte }

void VFDbrightness(int miktarı)

// VFD parlaklığını ayarlar - %25/50/75/100 // ESC dizilerini kullanır { geçiş(miktar) { durum 25: VFD.write(0x1B); // ESC VFD.write(0x4C); // parlaklık VFD.print(0); // %25 parlaklık kırılması; durum 50: VFD.write(0x1B); // ESC VFD.write(0x4C); // parlaklık VFD.write(0x40); // %50 parlaklık kırılması; durum 75: VFD.write(0x1B); // ESC VFD.write(0x4C); // parlaklık VFD.write(0x80); // %75 parlaklık kırılması; durum 100: VFD.write(0x1B); // ESC VFD.write(0x4C); // parlaklık VFD.write(0xC0); // %100 parlaklık } }

geçersiz VFDchars()

// seçilen yazı tipi için karakterleri çalıştır { for (int i = 21; i < 256; i++) { VFD.write(0x16); // imlecin altını çiz VFD.write(i); gecikme(100); } }

void moveCursor(bayt konumu)

// imleci hareket ettirir - üst sıra 0~39, alt sıra 40~79 // kullanılırsa dikey kaydırma modu kapatılmalıdır { VFD.write(0x1B); // ESC VFD.write(0x48); // imleci hareket ettir VFD.write(konum); // yer }

boşluk döngüsü()

{ VFD.write(0x16); // imlecin altını çiz VFD.print("Merhaba, dünya - birinci satır."); // Metin gecikmesini patlatabilirsiniz(1000); VFDnewline(); VFD.print("Merhaba dünya - ikinci satır."); gecikme(1000); VFDclearsceen(); VFDparlaklık(25); VFD.print("*** %25 parlaklık ***"); gecikme(1000); VFDclearsceen(); VFDparlaklık(50); VFD.print("*** %50 parlaklık ***"); gecikme(1000); VFDclearsceen(); VFDparlaklık(75); VFD.print("*** %75 parlaklık ***"); gecikme(1000); VFDclearsceen(); VFDparlaklık(100); VFD.print("*** %100 parlaklık ***"); gecikme(1000); VFDclearsceen();

VFDchars();

VFDclearsceen();

for (int i = 0; i < 80; i++) { VFD.write(0x16); // imlecin altı çizili moveCursor(i); VFD.print("X"); gecikme(100); moveCursor(i); VFD.print(" "); } VFDclearsceen(); }

Umarız bunu ilginç ve faydalı bulmuşsunuzdur.

Bu gönderi size pmdway.com tarafından getirildi - dünya çapında ücretsiz teslimat ile üreticiler ve elektronik meraklıları için her şey.

Önerilen: