Stap 6: PWM dimmer
Gelet had enige tijd uitproberen van deze stuurprogramma's, wilde ik mijn observaties over PWM dimmer van deze LED-driver. Er zijn vele verschillende oplossingen aan PWM dimmer. Arduinos hebben een aantal 8-bit PWM staat pinnen en 555 timers toestaan voor goedkope en makkelijke PWM-circuits. Een andere oplossing- en degene die ik wilde gebruiken met deze stuurprogramma's - is de TLC5940. Het heeft 16 kanalen staat van 12-bits PWM resolutie.
Arduino
Arduinos 8-bit PWM is een eenvoudige manier voor het dimmen van deze stuurprogramma's. Aansluiten van de Arduino grond pin en een PWM-pin stuurprogramma uitbrengen is alles wat nodig is! De sleutel tot deze eenvoud is de Arduinos pinnen, die kunnen zowel zinken en huidige sourcing.
TLC5940
In sommige situaties, die men zou willen hebben grotere resolutie. 8-bit PWM kan leiden tot zeer merkbaar 'stappen' tussen aangrenzende PWM-waarden. Dit is vooral duidelijk bij lage waarden (dicht bij uitgeschakeld).
De TLC5940 biedt 12-bits resolutie, die 16 keer groter is dan de Arduinos 8-bit! (4096 vs 256)
De hardware en software setup voor het beheersen van de TLC5940 met een Arduino kan worden gevonden hier
Het belangrijkste ding over de TLC5940 is dat de pennen alleen wastafel huidige kunnen. De TLC5940 is eigenlijk ontworpen om een LED-driver zelf, maar alleen tot 120mA voor alle kanalen gecombineerd. Dit met onze LED driver boards te verbinden, moeten we het toevoegen van een circuit tussen de TLC5940 en de Raad van bestuur.
Opmerking: het is vermeld in dit instructable dat een TLC5940 verbinden met deze platen, een 10k pullup weerstand moet worden toegevoegd in de verstrekte ruimte op het bord. Echter Dit is een vergissing. Hoewel er een circuit wellicht dat werken met behulp van een pullup weerstand, de methode die ik hieronder Beschrijf gebruikt een 10 k pulldown weerstand in plaats daarvan.
Om te krijgen de juiste PWM-signaal, is een bjt van de PNP-transistor nodig. Ik gebruikte een 2n3906. Omdat de TLC5940 heeft de huidige zinkende pinnen, het geen stroom nodig om te schakelen op een NPN-transistor bjt. In plaats daarvan gebruiken we een bjt PNP-transistor, zodat de TLC5940 kan de bron van de boekwaarde van de transistor huidige. In feite, wanneer de TLC5940 stuurt een 'hoog', zinkt het huidige, draaien op de PNP transistor, en een hoog te sturen naar de LED-driver. Wanneer de TLC5940 verzendt een 'laag', geen huidige stromen in of buiten de pin, het uitschakelen van de PNP-transistor. A NPN-transistor werkt niet, als het huidige aan de basis vereist om in te schakelen, en de TLC5940 kan niet huidige bron.
Aangezien de TLC5940 de stroom op elke pin regelt, is geen basis weerstand nodig. Voor de 2n3906 vond ik dat een 3 k 3 weerstand op de huidige set pin TLC5940 genoeg stroom biedt. Met een 100 ohm weerstand op basis van het PNP zou echter geen kwaad.
De TLC5940 bibliotheek voor de Arduino heeft een standaard PWM-frequentie van ongeveer 1kHz. Terwijl de CAT4101 een lineaire LED driver is, vond ik dat er een hoorbaar, hoge toon whine afkomstig van het stuurprogramma. Deze janken is meestal een product van een spoel trillen op frequentie, maar aangezien er geen inductor gebruikt in deze LED driver, ik ben op een verlies te verklaren. Verminderen van de frequentie PWM neer onder ~ 244Hz vermindert het lawaai, maar introduceert ook flikkert bij lage waarden van de PWM. Verhogen van de frequentie PWM lijkt te beïnvloeden hoe dim de LED kan overschrijden voordat uitschakelen. De gemiddelde persoon moet niet merken het gejank dan ongeveer een halve meter, en een behuizing moet het volledig maskeren.
Tijdens het testen van de PWM dimmer, merkte ik dat er nogal een significant verschil tussen af en een PWM-waarde van 1 is. Bij deze waarde, moet er een gemiddelde van ~0.1456mA = (1/4095) * 600mA. Echter de LED's laten zien dat er ten minste een paar milliampère door de LED. Vervangen door een 3mm die LED geeft een zeer vlotte overgang tussen uit en 1, dus ik denk dat het mijn LED die in gebreke is gebleven.
Vergeet niet: altijd gronden met elkaar verbinden. Elk apparaat - Arduino, LED driver, enz - wellicht een andere reden potentieel, en hen aan elkaar koppelen, ontstaat een gemeenschappelijke grond. Niet te doen, kan schade veroorzaken.