Indholdsfortegnelse:

Lydniveaumåler fra en upcycled VFD: 7 trin
Lydniveaumåler fra en upcycled VFD: 7 trin

Video: Lydniveaumåler fra en upcycled VFD: 7 trin

Video: Lydniveaumåler fra en upcycled VFD: 7 trin
Video: Lyd - kalibrator , SC-941 2024, Juli
Anonim
Image
Image

VFD - Vacuum Fluorescent Displays, en slags Dinosaur of Display Technology, der stadig er ret flot og cool, findes i mange forældede og forsømte hjemmelektronik -enheder. Så skal vi dumpe dem? Nej, vi kan stadig bruge dem. Det kostede en lille indsats, men det er det værd.

Trin 1: Lær displayet at kende

Lær displayet at kende
Lær displayet at kende

En VFD har 3 hoveddele

- Filament (blå)

- Porte (grøn)

- Plader (gule) belagt med fosfor, som lyser, når de rammes af elektroner.

Elektroner bevæger sig fra filament til pladerne og passerer portene. For at dette skal ske, skal pladen være omkring 12 til 50V mere positiv end filamentet (de negative elektroner trækkes mod den positive side). Portene vil tillade elektronerne at flyve igennem, når deres spænding er tæt på pladernes. Ellers, når porte har en lav eller negativ spænding, hopper elektronerne af og når ikke pladerne, hvilket resulterer i intet lys.

Når du ser nærmere på displayet, vil du se, at portene (de punkterede metalplader) dækker flere plader (displayelementerne bag), så en port skifter et antal displayelementer. Et antal plader er også forbundet på en pin. Dette resulterer i en matrix, som skal køres på en multiplekset måde. Du skifter på en port ad gangen og tænder også for pladerne, der skulle lyse under denne port, derefter tænder du for den næste port og nogle andre plader.

For at teste skærmen kan du kigge efter glødetrådsstifterne - normalt de yderste - og anvende ca. 3V på den ved hjælp af 2 AA -batterier. Brug ikke højere spænding, dette kan blæse de fine trådtråde. Så bliver ledningerne synlige som røde glødende stammer, du plejede at bruge meget spænding!

Påfør derefter 9/12/18V (2x 9V batterier) på en låge og en tallerken (se bare ind i displayet, hvor benene til metalportene er), dette skal lyse et displayelement et sted.

På billederne har jeg simpelthen tilsluttet (næsten) alle porte og anoder til 12V, dette tænder alt.

Tag nogle noter om, hvilken pin der lyser hvilket display segment! Dette er nødvendigt for tilslutning og programmering af displayet.

Trin 2: Udfordring 1: HighVoltage

Udfordring 1: HighVoltage
Udfordring 1: HighVoltage

Som vi har set i teori, har pladerne/portene brug for en spænding på 12 til 50 volt for at være attraktive for elektroner og få en god belysning af fosforet. I forbrugerudstyr tages denne spænding normalt fra en ekstra fane på hovedtransformatoren. Som en DIY -fyr har du ikke transformere med ekstra faner, og du foretrækker alligevel enkle 5V USB -forsyninger:)

Derefter har vi brug for mere spænding, når ~ 12V fra vores test kører et multiplexmatrixdisplay, fordi displaysegmenterne kun lyser kort efter hinanden, hvilket resulterer i en dæmpningseffekt (PWM -stil med et forhold 1: NumberOfGates). Så vi bør sigte mod 50V.

Der er et antal kredsløb til at øge spændinger fra så lavt som 5V til 30V..50V, men de fleste leverer kun en lille mængde strøm, som et par mA@50V til den driver, jeg viser i de næste trin, som bruger pullup -modstande, dette er ikke tilstrækkeligt. Jeg endte med at bruge et af de cheep Voltage booster kredsløb, du kan finde på Amazon eller eBay (søg efter "XL6009"), det konverterer 5V til ~ 35V med høj strøm, hvilket er godt nok.

Disse XL6009 -baserede enheder kan pimpe til output ~ 50V ved at ændre en modstand. Modstanden er markeret på billederne med en rød pil. Du kan også søge efter et datablad for XL6009, som indeholder den nødvendige information til beregning af udgangsspændingen.

Trin 3: Udfordring 2: Få filamentet drevet

Udfordring 2: Få filamentet drevet
Udfordring 2: Få filamentet drevet

Filamentet skal drives med ca. 3V (afhænger af displayet). Gerne AC og på en eller anden måde tapet i midten til GND. Puh, 3 ønsker i en række.

Igen i de originale enheder ville dette blive opnået med en fane på transformeren og en slags Z -diodeforbindelse til GND eller et sted endnu mere mærkeligt (som en -24V skinne)

Nogle forsøg senere fandt jeg ud af, at en simpel AC -spænding over GND er god nok. Jævnstrømsspænding, ligesom 2 AA -batterier, fungerer også, men det producerer en lysstyrkegradient fra den ene side af VFD til den anden, deres er nogle eksempler på youtube, når du leder efter "VFD".

Min løsning

For at få en AC-spænding er dette en spænding, der konstant ændrer dens polaritet, jeg kan bruge et H-Bridge kredsløb. Disse er meget almindelige inden for robotik til styring af jævnstrømsmotorer. H-broen gør det muligt at ændre retningen (polaritet) og også motorens hastighed.

