Innehållsförteckning:

Ljudnivåmätare från en uppbyggd VFD: 7 steg
Ljudnivåmätare från en uppbyggd VFD: 7 steg

Video: Ljudnivåmätare från en uppbyggd VFD: 7 steg

Video: Ljudnivåmätare från en uppbyggd VFD: 7 steg
Video: Lär dig mer om buller - Rickard Öqvist 2024, December
Anonim
Image
Image

VFD - Vacuum Fluorescent Displays, en slags Dinosaur of Display Technology, fortfarande ganska snygg och cool, finns i många föråldrade och försummade hemelektroniska enheter. Så ska vi dumpa dem? Nej, vi kan fortfarande använda dem. Det kostade lite ansträngning men det är värt det.

Steg 1: Lär känna displayen

Lär känna displayen
Lär känna displayen

En VFD har 3 huvuddelar

- Glödtråd (blå)

- Portar (grön)

- Plattor (gula) belagda med fosfor som lyser när de träffas av elektroner.

Elektroner reser från glödtråd till plattorna och passerar grindarna. För att detta ska hända måste plattan vara cirka 12 till 50V mer positiv än glödtråden (de negativa elektronerna dras mot den positiva sidan). Portarna låter elektronerna flyga igenom när deras spänning är nära plattans. Annars, när grindar har en låg eller negativ spänning, studsar elektronerna av och når inte plattorna, vilket resulterar i inget ljus.

När du tittar noga på displayen ser du att portarna (de skiljaktiga metallplattorna) täcker flera plattor (displayelementen bakom), så en grind växlar ett antal displayelement. Ett antal plattor är också anslutna ihop på en stift. Detta resulterar i en matris, som måste köras på ett multiplexerat sätt. Du växlar på en grind i taget och tänder också plattorna som ska lysa under den här grinden, slår sedan på nästa grind och några andra plattor.

För att testa displayen kan du leta efter glödstiftstiften - vanligtvis de yttersta - och applicera cirka 3V på den med 2 AA -batterier. Använd inte högre spänning, detta kan blåsa de fina glödtrådarna. Då blir ledningarna synliga som röda glödande stammar, du brukade mycket spänning!

Applicera sedan 9/12/18V (2x 9V batterier) på en grind och en tallrik (titta bara in i displayen där stiften för metallportarna är) detta borde tända ett displayelement någonstans.

På bilderna kopplade jag helt enkelt (nästan) alla grindar och anoder till 12V detta slår på allt.

Ta några anteckningar om vilken stift som lyser vilket skärmsegment! Detta kommer att behövas för att ansluta och programmera displayen.

Steg 2: Utmaning 1: HighVoltage

Utmaning 1: HighVoltage
Utmaning 1: HighVoltage

Som vi har sett i teorin behöver plattorna/grindarna en spänning på 12 till 50 volt för att vara attraktiva för elektroner och få en fin belysning av fosforet. I konsumentenheter tas denna spänning vanligtvis från en extra flik på huvudtransformatorn. Som en DIY -kille har du inga transformatorer med extra flikar och du föredrar ändå enkla 5V USB -tillbehör:)

För att sedan köra en multiplexmatrisdisplay behöver vi mer spänning när ~ 12V från vårt test, eftersom displayens segment lyser upp bara kort efter varandra, vilket resulterar i en dämpningseffekt (PWM -stil med förhållandet 1: NumberOfGates). Så vi bör sikta på 50V.

Det finns ett antal kretsar för att öka spänningarna från så lågt som 5V till 30V..50V, men de flesta levererar bara en liten mängd ström, som några få mA@50V för föraren jag visar i nästa steg, som använder pullup -motstånd, detta är inte tillräckligt. Det slutade med att jag använde en av de högsta spänningsförstärkarkretsarna som du kan hitta på Amazon eller eBay (sök efter "XL6009"), den omvandlar 5V till ~ 35V med hög ström, vilket är tillräckligt bra.

Dessa XL6009 -baserade enheter kan pimps till utgång ~ 50V genom att ändra ett motstånd. Motståndet är markerat på bilderna med en röd pil. Du kan också söka efter ett datablad för XL6009, som innehåller nödvändig information för att beräkna utspänningen.

Steg 3: Utmaning 2: Få filamentet att drivas

Utmaning 2: Få filamentet att drivas
Utmaning 2: Få filamentet att drivas

Glödtråden ska drivas med ca 3V (beror på displayen). Gärna AC och på något sätt tejpad i mitten till GND. Puh, 3 önskningar på en rad.

Återigen i de ursprungliga enheterna skulle detta uppnås med en flik på transformatorn och någon form av Z -diodanslutning till GND eller någonstans ännu konstigare (som en -24V -skena)

Några experiment senare upptäckte jag att en enkel växelspänning över GND är tillräckligt bra. Likspänning, som 2 AA -batterier, fungerar också, men det ger en ljusstyrka från ena sidan av VFD till den andra, det är några exempel på youtube när du letar efter "VFD".

Min lösning

För att få en AC-spänning är detta en spänning som ständigt ändrar dess polaritet, jag kan använda en H-Bridge-krets. Dessa är mycket vanliga inom robotik för att styra likströmsmotorer. H-bron gör det möjligt att ändra riktning (polaritet) och även motorns hastighet.

