Stap 7: De code
Zoals u net onder deze stap zien kunt, is er een tekstbestand van de code gebruikt voor het uitvoeren van de metronoom. Ik ga niet elke uitvoerig over de wijze waarop de code werkt was ingesteld, maar ik zal kort uitleggen waar sommige van de wiskunde vandaan voor het veranderen van het tempo, want dat is misschien wel een van de belangrijkste onderdelen die maakt dit circuit van een metronoom.
Herinneren dat de servo arm wordt een maximumpercentage van 60 graden voor elke 0,1 seconden verplaatst. Dit komt overeen met 6 graden voor elke 10 milliseconden en is hetzelfde als 200 bpm. (Willekeurig) wilden we onze ondergrens worden op 50 bpm oftewel 1/4 van het tempo van de 200 bpm. Omdat 6 graden / 10 milliseconden is onze hoogste snelheid, dit betekent dat onze minimumtarief moeten 1/4 van het max tarief, of 1,5 graden / 10 milliseconden.
Onze span tussen onze bovenste en onderste grenzen is dus slechts 4.5 graden. We willen de snelheid in dit bereik aanpassen via de potmeter. De analoge lezing van de potentiometer uitvoer kan variëren van 0 (in wezen geen stroom die via de potmeter) en 1023 (de maximale hoeveelheid stroom die via de potmeter.
Dus, wat we willen doen is het maken van een lineaire vergelijking van de vorm y = mx + b om erachter te komen hoeveel van een verandering van de hoek de servo moet maken gebaseerd op hoeveel stroom via de potmeter vloeit. 'y' zal de hoek veranderen, ben ' is de helling of hoeveel invloed de potentiometer op de verandering van de hoek heeft, 'x' is de waarde van de potentiometer, en 'b' is y-snijpunt of een soort correctiefactor voor de verandering van de hoek.
Door te delen van de reeks van de verandering van de hoek, 4.5, door de maximale waarde die de potmeter hebben kan, 1023 kunnen we onze helling. Dit wordt ons de "scalair" waarde die u in de code ziet. Wij kunnen dan onze scalaire waarde met wat de huidige waarde van de potentiometer is vermenigvuldigen en voeg onze correctiefactor die de ondergrens van 1,5 graad is. Dit vertelt ons bondig hoe veel van een hoek (of tempo) verandering waardoor de servo moet gebaseerd op waar de potentiometer wordt geplaatst.