Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
Af en toe kom je interessante onderdelen tegen op ebay, van vrienden of gewoon rondneuzen in tweedehandswinkels. Een voorbeeld hiervan was een enorme Noritake Itron 40 x 2 karakters vacuüm-fluorescerende display uit 1994 (of eerder) die werd doorgegeven door een klant.
Oorspronkelijk zag het er behoorlijk ingewikkeld uit, maar na enige tijd te hebben doorgebracht, werden de datasheets gevonden en werd ontdekt dat het een eenvoudige seriële interface had - en met een beetje werk hebben we het werkend gekregen, dus lees verder als je geïnteresseerd bent in klassieke VFD's of een vergelijkbare eenheid hebben.
Stap 1:
De baudrate van de seriële interface wordt bepaald door de jumperpads op de printplaat.
Stap 2:
Dus het vergelijken van de bovenstaande tabel met de jumpers op onze module geeft ons een datasnelheid van 19200 bps zonder pariteit. Geweldig – we kunnen zo'n verbinding eenvoudig maken met een microcontroller met een seriële uitgang en 5V logische niveaus; voor onze voorbeelden gebruiken we een Arduino-compatibel bord.
Stap 3:
Het aansluiten van de VFD is eenvoudig - zie de witte jumpers met het label CN2 zoals eerder getoond. Pin 1 is 5V (je hebt een externe voeding nodig die tot 700 mA kan leveren), pin 2 naar Arduino digitale pin 7 en pin 3 naar Arduino en voeding GND.
We gebruiken Arduino D7 met softwareserieel in plaats van TX, zodat het display geen rommel weergeeft wanneer een schets wordt geüpload. Dan is het een kwestie van simpelweg tekst naar het display sturen, hier is bijvoorbeeld een snelle demonstratieschets:
// Werken met Noritake Itron VFD-modules - model CU40026SCPB-T20A #inclusief SoftwareSerial VFD (6, 7); // RX, TX
ongeldige setup()
{VFD.begin(19200); }
lege lus()
{ VFD.print("Hallo wereld. Dit is een Noritake VFD "); // Je kunt tekst uitblazen do {} while (1); }
Stap 4:
Wat resulteert in het volgende…
Stap 5:
Als je niet enthousiast bent over de kleur of intensiteit van het scherm, probeer dan wat Perspex eroverheen - bijvoorbeeld …
Stap 6: Het beeldscherm bedienen
Op dit punt hebt u het gegevensblad van het gegevensblad nodig. Zoals je eerder hebt gezien, is het schrijven van tekst heel eenvoudig - gebruik gewoon de.print-functies. Het kan echter zijn dat u afzonderlijke tekens wilt verzenden, evenals speciale opdrachten om aspecten van het display te regelen. Deze worden beschreven in het gegevensblad - zie de tabellen "Softwareopdrachten" en "Lettertypen tekens".
Als u enkele opdrachten moet verzenden, bijvoorbeeld "clear display", wat 0x0E is, gebruik dan een.write-opdracht, zoals:
VFD.schrijven (0x0E); // duidelijke weergave
Sommige commando's zijn in het formaat van escape-codes (weet je nog?), dus je moet ESC en vervolgens de volgende byte sturen, bijvoorbeeld om de helderheid te wijzigen in 50%:
VFD.schrijven (0x1B); // ESC VFD.write (0x4C); // helderheid VFD.write (0x40); // 50% helderheid
Gewapend met die kennis en de datasheets kun je nu alle commando's uitvoeren. Volgens het gegevensblad is het mogelijk om lettertypen te wijzigen, maar ongeacht de hardware-jumper of het commando dat we probeerden, zou het niet afwijken van het Japanse katakana-lettertype. Uw scherm kan variëren. Als u de functie "schrijven met schermprioriteit" gebruikt, let dan op het gegevensblad met betrekking tot de verlengde "bezet" tijd door volgende schrijfbewerkingen naar het scherm met een milliseconde uit te stellen.
Stap 7: Alles samenbrengen
In plaats van elke mogelijke opdracht uit te leggen, heb ik de meest voorkomende in gedocumenteerde functies in de onderstaande demonstratieschets geplaatst, die wordt gevolgd door een korte video van de schets in werking.
// Werken met Noritake Itron VFD-modules - model CU40026SCPB-T20A// John Boxall 2013
#erbij betrekken
SoftwareSeriële VFD (6, 7); // rx, tx
ongeldige setup()
{VFD.begin(19200); // snelheid instellen voor software seriële poort resetVFD(); VFDclearsceen(); // VFD.schrijven (0x12); // verticale scroll-modus (aan)}
ongeldig resetVFD()
// voert een software-reset uit op de VFD-controller {VFD.write (0x1B); // ESC VFD.write (0x49); // software-reset}
ongeldig VFDnewline()
// verplaatst de cursor naar het begin van de volgende regel { VFD.write (0x0D); // wagenretour VFD.write (0x0A); // regelinvoer}
void VFDclearsceen()
// verplaatst de cursor naar linksboven en wist het scherm {VFD.write (0x0E); // duidelijke weergave VFD.write (0x0C); // formulierfeed - cursor naar linksboven }
void VFDbrightness (int bedrag)
// stelt VFD-helderheid in - 25/50/75/100% // gebruikt ESC-reeksen {switch (bedrag) {geval 25: VFD.write (0x1B); // ESC VFD.write (0x4C); // helderheid VFD.print (0); // 25% helderheidsonderbreking; geval 50: VFD.write (0x1B); // ESC VFD.write (0x4C); // helderheid VFD.write (0x40); // 50% helderheidsonderbreking; geval 75: VFD.write(0x1B); // ESC VFD.write (0x4C); // helderheid VFD.write (0x80); // 75% helderheidsonderbreking; geval 100: VFD.write (0x1B); // ESC VFD.write (0x4C); // helderheid VFD.write (0xC0); // 100% helderheid } }
void VFDchars()
// doorloop tekens voor geselecteerd lettertype { for (int i = 21; i < 256; i++) { VFD.write (0x16); // onderstreep de cursor van VFD.write (i); vertraging (100); } }
void moveCursor (bytepositie)
// verplaatst de cursor - bovenste rij is 0 ~ 39, onderste rij is 40 ~ 79 // verticale scroll-modus moet worden uitgeschakeld als deze wordt gebruikt { VFD.write (0x1B); // ESC VFD.write (0x48); // verplaats cursor VFD.write (positie); // plaats }
lege lus()
{ VFD.schrijven (0x16); // onderstreep de cursor van VFD.print ("Hallo, wereld - regel één."); // U kunt tekstvertraging (1000) uitblazen; VFDnewline(); VFD.print("Hallo, wereld - regel twee."); vertraging (1000); VFDclearsceen(); VFD-helderheid (25); VFD.print("*** 25% helderheid ***"); vertraging (1000); VFDclearsceen(); VFD-helderheid (50); VFD.print ("*** 50% helderheid ***"); vertraging (1000); VFDclearsceen(); VFD-helderheid (75); VFD.print("*** 75% helderheid ***"); vertraging (1000); VFDclearsceen(); VFD-helderheid (100); VFD.print("*** 100% helderheid ***"); vertraging (1000); VFDclearsceen();
VFDchars();
VFDclearsceen();
for (int i = 0; i < 80; i++) { VFD.write (0x16); // onderstreep de cursor uit moveCursor (i); VFD.print("X"); vertraging (100); moveCursor(i); VFD.print(" "); } VFDclearsceen(); }
We hopen dat je dit interessant en nuttig vond.
Dit bericht wordt u aangeboden door pmdway.com - alles voor makers en elektronica-enthousiastelingen, met gratis levering wereldwijd.
Aanbevolen:
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken om DIMP 2 of DA PIMP te Bit-bang-programma te gebruiken 2: 9 stappen
Hoe de GPIO-pinnen van een Raspberry Pi en Avrdude te gebruiken voor Bit-bang-programma DIMP 2 of DA PIMP 2: Dit zijn stapsgewijze instructies voor het gebruik van een Raspberry Pi en het gratis open-source commando avrdude to bit-bang -programmeer een DIMP 2 of DA PIMP 2. Ik neem aan dat je bekend bent met je Raspberry Pi en de LINUX-opdrachtregel. Je hoeft niet
Een auto-stereo gebruiken om mp3's af te spelen op oudere stereo-installaties - Ajarnpa
Een autoradio gebruiken om mp3's af te spelen op oudere thuisstereo: Mp3-bestanden afspelen op thuisstereo Ik heb de afgelopen twee decennia ongeveer 5000 klassieke rockmelodieën gedownload of geript en had een eenvoudige manier nodig om digitale muziekbestanden af te spelen op een oudere thuisstereo. Ik heb een thuisbioscoopcomputer (HTC) aangesloten
Mac Terminal gebruiken en toetsfuncties gebruiken: 4 stappen
Mac Terminal gebruiken en toetsfuncties gebruiken: We laten u zien hoe u de MAC Terminal opent. We zullen u ook enkele functies binnen de Terminal laten zien, zoals ifconfig, mappen wijzigen, toegang tot bestanden en arp. Met Ifconfig kunt u uw IP-adres en uw MAC-advertentie controleren
Orange Pi gebruiken zonder monitor door SSH en VNC-server te gebruiken - Ajarnpa
Gebruik Orange Pi zonder monitor door SSH en VNC-server te gebruiken: Orange Pi is als een minicomputer. Het heeft alle basispoorten die een normale computer heeft.Zoals HDMIUSBEthernetIT heeft een aantal speciale speciale poorten ZoalsUSB OTGGPIO-headersSD-kaartsleufParallelle camerapoortAls u orange pi wilt bedienen, moet u o
Upgrade een oudere Zwitsers zakmes Memory Stick naar 2 GB - Ajarnpa
Upgrade een oudere Zwitserse zakmes-geheugenstick naar 2 GB: in deze instructable zal ik de stappen laten zien die nodig zijn om de bestaande USB-flashgeheugen-PCB van een Victorinox Securelock "Zwitsers zakmes"-geheugenstick te verwijderen en deze te vervangen door een USB-geheugenstick met grotere capaciteit PCB (Hier gebruik ik een Lexar 2GB Firefly die