Min favorit DIY -elektronikleverantör erbjuder en liten modul "Pololu DRV8838" som gör precis vad jag vill.

Den enda ingången som behövs är ström och en klockkälla så saken växlar polaritet hela tiden. Klocka? Det visar sig att ett enkelt RC -element mellan den negativa utgången och PHASE -ingången kan fungera som en oscillator för den här saken.

Bilden visar anslutningen av motordrivrutinen för att generera växelspänning för VFD -filamentet.

Steg 4: Gränssnitt med 5V -logik

Gränssnitt med 5V logik
Gränssnitt med 5V logik

Nu kan vi lysa upp hela displayen, bra. Hur visar vi en enda prick/siffra?

Vi måste växla varje port och anod vid en viss tidpunkt. Detta kallas multiplexing. Jag har sett några andra handledning om detta här. Exempelvis (https://www.instructables.com/id/Seven-Segment-Di…

Vår VFD har massor av stift, alla dessa måste drivas med olika värden, så var och en skulle behöva en stift på styrenheten. De flesta små kontroller har inte så många stift. Så vi använder skiftregister som portutvidgare. Dessa ansluter med en klocka, en data och en utvald linje till styrenhetens chip (endast 3 stift) och kan kaskad för att ge så många utgångsstift som behövs. En Arduino kan använda sin SPI för att effektivt serialisera data till dessa marker.

På displayen finns det också ett chip för detta ändamål. "TPIC6b595" är ett skiftregister med öppna dräneringsutgångar, som hanterar upp till 50V. Öppet dränering innebär att utgången lämnas öppen när den är inställd på TRUE/1/HIGH och en intern transistor växlar aktivt till den låga sidan FALSE/0/LOW. När man lägger till ett motstånd från utgångsstiften till V+ (50V) dras stiftet upp till denna spänningsnivå så länge den interna transistorn inte drar ner det till GND.

Kretsen som visas kaskader 3 i dessa skiftregister. Resistor -matriser används som pull -up. Kretsen innehåller också filamentströmställaren (H-bridge) och en enkel spänningsförstärkare som senare avvisades och ersattes med XL6009-kortet.

Steg 5: Gör en nivåmätare

Gör en nivåmätare
Gör en nivåmätare
Gör en nivåmätare
Gör en nivåmätare

För detta använder jag en Dot -matrisdisplay med 20 siffror och 5x12 pixlar per siffra. Den har 20 portar, en för varje siffra och varje pixel har en plattnål. Att styra varje pixel skulle kräva 60+20 individuella kontrollerbara stift t.ex. 10x TPIC6b595 chips.

Jag har bara 24 kontrollerbara stift från 3x TPIC6b595. Så jag ansluter en massa pixlar till en större indikatorpixel. Egentligen kan jag dela varje siffra i 4 eftersom jag kan styra 20+4 stift. Jag använder 2x5 pixlar per nivåindikatorsteg. Stiften för dessa pixlar är lödda ihop, ser lite kaotiskt ut men det fungerar:)

PS: Hittade precis det här projektet där den här skärmen styrs pixelvis..

Steg 6: Programmering av Arduino

Programmering av Arduino
Programmering av Arduino
Programmering av Arduino
Programmering av Arduino

Som nämnts kommer skiftregistret att anslutas till en hårdvaruspi. I pinout -diagrammet för Leonardo (Bild från Arduino) kallas stiften "SCK" och "MOSI" och ser lila ut. MOSI står för MasterOutSlaveIn, det är där datumet serieras ut.

Om du använder en annan Arduino, sök i pinout -diagrammet efter SCK och MOSI och använd dessa stift istället. RCK -signalen ska hållas vid stift 2, men denna kan flyttas när den också ändras i koden.

Skissen kör AD -omvandlaren vid stift A0 som en avbrottstjänst. Så AD -värdena läses ständigt och läggs till i en global variabel. Efter några avläsningar är en flagga inställd och huvudslingan hämtar annonsvärdet, omvandlar det till vilken stift som gör vad och flyttar ut det till SPI: et till TPIC6b. Displayuppdateringen måste loopas över alla siffror/grindar över och igen med en hastighet så att det mänskliga ögat inte kommer att se det flimra.

Exakt den typen av jobb en Arduino gjordes för:)

Här kommer koden för min nivåmätare …

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

Steg 7: PCB

PCB
PCB
PCB
PCB
PCB
PCB

Jag gjorde några kretskort för detta projekt, bara för att ha en fin och ren byggnad. Detta kretskort innehåller en annan spänningsförstärkare som inte levererade tillräckligt med ström, så jag använde den inte här och injicerade 50V från XL6009 -förstärkaren istället.

Den knepiga delen är att lägga till VFD, eftersom dessa kan ha alla slags former jag försökte göra kretskortet något generiskt i VFD -kontaktdelen. I slutändan måste du räkna ut pinout för din skärm och ansluta kablarna på något sätt och så småningom ändra programkoden lite för att allt ska passa ihop.

Kretskortet är tillgängligt här:

Rekommenderad: