Innehållsförteckning:

Använda äldre Noritake Itron VFD -moduler: 7 steg
Använda äldre Noritake Itron VFD -moduler: 7 steg

Video: Använda äldre Noritake Itron VFD -moduler: 7 steg

Video: Använda äldre Noritake Itron VFD -moduler: 7 steg
Video: En underjordisk antikaffär där du kan träffa sällsynta koppar 2024, Juli
Anonim
Använda äldre Noritake Itron VFD -moduler
Använda äldre Noritake Itron VFD -moduler
Använda äldre Noritake Itron VFD -moduler
Använda äldre Noritake Itron VFD -moduler
Använda äldre Noritake Itron VFD -moduler
Använda äldre Noritake Itron VFD -moduler

Då och då stöter du på intressanta delar på ebay, från vänner eller bara rotar runt i second hand-butiker. Ett exempel på detta var en enorm vakuumfluorescerande display från Noritake Itron på 40 x 2 tecken från 1994 (eller tidigare) som skickades vidare från en klient.

Ursprungligen såg det ganska komplext ut, men efter att ha spenderat tid hittades databladen och det upptäcktes att det hade ett enkelt seriellt gränssnitt - och med lite arbete har vi fått det att fungera, så läs vidare om du är intresserad av klassiska VFD eller har en liknande enhet.

Steg 1:

Bild
Bild

Den seriella gränssnittets överföringshastighet bestäms av bygelkuddarna på kretskortet.

Steg 2:

Bild
Bild

Så att jämföra tabellen ovan med hopparna på vår modul ger oss en datahastighet på 19200 bps utan paritet. Bra - vi kan enkelt skapa en sådan anslutning med en mikrokontroller med en seriell utgång och 5V logiska nivåer; för våra exempel använder vi ett Arduino-kompatibelt kort.

Steg 3:

Anslutning till VFD är enkel - se de vita hopparna märkta CN2 som visat tidigare. Stift 1 är 5V (du behöver en extern strömförsörjning som kan erbjuda upp till 700 mA), stift 2 till Arduino digital stift 7 och stift 3 till Arduino och strömförsörjning GND.

Vi använder Arduino D7 med programvara seriell istället för TX så att displayen inte visar skräp när en skiss laddas upp. Sedan är det bara att skicka text till displayen, till exempel här är en snabb demonstrationsskiss:

// Arbetar med Noritake Itron VFD -moduler - modell CU40026SCPB -T20A #include SoftwareSerial VFD (6, 7); // RX, TX

void setup ()

{VFD.begin (19200); }

void loop ()