Min foretrukne DIY -elektronikleverandør tilbyder et lille modul "Pololu DRV8838", der gør præcis, hvad jeg vil.

Den eneste nødvendige input er strøm og en urkilde, så tingen skifter polaritet konstant. Ur? Det viser sig, at et simpelt RC -element mellem den negative output og PHASE -input kan fungere som en oscillator for denne ting.

Billedet viser tilslutningen af motordriveren til at generere vekselstrøm til VFD -filamentet.

Trin 4: Grænseflade med 5V logik

Grænseflade med 5V logik
Grænseflade med 5V logik

Nu kan vi tænde hele displayet, fantastisk. Hvordan viser vi en enkelt prik/ciffer?

Vi skal skifte hver port og anode på et bestemt tidspunkt. Dette kaldes multiplexing. Jeg har set nogle andre tutorials om dette her. F.eks (https://www.instructables.com/id/Seven-Segment-Di…

Vores VFD har masser af stifter, alle disse skal drives med forskellige værdier, så hver skulle bruge en pin på controlleren. De fleste små controllere har ikke så mange stifter. Så vi bruger skifteregistre som portudvidere. Disse forbinder med et ur, en data og en udvalgt linje til controllerchippen (kun 3 ben) og kan kaskades for at give så mange outputstifter som nødvendigt. En Arduino kan bruge sin SPI til effektivt at serialisere data ud til disse chips.

På displayet er der også en chip til dette formål. "TPIC6b595" er et skifteregister med åbne afløbsudgange, der håndterer op til 50V. Åben afløb betyder, at udgangen er åben, når den er indstillet til SAND/1/HØJ, og en intern transistor skifter aktivt til den lave side FALSK/0/LAV. Ved tilføjelse af en modstand fra udgangsstiften til V+ (50V) trækkes stiften op til dette spændingsniveau, så længe den interne transistor ikke trækker den ned til GND.

Det viste kredsløb kaskader 3 af disse skiftregistre. Modstandsarrays bruges som pull -up'er. Kredsløbet indeholder også filamentstrømskifter (H-bro) og en simpel spændingsforstærker, som senere blev afvist og erstattet med XL6009-kortet.

Trin 5: Lav en niveaumåler

Lav en niveaumåler
Lav en niveaumåler
Lav en niveaumåler
Lav en niveaumåler

Til dette bruger jeg et Dot matrix display med 20 cifre og 5x12 pixels pr. Ciffer. Den har 20 porte, en for hvert ciffer, og hver pixel har en pladestift. Kontrol af hver pixel ville kræve 60+20 individuelle kontrollerbare pins f.eks. 10x TPIC6b595 chips.

Jeg har kun 24 styrbare pins fra 3x TPIC6b595'er. Så jeg forbinder en flok pixel til en større niveauindikatorpixel. Faktisk kan jeg opdele hvert ciffer i 4, fordi jeg kan styre 20+4 ben. Jeg bruger 2x5 pixels pr. Niveauindikator trin. Benene til disse pixels er loddet sammen, ser lidt kaotisk ud, men det virker:)

PS: Fandt lige dette projekt, hvor dette display styres pixelvis.

Trin 6: Programmering af Arduino

Programmering af Arduino
Programmering af Arduino
Programmering af Arduino
Programmering af Arduino

Som nævnt vil skiftregistret blive forbundet til en hardware -SPI. I pinout -diagrammet over Leonardo (billede fra Arduino) kaldes stifterne "SCK" og "MOSI" og ser lilla ud. MOSI står for MasterOutSlaveIn, det er dér, at datoen er serialiseret.

Hvis du bruger en anden Arduino, skal du søge pinout -diagrammet efter SCK og MOSI og bruge disse ben i stedet. RCK -signalet skal holdes på pin 2, men dette kan flyttes, når dette også ændres i koden.

Skitsen kører AD -konverteren ved pin A0 som en afbrydelsestjeneste. Så AD -værdierne læses konstant og tilføjes til en global variabel. Efter nogle udlæsninger er der sat et flag, og hovedsløjfen opfanger annonceværdien, omdanner den til hvilken pin, der gør hvad og flytter den ud til SPI'en til TPIC6b. Displayopdateringen skal sløjfes over alle cifrene/porte over og igen med en sådan hastighed, at det menneskelige øje ikke vil se det flimre.

Præcis den slags job en Arduino blev lavet til:)

Her kommer koden til mit niveau meter display …

github.com/mariosgit/VFD/tree/master/VFD_T…

Trin 7: PCB

PCB
PCB
PCB
PCB
PCB
PCB

Jeg lavede et par PCB'er til dette projekt, bare for at få et pænt og rent byggeri. Dette printkort indeholder en anden spændingsforstærker, som ikke leverede nok strøm, så jeg brugte den ikke her og injicerede 50V fra XL6009 -booster i stedet.

Den vanskelige del er at tilføje VFD, da disse kan have alle slags former, jeg forsøgte at gøre PCB noget generisk i VFD -stikdelen. I sidste ende skal du finde ud af pinout til din skærm og tilslutte ledningerne på en eller anden måde og til sidst ændre programkoden lidt for at få alt til at passe sammen.

PCB'et er tilgængeligt her:

Anbefalede: