Använda motorrotationssensorn



Motorrotationssensorn används för att mäta hur mycket motorn har roterat. En rotationssensor är inbyggd i den medelstora motorn, den stora motorn och NXT-motorn. Sensorerna i ovanstående motorer kan känna av rotationen i grader. En hel motorrotation, dvs. ett helt varv, är 360 grader.

Du kan också använda motorrotationssensorn för att ta reda på vilken styrka en motor körs med.
Tips och trick
En motorrotationssensor används med en motor som är ansluten till en motorport på EV3-enheten (A, B, C eller D). Motorrotationssensorer går inte att använda med EV3-sensorportarna (1, 2, 3 och 4).
Motorrotationsdata
En motorrotationssensor genererar följande data:
DataTypAnteckningar
Grader NumeriskRotationen i grader
Varv NumeriskRotationen uttryckt i antal varv (grader/360, som decimalvärde)
Aktuell styrka NumeriskDen aktuella styrkan om motorn körs (1-100), eller 0 om motorn inte körs
Återställa en motorrotationssensor
En motorrotationssensor går att återställa till noll när som helst i programmet. Därefter mäter sensorn rotationen relativt återställningspunkten. För att återställa motorrotationssensorn använder du blocket Motorrotation i läget Återställ.
Tips och trick
Om du mäter en motorrotationssensor som inte har återställts får du den totala rotationen sedan programmet startade.
Motorrotationsriktning och total rotation
Framåtrotation genererar ett positivt grad- eller varvvärde. Bakåtrotation genererar ett negativt värde. Rotationen mäts alltid som det totala antalet rotationer från det tillfälle då sensorn återställdes senast. Bakåtrotationer subtraheras från det sammanlagda antalet framåtrotationer.

Tabellen nedan innehåller ett exempel på motoråtgärder som utförs i flera steg, och resultatet av rotationsmätningen efter varje steg.
StegÅtgärdAktuell motorrotation:
1Programmet startar, motorn har inte roterat än0 grader
2Motor roterar ett helt varv framåt (360 grader)360 grader
3Motor roterar ett helt varv framåt igen720 grader
4Motorn roterar framåt 60 grader780 grader
5Motorn roterar bakåt 30 grader750 grader
6Motorrotationen återställs0 grader
7Motorn roterar bakåt 100 grader-100 grader
8Motorn roterar bakåt 60 grader-160 grader
9Motorn roterar framåt 360 grader200 grader
Exempel på användning av motorrotationssensorn
Nedan följer några exempel på hur motorrotationssensorn kan användas i program.
Exempel 1: Robot som avger ett ljud när den blir knuffad
Det här programmet får roboten att avge ett ljud när den knuffas av en hand (så att hjulen rör sig). Blocket Vänta i läget Motorrotationer – Ändra – Grader används för att vänta tills rotationssensorn för motor C ändras med 5 grader i valfri riktning. Då avger ljudblocket ett ljud.
Exempel 2: Köra en viss sträcka i ett visst mönster
Det här programmet får roboten att åka rakt fram två rotationer och sedan köra i sicksack totalt 6,5 rotationer. Sicksackkörningen uppstår då först det ena hjulet snurrar och sedan det andra. Sicksackmönstret upprepas i en loop, tills motor B har körts totalt 6,5 rotationer. Loopen används i läget Motorrotation – Varv för att stoppa loopen när rotationssensorn för motor B har mätt totalt 6,5 rotationer. För att mäta 6,5 rotationer endast under sicksackkörningen, inte de 2 rotationer som inträffar i början, återställs rotationssensorn för motor B till noll före sicksackkörningen. För detta används motorrotationsblocket i återställningsläget.
Exempel 3: Ett reglage för hastighetskontroll
Det här programmet får den motor som är ansluten till port C att fungera som ett hastighetsreglage för den motor som är ansluten till port B. När C-motor vrids framåt eller bakåt för hand regleras hastigheten för B-motorn. Blocket Motorrotation i läget Mäta – Grader används för att mäta rotationen i grader för C-motorn. Resultatet används som indata till blocket Stor motor. Dessutom visas resultatet, med hjälp av blocket Display. Proceduren upprepas i en loop, så att hastigheten uppdateras fortlöpande.
Tips och trick
Om styrkan (som är indata till blocket Stor motor) överstiger 100, används 100 % styrka.
Block och lägen för motorrotation
I tabellen nedan visas samtliga programmeringsblock och lägen som du kan använda med motorrotationssensorn.
BlockLägeAnvändning
Vänta Motorrotation – JämförVänta tills en rotationssensor når ett visst värde (Grader, Rotationer eller Aktuell styrka).
VäntaMotorrotation – ÄndraVänta tills en rotationssensor ändras med ett visst värde (Grader, Rotationer eller Aktuell styrka).
Loop MotorrotationUpprepa en blocksekvens tills en rotationssensor når ett visst värde (Grader, Rotationer eller Aktuell styrka).
Förgrening MotorrotationVälj mellan två blocksekvenser baserat på en rotationssensor (Grader, Rotationer eller Aktuell styrka).
MotorrotationMätaLäs av en rotationssensor (Grader, Rotationer eller Aktuell styrka) och hämta resultatet via en numerisk dataledning.
MotorrotationJämförJämför en rotationssensor (Grader, Rotationer eller Aktuell styrka) och hämta resultatet via en logikdataledning.
MotorrotationÅterställÅterställ en rotationssensor till noll.
DataloggningSe Dataloggning.
Tips och trick
Motorrotationssensorer används också inuti följande åtgärdsblock och lägen:
BlockLägenAnvändning
Medelstor motor,
Stor motor
På i antal grader,
På i antal varv
Rotera en motor ett visst antal grader eller varv.
Kör – rattstyrning,
Kör – spakstyrning
På i antal grader,
På i antal varv
Åk med två stora motorer under ett visst antal grader eller ett visst antal rotationer.
Motorrotation
Snabblänkar