Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
Av og til støter du på interessante deler på ebay, fra venner eller bare roter deg rundt i bruktbutikker. Et eksempel på dette var en stor vakuum-fluorescerende display fra Noritake Itron på 40 x 2 tegn fra 1994 (eller tidligere) som ble gitt videre fra en klient.
Opprinnelig så det ganske komplisert ut, men etter å ha brukt litt tid ble databladene funnet, og det ble oppdaget å ha et enkelt serielt grensesnitt - og med litt arbeid har vi fått det til å fungere, så les videre hvis du er interessert i klassiske VFD -er eller har en lignende enhet.
Trinn 1:
Den serielle grensesnittets baudhastighet bestemmes av jumperputene på kretskortet.
Steg 2:
Så å sammenligne tabellen ovenfor med hopperne på modulen vår gir oss en datahastighet på 19200 bps uten paritet. Flott - vi kan enkelt opprette en slik forbindelse med en mikrokontroller med en seriell utgang og 5V logiske nivåer; for våre eksempler bruker vi et Arduino-kompatibelt brett.
Trinn 3:
Det er enkelt å koble til VFD - se de hvite hopperne merket CN2 som vist tidligere. Pin 1 er 5V (du trenger en ekstern forsyning som kan tilby opptil 700 mA), pin 2 til Arduino digital pin 7, og pin 3 til Arduino og strømforsyning GND.
Vi bruker Arduino D7 med programvare seriell i stedet for TX, slik at skjermen ikke viser søppel når en skisse lastes opp. Da er det bare å sende tekst til displayet, for eksempel her er en rask demonstrasjonsskisse:
// Arbeider med Noritake Itron VFD -moduler - modell CU40026SCPB -T20A #include SoftwareSerial VFD (6, 7); // RX, TX
ugyldig oppsett ()
{VFD.begynnelse (19200); }
hulrom ()
{VFD.print ("Hei, verden. Dette er en Noritake VFD"); // Du kan sprenge ut tekst gjør {} mens (1); }
Trinn 4:
Som resulterer med følgende …
Trinn 5:
Hvis du ikke er opptatt av fargen eller intensiteten på skjermen, kan du prøve litt Perspex over toppen - for eksempel …
Trinn 6: Kontrollere skjermen
På dette tidspunktet trenger du databladet. Som du så tidligere, er det veldig enkelt å skrive tekst - bare bruk.print -funksjoner. Det kan imidlertid være lurt å sende individuelle tegn, samt spesielle kommandoer for å kontrollere aspekter av skjermen. Disse er beskrevet i databladet - se tabellene "Programvarekommandoer" og "Tegnfont".
Hvis du trenger å sende enkeltkommandoer - for eksempel "clear display" som er 0x0E, bruk en.write -kommando, for eksempel:
VFD.write (0x0E); // klar visning
Noen kommandoer er i formatet fluktkoder (husker du dem?), Så du må sende ESC og deretter følgende byte, for eksempel for å endre lysstyrken til 50%:
VFD.write (0x1B); // ESC VFD.write (0x4C); // lysstyrke VFD.write (0x40); // 50% lysstyrke
Bevæpnet med den kunnskapen og databladene kan du nå utføre alle kommandoene. I henhold til databladet er det mulig å endre fonter, men uansett hvilken maskinvarehopper eller kommando vi prøvde, ville det ikke vike fra den japanske katakana -skriften. Skjermen din kan variere. Hvis du bruker funksjonen "skjermprioritet skrive", ta hensyn til databladet med hensyn til den forlengede "opptatte" tiden ved å utsette påfølgende skriver til displayet med et millisekund.
Trinn 7: Sett alt sammen
I stedet for å forklare hver eneste mulige kommando, har jeg lagt de vanlige inne i dokumenterte funksjoner i demonstrasjonsskissen nedenfor, som etterfølges av en rask video av skissen i drift.
// Arbeider med Noritake Itron VFD -moduler - modell CU40026SCPB -T20A // John Boxall 2013
#inkludere
SoftwareSerial VFD (6, 7); // rx, tx
ugyldig oppsett ()
{VFD.begynnelse (19200); // angi hastighet for programvare seriell port resetVFD (); VFDclearsceen (); // VFD.write (0x12); // vertikal rullemodus (på)}
void resetVFD ()
// utfører en programvare -tilbakestilling på VFD -kontrolleren {VFD.write (0x1B); // ESC VFD.write (0x49); // programvare tilbakestille}
ugyldig VFDnewline ()
// flytter markøren til begynnelsen av neste linje {VFD.write (0x0D); // vognretur VFD.write (0x0A); // linjeskift }
void VFDclearsceen ()
// flytter markøren øverst til venstre og fjerner displayet {VFD.write (0x0E); // klar visning VFD.write (0x0C); // form feed - markør øverst til venstre}
ugyldig VFDlysstyrke (int beløp)
// angir VFD -lysstyrke - 25/50/75/100% // bruker ESC -sekvenser {switch (mengde) {case 25: VFD.write (0x1B); // ESC VFD.write (0x4C); // lysstyrke VFD.print (0); // 25% lysstyrkebrudd; sak 50: VFD.write (0x1B); // ESC VFD.write (0x4C); // lysstyrke VFD.write (0x40); // 50% lysstyrke; sak 75: VFD.write (0x1B); // ESC VFD.write (0x4C); // lysstyrke VFD.write (0x80); // 75% lysstyrkebrudd; sak 100: VFD.write (0x1B); // ESC VFD.write (0x4C); // lysstyrke VFD.write (0xC0); // 100% lysstyrke}}
ugyldige VFDchars ()
// kjøre gjennom tegn for valgt skrift {for (int i = 21; i <256; i ++) {VFD.write (0x16); // understreker markøren av VFD.write (i); forsinkelse (100); }}
void moveCursor (byte posisjon)
// flytter markøren - øverste rad er 0 ~ 39, nederste rad er 40 ~ 79 // vertikal rullemodus må være slått av hvis den brukes {VFD.write (0x1B); // ESC VFD.write (0x48); // flytte markøren VFD.write (posisjon); // plassering }
hulrom ()
{VFD.write (0x16); // understreke markøren av VFD.print ("Hei, verden - linje én."); // Du kan sprenge ut tekstforsinkelse (1000); VFDnewline (); VFD.print ("Hei, verden - linje to."); forsinkelse (1000); VFDclearsceen (); VFD -lysstyrke (25); VFD.print ("*** 25% lysstyrke ***"); forsinkelse (1000); VFDclearsceen (); VFD -lysstyrke (50); VFD.print ("*** 50% lysstyrke ***"); forsinkelse (1000); VFDclearsceen (); VFDlysstyrke (75); VFD.print ("*** 75% lysstyrke ***"); forsinkelse (1000); VFDclearsceen (); VFD -lysstyrke (100); VFD.print ("*** 100% lysstyrke ***"); forsinkelse (1000); VFDclearsceen ();
VFDchars ();
VFDclearsceen ();
for (int i = 0; i <80; i ++) {VFD.write (0x16); // understreke markøren av moveCursor (i); VFD.print ("X"); forsinkelse (100); moveCursor (i); VFD.print (""); } VFDclearsceen (); }
Vi håper du synes dette var interessant og nyttig.
Dette innlegget blir brakt til deg av pmdway.com - alt for produsenter og elektronikkentusiaster, med gratis levering over hele verden.
Anbefalt:
Privat TV-kanal for eldre: 4 trinn (med bilder)
Privat TV-kanal for eldre: Minner er en vanskelig sak for min bestemor som fyller 94 år i år. Så jeg la til en tv-kanal i TV-apparatet hennes for å hjelpe henne med å huske familiemedlemmer og viktige øyeblikk i livet hennes. Til dette har jeg brukt en gratis Dropbox -konto, en Raspber
Hvordan bruke DS1307 Bruke Arduino: 7 trinn
Hvordan bruke DS1307 Bruke Arduino: DS1307 er en sanntidsklokke IC (RTC). Denne IC brukes til å gi tidsdata. Tildelt tid starter fra sekunder, minutt, timer, dager, dato, måned og år. Denne IC krever ytterligere eksterne komponenter som Crystal og 3,6V batterier. Krystall
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: 10 trinn
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: I denne instruksen vil jeg vise hvordan du bruker SplatPost -skriveren av ShinyQuagsire. Uten klare instruksjoner ville noen som ikke har erfaring med kommandolinjen ha litt problemer. Målet mitt er å forenkle trinnene ned til poi
Neopixel Ws2812 Rainbow LED-glød med M5stick-C - Kjører Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: 5 trinn
Neopixel Ws2812 Rainbow LED-glød med M5stick-C | Running Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: Hei folkens i denne instruksen, vi lærer hvordan du bruker neopixel ws2812 LED eller led strip eller led matrise eller led ring med m5stack m5stick-C utviklingstavle med Arduino IDE, og vi skal lage et regnbuemønster med den
Hvordan bruke Wiimote som en datamus ved å bruke stearinlys som sensor !!: 3 trinn
Slik bruker du Wiimote som en datamus ved å bruke stearinlys som en sensor !!: Denne guiden viser deg hvordan du kobler din Wii -fjernkontroll (Wiimote) til din PC og bruker den som en mus