Stap 8: Codering voor definitieve Arduino schets (draaiende beweging)
Codering voor het verdraaien bewegingen is anders dan de codering voor swingen/onttrekken bewegingen, vooral te wijten aan het feit dat bij het gebruik van kronkelende bewegingen, altijd uw magische toverstaf afstandsbediening op de TV wijzen zal. Dit is niet het geval met swingende/onttrekken moties omdat de code begint te sturen voordat u wijs uw magische toverstaf afstandsbediening bij de TV. Vanwege dit, er is geen behoefte aan het gebruik van een 'repeat-instructie' wanneer ontwerp met behulp van draaien, maar dit maakt het gebruik van 'vertraging' uiterst belangrijk!
I 'm gonna blijven werken met de 'Omlaag'-opdracht die we eerder met in de decodeer de stap van uw TV Remote gewerkt. Voor de 'Omlaag', heb ik besloten dat ik wil mijn afstandsbediening naar links draaien. Met de MPU6050RawValues.ino schets geüpload naar mijn Arduino, was ik in staat om te zien welke versnellingsmeter waarden veranderden wanneer mijn breadboard naar links draaien. Ik merkte dat de waarden van de versnellingsmeter in de Z-as (AcZ) over het algemeen minder dan 5000 en groter is dan 0 waren. Bovendien, de waarden van de versnellingsmeter in de X-as (AcX) waren over het algemeen minder dan-4000. Met behulp van wat we geleerd hebben in de laatste stap, wordt de eerste regel van onze code gelezen:
Als (AcZ < 5000 & & AcZ > 0 & & AcX <-4000) {} |
Ik omvatte vervolgens de code die ik vond tijdens het decoderen van mijn afstandsbediening binnen de instructie 'My_Sender.send ();'. De code zou als volgt worden geschreven:
My_Sender.send (PANASONIC_OLD, 0x36F121, 22); |
Het volgende ding dat we moeten doen is het toevoegen van een vertraging. Dit is een zeer belangrijk ding toe te voegen omdat een onverwijld in uw code zal over en weer de opdracht herhalen. Een vertraging kunt u draai uw externe rechtop zonder per ongeluk het verzenden van functies meerdere malen wegens tijdgebrek. Ik heb besloten dat ik de wachttijd de opdracht twee seconden wilde dus schreef ik mijn code als volgt:
delay(2000); |
1000 = 1 tweede, zodat kunt u uw code dienovereenkomstig aanpassen.
Met behulp van deze elementen, uw definitieve code als volgt moet uitzien:
Als (AcZ < 5000 & & AcZ > 0 & & AcX <-4000) {} My_Sender.send (PANASONIC_OLD, 0x36F121, 22); } |
Merk op dat u alleen wilt toevoegen van een beugel. Instructie niet aanwezig is ' herhalen ' zodat u slechts hoeft te nemen van een beugel voor de ' als verklaring '. Zodra u klaar bent, vervangt u de waarden die ik heb gevonden met uw eigen in de MagicWandTVRemote.ino schets en upload het aan uw Arduino. Gefeliciteerd! Je bent nu klaar codering!