5. case 03 Function Selector

5.1. Our Goal


  • Use basic kit to create a function selector.

5.2. Material


  • 1 x basic kit

5.3. Hardware Connection


  • Connect the crash sensor to P0 port on basic:bit and connect the potentiometer to P1. See picture below.

../../_images/F9hvl7u.jpg

5.4. Software


  • Microsoft Makecode

  • The crash sensor analog read the return value of I/O port. Here’s the values:

  1. Button A <10

  2. Button B: 10-80

  3. Button C: 80-130

  4. Button D: 130-160

  5. Button E: 160-600

5.5. Programming


Step 1

  • Create a forever loop, read the value of P0 port in analog way, and then assign the return value to variable itmmm so as to judge which button is pressed.

  • If itmmm is under 10, it means button A is pressed. When button A is pressed, call function func_A and set variable flag(Variable for judging the internal loop in the function) to 0 after call.

  • If itmmm is under 80, it means button B is pressed. When button B is pressed, call function func_Band set variable flag to 0 after call.

  • If itmmm is under 130, it means button C is pressed. When button B is pressed, call functionfunc_C.

../../_images/2lRCpIO.png

Step 2

  • Function func_A: When flag is beyond 600(i.e. no buttons pressed), read the value of P1 port and plot it on micro:bit screen. Read the button status of P0 port. When button E is pressed, the loop is terminated and the function call is finished.

  • Function func_B: When flag is beyond 600(i.e. no buttons pressed), display a flashing heart. Read the button status of P0 port after each flash. When button E is pressed, the loop is terminated and the function call is finished.

  • Function func_C: Clear the screen and finish the call of function.

../../_images/HpH2rIY.png

Program

The link of the whole program: https://makecode.microbit.org/_cuufKuP6FARo

You can also check the program from the page below.

---

5.6. Result


  • When startup, micro:bit will display an image of house.

  • Press button A to call function func_A. We can use potentiometer to control the brightness of the LED screen . And we can press any button to finish the call of function.

  • Press button B to call function func_B, and micro:bit will display a flashing heart. And we can press any button to finish the call of function.

  • Press button C to call function func_C and clear the screen.

  • For other situations, micro:bit will display a house image.

5.7. Think


5.8. FAQ


Q: why there is nothing happened when a button is pressed down?A: The button status judgement is not always happen. When other section of code is running, the button program will stop judge.