CPU-fläkten hacka - RGB lysdioder - Arduino & TLC5940 (4 / 7 steg)
Steg 4: Bygga kretsen: teori
-x 12 3906 General Purpose PNP transistorer (x25 för 3$)
-x 1 2kohm Resistor (öre)
-x 1 TLC5940 (3$)
-x 1 set av brödunderläggen (10$)
-x 1 Arduino Uno (15$)
-22g tråd (3$)
För detta projekt, kommer jag att ägna en hel bakbord och Arduino Uno. Även om jag brukar föredra inte för att använda en färdiga Arduino styrelsen för slutliga konstruktion, inte heller att jag vill hålla den slutliga utformningen på skärbräda - att hålla detta projekt enkelt och tillgängliga för den stora majoriteten av människor - jag höll denna rutt. Om det finns tillräckligt intresse, skulle jag överväga designa och skriva ut PCB för detta projekt att undvika användning av bakbord och skapa en fristående diskret Arduino.
LED typ :
Lysdioderna jag hade valt, är gemensam katod. Som vi diskuterade tidigare, innebär detta att de delar en gemensam negativ. Det råder viss förvirring i världens LED när kommer till digital logik, vilken typ av LED (gemensam katod- eller anod +) beroende på logik nivåer och maskinvara som används. Låt mig förklara i termer av TLC5940 att vi kommer att använda.
TLC5940 är en 16 kanal PWM controller från Texas Instruments. Det kan användas för att generera 16 olika puls bredd modulerade signaler. I LED världen är detta ett vanligt och effektivt sätt att dämpa lysdioder. I stället för traditionellt sänka spänning eller ström till dim LED, med en PWM signalen - vi tillämpar mycket snabb pulser av spänning för lysdioderna. Genom att ändra bredden (eller på tid) av pulser, kan vi effektivt vända lysdioderna på och av snabbare än ögat kan se. Ökar puls bredd ökar off tiden - att skapa en dimmer ljusnivå. Minskande puls bredd minskar off tiden, därmed tända lampan för längre perioder och skapa en ljusare ljusnivå. Dessa PWM signaler kan också nyttjas för att skilja motor servon att flytta till en särskild Vridvinkel, men det är för en helt annan Instructable.
Det finns 16 kanaler att produktionen en PWM-signal på TLC5940. Med hjälp av tillhörande biblioteket, kan vi direkt ta itu med varje stift och märka dem med referens designators 0 till 15. Frågan kommer in, när Observera ljudutgångar. De gäller inte en logik nivå av en hög. De fungerar med en låg TTL logik nivå, vilket innebär PWM signalen är under 2vdc. Detta är motsatsen för vad vi behöver för gemensam katod lysdioder.
Bild utdata sitter på det vi kallar för digital sett på hög nivå (eller + 5vdc). PWM signalen går låg, ner till under 2vdc. Tur slå våra lysdioder på behöver vi marken gemensamma negativa PIN-koden, och tillämpa 5vdc till varje positivt stift av lysdioder. Genom att helt enkelt sätta produktionen av TLC5940 kanaler direkt till var och en + stift, dioderna fungerar inte korrekt eftersom de behöver en hög + 5vdc från thly positiv spänning till anoden (+), och en lägre potential: minst 2vdc lägre, att katoden (negativ) LED. Detta kallas polarisering. Vi måste framåt bias dioder att aktivera dem, och produktionen av TLC inte ut en hög för att uppnå våra framåt partiska villkor: vilket betyder att lysdioderna tänds inte ur PWM signaler.
Eftersom det finns en konflikt mellan den låga logik-utgången av TLC5940 kanaler och den höga logik nivå som krävs av lysdioder positiva stiften. För att undvika problemet, använder jag PNP 3906 transistorer. Genom att ansluta basen av transistorn till kanalen PWM utgången, väntar transistorn på en låg logik nivå. När det fick det, kommer det effektivt mätta transistorn, slå på den. Transistorn, i det här programmet fungerar precis som en switch: endast vrida på när en låg TTL logik PWM-signal sänds från TLC5940 till basen av transistorn. När en hög nivå tas emot från TLC, transistorn öppnar sig som en switch, och hindrar strömmen från flyter in i lysdioderna--stänga av dem.
Vi kan nu ansluta samlaren av transistorn till en separat 5vdc leverans än Arduinoen och Anslut sändaren direkt till positiva stift av lysdioder. Jag använder en transistor för varje färg: röd, grön och blå. Så varje LED får 3 transistorer, en kontroll av varje färg: omvandla låg logiken av TLC, till en + 5vdc PWM-signal som tänds lysdioderna.
MAGIC.
Samma logik kan tillämpas på alla situationer. Om du behöver "reverse"-- eller Invertera--en logik nivå, kan vi använda enheter som NPN eller PNP transistorer, växelriktare, eller andra digitala enheter och portar och eller grindar, som tar logiken nivåer, och konvertera dem till en signal som vi faktiskt kan. Om du har gemensam anod, kan du placera den gemensamma positivt av LEDs direkt till en 5vdc källa och marken varje färgade negativa pin till TLCs PWM kanaler. Detta kommer att fungera tillräckligt. Om du är som mig och har gemensam katod lysdioder, har du många alternativ att Invertera denna logik för att passa din beläggningstypen.
Detta är den väg jag valde, på grund av den extremt låga kostnaden för den 3906 PNP transistorer, hyfsat snabb växling hastigheter (hur snabbt kan det slå på) och användarvänlighet.
Det finns en välskriven webbplats fullt förklara driften av TLC5940, men vi kommer bara att använda dess grundläggande funktioner.
Trots schematiskt kan tyckas komplicerat - är teorin enkel. Varje PWM utgångskanal av TLC5940 kommer att gå till basen på en PNP transistor. Samlaren av det transistorn binds hög, till den + 5vdc produktionen av datorns ATX nätaggregat. Utsläppare av varje transistor är knuten till en enda anoden (+) leda av en LED. Upprepa proceduren för varje av de tre LED leads: en för rött, en för grönt och ett för blå. Varje LED kommer att ha tre transistorer, kontrolleras av tre PWM kanaler av 5940. Samma logik gälla alla fyra lamporna för fläkten. Alla lysdioder katoder (-) kommer att knytas låg till grund av datorn ATX nätaggregat.
I nästa avsnitt kommer jag börja visar krets konstruktion.