Stap 3: De puls breedte verordening eenheid
Een paar woorden over de techniek van de controle zijn in orde. Puls breedte verordening is een variatie op de techniek beter bekend als Pulse Width Modulation en is een manier om macht te controleren door het snel draaien in- en uitschakelen. Ik verkies de term Pulse breedte verordening omdat we je echt niet het moduleren van de pulsen, maar liever hun duur (taakcyclus) wijzigen en daarmee de regulering van de macht geleverd met de belasting. Als u meer vertrouwd met de term PWM bent, ga je gang en dat noemen.
Dit is echt puls breedte verordening, niet puls breedte modulatie. De pulsbreedte wordt geregeld als u wilt bepalen van de periode waarin de macht wordt toegepast. Bijvoorbeeld, tijdens de periode van elke 10 seconden is de uitvoer controle op voor 3/10ths van een seconde. Dit zou een taakcyclus van 3% en de breedte van de puls zou dat dezelfde 3/10ths elke 10 seconden-cyclus tweede. Verhoging van het tijdstip waarop de uitvoer op doordat de puls breder wordt, zou de eenheid wordt gecontroleerd op voor een langere tijd draaien. Dus regelen we de pulsbreedte om te controleren van de lading; in ons geval de hete plaat. Door te draaien de hete plaat aan en uit in een relatief snel, maar constante snelheid, mode, bepalen we nauw de temperatuur.
Puls breedte modulatie, daarentegen, varieert de breedte van de puls elke cyclus. Door dit te doen, en filteren de resulterende pulse-trein, kunnen complexe golfvormen worden geproduceerd. Dit is waar PWM en is niet echt wat we hier doen. Puls breedte verordening is voldoende voor onze behoeften. U kunt meer informatie over PWM hier.
Zoals gezegd, wordt de Pulse breedte verordening eenheid beheerd door een microcontroller van Atmel AVR ATtiny2313 en twee I2C poort Expanders. Ga je gang en download nu het schema en de broncode voor de controller. De broncode voor het besturingsprogramma is een zipbestand dat zal unzip in zijn eigen map controle. Gebruik het ontwikkelsysteem Ghetto de microcontroller te programmeren. Het is niet vereist, maar u kunt hebben een blik bij dit Instructable meer te leren over de I2C-bus. De I2C Instructable zal u tonen hoe uw Ghetto ontwikkeling om systeem te wijzigen zodat u gebruik van de I2C Bus daarop maken kunt.
Gebruik de onderdelen besteld u terug in stap 1 en het schema dat u hebt gedownload. Afbeelding 4 ziet u hoe te bouwen van de puls breedte verordening eenheid. Mijn Ghetto-ontwikkelsysteem wordt weergegeven (gebouwd op première bord) samen met de uitbreiding van de haven en de DIP-schakelaars (gebouwd op solderless breadboard). Het grotere DigiDesigner vak wordt alleen gebruikt als een 5V voeding. Ik bouwde het op deze manier aangezien ik gebruik maken van de Ghetto ontwikkelingssystemen voor tal van andere experimenten. U kunt dezelfde benadering gebruiken of bouwen van een dedicated systeem - uw keuze. In ieder geval, zijn het schema en de software hetzelfde.
Merk op dat de DIP-schakelaars, zoals op het schema de poort Expander pinnen aangeven om verbinding te maken met de schakelaars aan. De oriëntatie van de schakelaars moet zoals in afbeelding 6. SW1A en SW1B op het schema zijn echt een pakket van vier DIP-schakelaars - SW1. Hetzelfde geldt voor SW2, 3 en 4. Sluit zoals aangegeven in de afbeelding om te pinnen van U2, maar negeren de pincodes op SW1A, enz., die op het schema worden weergegeven. Net sluit ze zodat ze rechtstreeks verbinden met U2 en U3 op de juiste pinnen, met de andere kant van de pakketten van de switch aangesloten op de grond. Afbeelding 6 toont meer detail.
Om te programmeren uw ATtiny2313, start het WinAVR milieu, ga naar de map met de bestanden daarin uitgepakt, en de Makefile gebruiken voor de software compileren en programmering van uw kant. Het programma is vrij eenvoudig. Timer/teller 1 wordt gebruikt in de modus snel PWM te produceren van de pulsen gebruikt om te controleren de AC Power Control Unit. De pulsen verschijnen op PB4 en PD6 te knipperen LED1 wordt gebruikt. De 1MHz standaard klok van de ATtiny2313 wordt gebruikt en wordt gedeeld door 1024. Zo is de resolutie van de PWM.001024 seconden. Aangezien we gonna gebruik stappen van één tiende van een seconde, vermenigvuldigen we de DIP-switch instellingen door 98 welke stappen van de opbrengsten van 0.1003 seconden - dicht genoeg.
Zodra u de Pulse breedte verordening eenheid hebt gebouwd, zult u wilt testen. Macht het omhoog door een 5 volt voeding verbinden. Als je hebt gewerkt vooruit en gebouwd aansluiten de AC Power Control Unit niet gewoon nog niet. Wanneer u 5V zet, moet LED1 knipperen langzaam tweemaal laten weten dat het is klaar om te gaan. De DIP-schakelaars die aangesloten op poort Expander U2 worden gebruikt om de lengte cyclus beheren terwijl de DIP-schakelaars die aangesloten op poort Expander U3 worden gebruikt om te controleren de taakcyclus of op tijd van de cyclus. Beide besturingselementen zijn opgenomen in eenheden van 1/10 seconde en gebruik van de binaire code. Geen paniek als u niet vertrouwd met binaire code bent, ik zal het uitleggen.
Binaire code wordt best gezien als een verdubbeling van de code. Dat wil zeggen de numerieke waarde toegekend aan de eerste switch is 1 en de volgende schakelopties hebben numerieke waarden dat dubbele. Dus de tweede schakelaar een waarde van 2 heeft, is van de derde waarde 4, dan 8, enzovoort. De waarde van de verzameling van schakelaars gekoppeld aan U2 of U3 is de som van de numerieke waarden van alle schakelaars die ON.
Hier is een tabel met de waarden van de afzonderlijke switches op SW1 en SW2 die zijn verbonden met U2 voor het instellen van de lengte van de cyclus. Hierbij wordt ervan uitgegaan dat u hebt gebouwd u circuit hetzelfde als de mijne en hebben de DIP-schakelaars georiënteerde dezelfde manier zoals in afbeelding 6.