Använda enhetsknapparna



Enhetsknapparna är de fem knapparna (vänster, mitten, höger, upp och ned) på EV3-enhetens framsida. Enhetsknapparna kan användas på samma sätt som en sensor, dvs. för att detektera om en knapp trycks in och/eller för att ta reda på vilken av knapparna som trycks in.

Du kan använda enhetsknapparna för att få programmet att agera utifrån knapptryckningar. Till exempel kan du få roboten att höja och sänka en arm när upp- och nedknapparna trycks in.
Tips och trick
Tillbakaknappen på EV3-enheten räknas inte som en enhetsknapp. Trycker du på tillbakaknappen avbryts en pågående programkörning.
Enhetsknapparna kan också användas för att hålla reda på om en knapp har tryckts in och sedan släppts upp, dvs. om den har ”snabbtryckts”. Det fungerar på samma sätt som när trycksensorn snabbtrycks. Mer information finns under Använda trycksensorn i avsnittet Förstå begreppet ”snabbtryckt”.
Enhetsknapparnas data
Enhetsknapparna kan generera följande data:
DataTypAnteckningar
Knapp-ID NumeriskIndikerar vilken knapp som trycks in:
0 = Ingen
1 = Vänster
2 = Mitten
3 = Höger
4 = Upp
5 = Ned
Intryckt LogikFör ett angivet knapp-ID (1–5) genereras Sant om knappen är intryckt. I annat fall genereras Falskt.
Uppsläppt LogikFör ett angivet knapp-ID (1–5) genereras Falskt om knappen är intryckt. I annat fall genereras Sant.
Snabbtryckt LogikFör ett angivet knapp-ID (1–5) genereras Sant om knappen, vid ett tidigare tillfälle, har tryckts in och sedan släppts upp. Därefter, om en ny snabbtryckning ska lagras, måste en ny intryckning och uppsläppning utföras.
Tips och trick
Enhetsknapparna känner inte av om fler än en knapp trycks in samtidigt. Om du trycker på två knappar samtidigt registreras bara den ena knapptryckningen.
Exempel med enhetsknappar
Nedan följer några exempel på hur enhetsknapparna kan användas i program.
Exempel 1: Trycka på en knapp för att fortsätta
Det här programmet får roboten att åka framåt i en sekund innan ”Press a Button…” (Tryck på en knapp) visas. Därefter väntar programmet tills någon av enhetsknapparna trycks in. Då åker roboten bakåt i en sekund. Blocket Vänta i läget Enhetsknappar – Ändra används för att vänta tills en enhetsknapp trycks in.
Exempel 2: En kontrollpanel för enhetsknappar
Det här programmet får roboten att svänga åt vänster när vänsterknappen tryck in, och åt höger när högerknappen trycks in. Blocket Förgrening med läget Enhetsknappar – Mäta används för att ta reda på vilken enhetsknapp som trycks in. De tre olika fallen i förgreningen får roboten att: svänga vänster när vänsterknappen trycks in, svänga höger när högerknappen trycks in, stanna när ingen knapp trycks in. Kontrollen upprepas fortlöpande, i en loop.
Tips och trick
Du kan lägga till fler fall genom att använda förgreningens plusknapp (+). Till exempel kan du få roboten att köra framåt och bakåt när du trycker på uppknappen och nedknappen.
Exempel 3: Bestämma enhetsstatuslampans färg med hjälp av enhetsknapparna
Det här programmet får enhetens statuslampa att lysa grönt när du trycker på vänsterknappen, orange när du trycker på mittknappen och rött när du trycker på högerknappen. Först används blocket Förgrening i läget Enhetsknappar – Jämför för att kontrollera om vänster knapp, mittknappen eller höger knapp trycks in. Om ingen knapp trycks in släcks lampan med hjälp av blocket Enhetsstatuslampa. Om en av de tre knapparna trycks in används blocket Enhetsknappar i läget Mäta för att hämta ID:t (1–3) för den intryckta knappen. Värdet hämtas via en dataledning. Därefter används blocket Matematik för att subtrahera värdet med 1, så att värdet kan användas som färgindata (0–2) till blocket Enhetsstatuslampa.
Enhetsknapparnas block och lägen
I tabellen nedan visas samtliga programmeringsblock och lägen som du kan använda med enhetsknapparna.
BlockLägeAnvändning
VäntaEnhetsknappar – JämförVänta tills någon av de valda enhetsknapparna trycks in, släpps upp eller ”snabbtrycks”.
VäntaEnhetsknappar – ÄndraVänta tills den intryckta enhetsknappens (knapp-ID) status ändras. Om ingen enhetsknapp är intryckt i början av blocket, väntar blocket tills en enhetsknapp trycks in.
LoopEnhetsknapparUpprepa en blocksekvens tills någon av de valda enhetsknapparna trycks in, släpps upp eller snabbtrycks.
FörgreningEnhetsknappar – MätaVälj mellan två eller flera blocksekvenser beroende på vilken enhetsknapp som trycks in.
FörgreningEnhetsknappar – JämförVälj mellan två blocksekvenser, beroende på om någon av de valda enhetsknapparna trycks in, släpps upp eller snabbtrycks.
EnhetsknapparMätaHämta knapp-ID:t för den enhetsknapp som för närvarande trycks in (0 om ingen knapp trycks in), via en numerisk dataledning.
EnhetsknapparJämförTesta om någon av de valda enhetsknapparna trycks in, släpps upp eller snabbtrycks, och hämta resultatet via en logikdataledning.
Enhetsknappar
Snabblänkar