Stap 10: Tuning de Meter kalibratie Arrays
Analoge deelvenster meter hebben inherente nonlinearities, vooral goedkoop of oude meter met slijtage en vuil. Wij ook toevoegen nonlinearities aan de meter door te rijden ze met behulp van PWM (puls breedte modulatie) en door onze zelfgemaakte meter schalen. De c-programma voor dit project doet dit door het verstrekken van 2 matrices die worden gebruikt voor individueel afstemmen de meterstanden.De 2 matrices heten m_cal (gebruikt met minieme meter) en h_cal (gebruikt met urenteller). De 12 leden van de matrix vertegenwoordigen het aantal pulsen van de klok vereist om te bewegen de meter beweging één grote divisie. In het geval van de urenteller is dit een uur. In het geval van de minuut meter is dit 5 minuten. De periode voor de PWM tot beide meter is hetzelfde. Het is 10000 klok pulsen. De som van alle 12 leden van een gegeven tuning array kan minder zijn dan de periode. Ik heb geprobeerd om te vertrekken ongeveer 10% van de PWM-periode als hoofd kamer. De arrays zal dus meestal som tot ongeveer 9000.
De minuut schaal heeft 5 sub-divisies (1 min) per grote divisie (5 minuten). Het uur meter veegt elke grote minieme divisie (5 minuten), zijn dus er 12 sub-divisies voor de urenteller per elke grote afdeling (1 uur). Om deze reden de nummers in m_cal moet deelbaar door 5, en de nummers in h_cal moet deelbaar door 12. Dit is een absolute vereiste, maar met behulp van andere nummers zal resulteren in restanten wegvalt en kan tot verwarring leiden.
Laten we eens kijken naar een voorbeeld. Als de matrix uur (h_cal) gelijk aan [h_cal is] = {720, 708, 696, 736,...}, ga de meter tot 3 uur u instellen van de PWM pols tellen aan de som van 720, 708 en 696 moet, die gelijk is aan 2124. Als u om één uur en wilde gaan halverwege tussen één en twee zou u 360 (708 gedeeld door 2 en afgerond op het volgende nummer deelbaar door 12) naar 720.
De arrays die in het programma moet dicht bij wat je nodig hebt ongeacht de gevoeligheid van de meter u, gebruikt omdat u de weerstanden wilt wijzigen in de huidige verstrekt de meter. Je moet alleen moet hen intunet.
Het afstellen van de meter cal array:
Stap 1:
We zullen beginnen met de minuut meter. Om dingen makkelijker zullen we het minieme voorschot veranderen van 1 minuut per knop druk tot 5 minuten per knop druk. Zoek in de code de volgende lijnen en un-comment hen. Ze maken deel uit van de port_1 interrupt service routine.
for (int j = 1; j < = 4; j ++) / / inc 4 minuten Uncomment deze 4 regels bij het stemmen van m_cal
// {
one_min();
// }
Koppel de accu van de project board en maken van de "spy-by-wire"-verbindingen tussen de project board en de Launchpad. Het laden van het gewijzigde programma op de MSP430. Nu verhogen everytime we duwen de minuten knop de meter zal springen 5 minuten in plaats van 1 minuut.
Stap 2:
De verbindingen van de "spy-by-wire"-formulier de project board testpunten verwijderen en sluit de battery pack. Druk op de Reset-knop. Vervolgens passen de nul van de meter. Vervolgens druk op de knop minieme toename en observeren waar de meter gaat om op de schaal. Het moet dicht bij 5 minuten. Noteer of het minder dan 5, precies op 5, of meer dan vijf is. Druk nogmaals op de knop van de minieme toename en bepalen hoe dicht bij 10 minuten is. Doe dit tot ongeveer 20 minuten (4 knooppersen).
Stap 3:
Koppel de accu van de project board en maken van de "spy-by-wire"-verbindingen tussen de project board en de Launchpad. De eerste vier leden van de m_cal op basis van wat u waargenomen met behulp van uw notities aanpassen. Als de meter hoger dan verwacht was dan de afgevaardigde omlaag bijstellen. Als de meter was lager dan wat je verwacht past u het lid omhoog. Starten vanaf de onderkant van de schaal en omhoog. Als u ziet een trend waar elke keer dat u op de knop het verschil groter uit het gewenste punt wordt verminderen alle getallen. Als de eerste is een beetje af en de anderen lijken te zijn over de dezelfde offset, dan het aanpassen van het eerste lid dat is uitgeschakeld. Meestal maak ik aanpassingen van 5 of 10, tenzij ik manier ben af dan ik aanpassen van 20. Nadat u de aanpassingen van m_cal hebt gemaakt, de debugger kan benaderen en download de wijzigingen naar de chip.
Stap 4:
De verbindingen van de "spy-by-wire"-formulier de project board testpunten verwijderen en sluit de battery pack. Bekijk het resultaat van de aangebrachte wijzigingen. Herhaal de stappen 2 (zonder het aanpassen van de meter nul), 3 en 4 naar wens langzaam omhoog te bewegen de schaal (25 minuten tot 60 minuten) tot elke keer als u de knoop van de minieme toename, raakt de meter gaat precies naar een grote afdeling van 5 minuten van de schaal.
Stap 5:
Wanneer u tevreden bent met de afstemming van de minuut meter kunt u verplaatsen naar de urenteller. Ik stel voor dat u commentaar opnieuw de 4 lijnen die we uncommented in stap 1 en ervoor te zorgen dat de gewijzigde code terug op de chip.
Stap 6:
De afstemming van de uur meter h_cal array is vergelijkbaar met wat je hebt gedaan op minuut meter. Wanneer je op de knop van de increment uur moet het springen naar het volgende uur op de schaal. De aanpassingen moeten veelvouden van 12 in plaats van veelvouden van 5. Ik meestal maak aanpassingen voor 12 en 24.
Ik weet dit procedure klinkt moeilijk, maar het is echt eenvoudig, zodra u bepalen hoeveel de meter zal verplaatsen naar uw aanpassing. De hele zaak moet niet meer dan 30 minuten duren.