Stap 3: Software
De software werd ontwikkeld met behulp van een goedkope MSP 430 LaunchPad de ontwikkelingsuitrusting van Texas Instruments. De LaunchPad verbinding maakt met een Windows host-computer via USB. Een paar onderdelen toevoegen zoals de transistor bestuurders waren via een breadboard tijdens circuit en software ontwikkeling.
Er zijn andere Instructables tonen het gebruik van de MSP 430 LaunchPad met TI de meegeleverde Code componist Studio code te ontwikkelen, dus ik zal dat hier niet dupliceren. Ik heb het gebruik van de grafische interface Grace instellen van de microcontroller. Het bijgevoegde bestand main.cfg bevat de Grace setup en main.c is de C broncode. Codevoorbeelden zijn ook beschikbaar in PDF-formulier als u gewoon wilt kijken naar de code zonder te installeren Code componist Studio.
De software is interrupt aangedreven. Zodra de microcontroller is ingesteld, wordt het gezet in de "slaapstand". Het is gewekt wanneer één van de interrupt voorwaarden is voldaan.
Een timer die gedreven door het horloge crystal overloopt en genereert een interrupt elke twee seconden. Dit wordt gebruikt als de fundamentele tijdwaarneming voor de klok.
De comparator genereert een interrupt wanneer de puls van de positieve spanning van de spoel wordt gegenereerd. De routine van een interrupt timer instellen in staat machine mode
- vertragingen een hoeveelheid tijd voor de magneet te bewegen iets voorbij de spoel voor optimale duwen
- Hiermee schakelt u de spoel
- Hiermee schakelt u de spoel af en laat het aan de stilleggen zodat een tweede valse trigger niet wordt gedetecteerd.
Voor elke staat, een interrupt wordt gegenereerd, acties, en de microcontroller zet terug om te slapen om te wachten op de volgende stap.
De software elke schommel frame van de slingerinrichting verbonden maatregelen, en vergelijkt de werkelijke schommel tijd op de gewenste 1 seconde, het genereren van een foutnummer. Een gewijzigde algoritme van de Vermogenssturing PID (proportionele - integraal - differentieel) gebruikt de fout signaal aan te passen de impulstijd met de spoel. Dit wijzigt de hoek van de schommeling van de slinger te versnellen of vertragen van de slinger en dus de klok. De werkelijke C-code is
Pulse NominalPulse - = (Kp * fout + Ki * i_error);
Waar Kp en Ki empirisch afkomstige constanten en fout en i_error zijn respectievelijk de evenredige en geïntegreerde fout (geen differentiële termijn is nodig of gebruikt).
Een nationale instrumenten datalogger werd gebruikt om te helpen de constante waarden ontlenen en afstemmen van het systeem. Een routine van de software ingesteld een pulsbreedte gemoduleerd (PWM) output-poort aangesloten op een eenvoudige low-pass filter en de datalogger. De routine gegenereerd een spanning evenredig is met de pulsbreedte op de spoel of het signaal van de fout van de PID-algoritme. Komt te staan is een logboek van het fout signaal sluiten en vergrendelen in op nul.
De software licht een bicolor LED rood of groen om aan te geven als de slinger te snel gaat of te langzaam. Hierdoor is de bob omhoog of omlaag in slechts een paar minuten op te zetten van de slinger worden aangepast. Zodra het dicht genoeg instelt is, regelt de microcontroller de slinger zodat nauwkeurige tijd.
Printplaten werden ontworpen en gebouwd na de hardware en software klaar waren.