{VFD.print ("Hej, världen. Detta är en Noritake VFD"); // Du kan spränga ut text gör {} medan (1); }

Steg 4:

Bild
Bild

Vilket resulterar med följande …

Steg 5:

Bild
Bild

Om du inte är sugen på skärmens färg eller intensitet, prova lite Perspex överst - till exempel …

Steg 6: Kontroll av displayen

Vid denna tidpunkt behöver du databladets datablad. Som du såg tidigare är det mycket enkelt att skriva text - använd bara.print -funktioner. Men du kanske vill skicka enskilda tecken, samt specialkommandon för att styra aspekter av displayen. Dessa beskrivs i databladet - se tabellerna "Programvarukommandon" och "Teckensnitt".

Om du behöver skicka enstaka kommandon - till exempel "clear display" som är 0x0E, använd ett.write -kommando, till exempel:

VFD.write (0x0E); // tydlig display

Vissa kommandon är i formatet escape -koder (kommer du ihåg dem?) Så du måste skicka ESC sedan följande byte, till exempel för att ändra ljusstyrkan till 50%:

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

Beväpnad med denna kunskap och datablad kan du nu utföra alla kommandon. Enligt databladet är det möjligt att ändra teckensnitt men oavsett vilken hårdvarubygel eller kommando vi försökte skulle det inte avvika från det japanska katakana -teckensnittet. Din skärm kan variera. Om du använder funktionen "skärmprioritetsskrivning", följ databladet med avseende på den förlängda "upptagna" tiden genom att fördröja efterföljande skrivningar till displayen med en millisekund.

Steg 7: Sätta ihop allt

I stället för att förklara alla möjliga kommandon har jag lagt de vanliga i dokumenterade funktioner i demonstrationsskissen nedan, som följs av en snabb video av skissen i drift.

// Arbetar med Noritake Itron VFD -moduler - modell CU40026SCPB -T20A // John Boxall 2013

#omfatta

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

void setup ()

{VFD.begin (19200); // Ställ in hastighet för programvara seriell port resetVFD (); VFDclearsceen (); // VFD.write (0x12); // vertikalt rullningsläge (på)}

void resetVFD ()

// utför en programåterställning på VFD -styrenheten {VFD.write (0x1B); // ESC VFD.write (0x49); // programåterställning}

void VFDnewline ()

// flyttar markören till början av nästa rad {VFD.write (0x0D); // vagnretur VFD.write (0x0A); // radmatning}

void VFDclearsceen ()

// flyttar markören uppe till vänster och rensar displayen {VFD.write (0x0E); // tydlig display VFD.write (0x0C); // formulärmatning - markör uppe till vänster}

ogiltig VFD -ljusstyrka (int belopp)

// ställer in VFD -ljusstyrka - 25/50/75/100% // använder ESC -sekvenser {switch (mängd) {case 25: VFD.write (0x1B); // ESC VFD.write (0x4C); // ljusstyrka VFD.print (0); // 25% ljusstyrka; fall 50: VFD.write (0x1B); // ESC VFD.write (0x4C); // ljusstyrka VFD.write (0x40); // 50% ljusstyrka; fall 75: VFD.write (0x1B); // ESC VFD.write (0x4C); // ljusstyrka VFD.write (0x80); // 75% ljusstyrka; fall 100: VFD.write (0x1B); // ESC VFD.write (0x4C); // ljusstyrka VFD.write (0xC0); // 100% ljusstyrka}}

ogiltiga VFDchars ()

// köra igenom tecken för valt teckensnitt {för (int i = 21; i <256; i ++) {VFD.write (0x16); // understryk markören från VFD.write (i); fördröjning (100); }}

void moveCursor (byte position)

// flyttar markören - översta raden är 0 ~ 39, nedre raden är 40 ~ 79 // vertikalt rullningsläge måste stängas av om det används {VFD.write (0x1B); // ESC VFD.write (0x48); // flytta markören VFD.write (position); // plats}

void loop ()

{VFD.write (0x16); // understryk markören från VFD.print ("Hej, värld - rad ett."); // Du kan spränga bort textfördröjning (1000); VFDnewline (); VFD.print ("Hej, värld - rad två."); fördröjning (1000); VFDclearsceen (); VFD -ljusstyrka (25); VFD.print ("*** 25% ljusstyrka ***"); fördröjning (1000); VFDclearsceen (); VFD -ljusstyrka (50); VFD.print ("*** 50% ljusstyrka ***"); fördröjning (1000); VFDclearsceen (); VFD -ljusstyrka (75); VFD.print ("*** 75% ljusstyrka ***"); fördröjning (1000); VFDclearsceen (); VFD -ljusstyrka (100); VFD.print ("*** 100% ljusstyrka ***"); fördröjning (1000); VFDclearsceen ();

VFDchars ();

VFDclearsceen ();

för (int i = 0; i <80; i ++) {VFD.write (0x16); // understryk markören av moveCursor (i); VFD.print ("X"); fördröjning (100); moveCursor (i); VFD.print (""); } VFDclearsceen (); }

Vi hoppas att du tyckte att detta var intressant och hjälpsamt.

Detta inlägg kommer till dig av pmdway.com - allt för tillverkare och elektronikentusiaster, med gratis leverans över hela världen.

Rekommenderad: