Kazalo:

Uporaba starejših modulov VFD Noritake Itron: 7 korakov
Uporaba starejših modulov VFD Noritake Itron: 7 korakov
Anonim
Uporaba starejših modulov VFD Noritake Itron
Uporaba starejših modulov VFD Noritake Itron
Uporaba starejših modulov VFD Noritake Itron
Uporaba starejših modulov VFD Noritake Itron
Uporaba starejših modulov VFD Noritake Itron
Uporaba starejših modulov VFD Noritake Itron

Vedno znova naletite na zanimive dele na ebayu, od prijateljev ali pa samo pohajkovanje po rabljenih trgovinah. Primer tega je bil ogromen vakuumsko-fluorescenčni zaslon Noritake Itron 40 x 2 znakov iz leta 1994 (ali prej), ki ga je posredoval odjemalec.

Sprva je bilo videti precej zapleteno, vendar so po nekaj časa našli podatkovne liste in ugotovili, da ima preprost serijski vmesnik - in z malo dela smo to uspeli, zato preberite, če vas zanimajo klasični VFD -ji ali imajo podobno enoto.

Korak 1:

Slika
Slika

Hitrost prenosa zaporednega vmesnika je določena s skakalnimi ploščicami na tiskanem vezju.

2. korak:

Slika
Slika

Če primerjamo zgornjo tabelo s skakalci v našem modulu, dobimo hitrost podatkov 19200 b / s brez parnosti. Odlično - takšno povezavo zlahka ustvarimo z mikrokrmilnikom s serijskim izhodom in 5V logičnimi nivoji; za naše primere bomo uporabili ploščo, združljivo z Arduino.

3. korak:

Ožičenje VFD je preprosto - glejte bele mostičke z oznako CN2, kot je prikazano prej. Pin 1 je 5V (potrebujete zunanje napajanje, ki lahko ponudi do 700 mA), pin 2 na Arduino digitalni pin 7 in pin 3 na Arduino in napajalnik GND.

Arduino D7 uporabljamo s serijsko programsko opremo namesto TX, tako da zaslon ne prikazuje smeti, ko se nalaga skica. Potem gre samo za pošiljanje besedila na zaslon, na primer tukaj je hitra predstavitvena skica:

// Delo z moduli Noritake Itron VFD - model CU40026SCPB -T20A #include SoftwareSerial VFD (6, 7); // RX, TX

void setup ()

{VFD.začetek (19200); }

void loop ()

{VFD.print ("Pozdravljeni, svet. To je VFD Noritake"); // Besedilo lahko razstrelite do {} while (1); }

4. korak:

Slika
Slika

Kar ima za posledico naslednje…

5. korak:

Slika
Slika

Če niste navdušeni nad barvo ali intenzivnostjo zaslona, poskusite nekaj Perspexa na vrhu - na primer …

6. korak: Upravljanje zaslona

Na tej točki boste potrebovali podatkovni list s podatkovnim listom. Kot ste že videli, je pisanje besedila zelo preprosto - uporabite samo funkcije.print. Vendar boste morda želeli poslati posamezne znake in posebne ukaze za nadzor vidikov zaslona. Ti so opisani v podatkovnem listu - glejte tabeli »Ukazi programske opreme« in »Pisave znakov«.

Če morate poslati posamezne ukaze - na primer »clear display«, ki je 0x0E, uporabite ukaz.write, na primer:

VFD.write (0x0E); // čist prikaz

Nekateri ukazi so v obliki kod za izhod v sili (se jih spomnite?), Zato morate poslati ESC in nato naslednji bajt, na primer za spremembo svetlosti na 50%:

VFD.write (0x1B); // ESC VFD.write (0x4C); // svetlost VFD.write (0x40); // 50% svetlost

S tem znanjem in podatkovnimi listi lahko zdaj izvajate vse ukaze. Glede na podatkovni list je mogoče spremeniti pisave, vendar ne glede na to, kateri strojni mostiček ali ukaz smo poskusili, se ne bi premaknil iz japonske pisave katakana. Vaš zaslon se lahko razlikuje. Če uporabljate funkcijo "prednostnega zapisa zaslona", upoštevajte podatkovni list glede na podaljšani čas "zasedenosti", tako da poznejše zapise na zaslon odložite za milisekundo.

7. korak: Vse skupaj

Namesto da bi razložil vsak možen ukaz, sem v spodaj prikazano skico spravil običajne znotraj dokumentiranih funkcij, ki jim sledi hiter video posnetka, ki deluje.

// Delo z moduli VFD Noritake Itron - model CU40026SCPB -T20A // John Boxall 2013

#vključi

SoftwareSerial VFD (6, 7); // rx, tx

void setup ()

{VFD.začetek (19200); // nastavite hitrost za ponastavitev serijskih vrat programske opremeVFD (); VFDclearsceen (); // VFD.write (0x12); // način navpičnega drsenja (vklopljeno)}

ponastavitev voidVFD ()

// izvede ponastavitev programske opreme na krmilniku VFD {VFD.write (0x1B); // ESC VFD.write (0x49); // ponastavitev programske opreme}

void VFDnewline ()

// premakne kazalec na začetek naslednje vrstice {VFD.write (0x0D); // vrnitev nosilca VFD.write (0x0A); // vir vrstic}

void VFDclearsceen ()

// premakne kazalec v zgornji levi del in počisti prikaz {VFD.write (0x0E); // počisti prikaz VFD.write (0x0C); // vir obrazca - kazalec zgoraj levo}

void VFDsvetlost (int znesek)

// nastavi svetlost VFD - 25/50/75/100% // uporablja zaporedja ESC {switch (količina) {primer 25: VFD.write (0x1B); // ESC VFD.write (0x4C); // svetlost VFD.print (0); // 25% prekinitev svetlosti; primer 50: VFD.write (0x1B); // ESC VFD.write (0x4C); // svetlost VFD.write (0x40); // 50% prekinitev svetlosti; primer 75: VFD.write (0x1B); // ESC VFD.write (0x4C); // svetlost VFD.write (0x80); // 75% prekinitev svetlosti; primer 100: VFD.write (0x1B); // ESC VFD.write (0x4C); // svetlost VFD.write (0xC0); // 100% svetlost}}

void VFDchars ()

// teče skozi znake za izbrano pisavo {for (int i = 21; i <256; i ++) {VFD.write (0x16); // podčrtaj kazalec izklopljen VFD.write (i); zamuda (100); }}

void moveCursor (položaj bajtov)

// premakne kazalec - zgornja vrstica je 0 ~ 39, spodnja vrstica je 40 ~ 79 // način navpičnega drsenja mora biti izklopljen, če se uporablja {VFD.write (0x1B); // ESC VFD.write (0x48); // premakni kazalec VFD.write (položaj); // lokacija}

void loop ()

{VFD.write (0x16); // podčrtaj kazalec izklopljen VFD.print ("Pozdravljeni, svet - prva vrstica."); // Lahko izklopite zakasnitev besedila (1000); VFDnewline (); VFD.print ("Pozdravljeni, svet - druga vrstica."); zamuda (1000); VFDclearsceen (); Svetlost VFD (25); VFD.print ("*** 25% svetlost ***"); zamuda (1000); VFDclearsceen (); Svetlost VFD (50); VFD.print ("*** 50% svetlost ***"); zamuda (1000); VFDclearsceen (); Svetlost VFD (75); VFD.print ("*** 75% svetlost ***"); zamuda (1000); VFDclearsceen (); Svetlost VFD (100); VFD.print ("*** 100% svetlost ***"); zamuda (1000); VFDclearsceen ();

VFDchars ();

VFDclearsceen ();

for (int i = 0; i <80; i ++) {VFD.write (0x16); // podčrtaj kurzor off moveCursor (i); VFD.print ("X"); zamuda (100); moveCursor (i); VFD.print (""); } VFDclearsceen (); }

Upamo, da vam je bilo to zanimivo in koristno.

To objavo vam ponuja pmdway.com - vse za ustvarjalce in navdušence nad elektroniko z brezplačno dostavo po vsem svetu.

Priporočena: