The large pins (0,1,2) and the logo (V2 only) on the micro:bit can be configured to know when they are being touched or pressed. The micro:bit V2 is also able to use a different touch mode, which you are able to configure in your program.




Touch Modes


Resistive touch (default for the large pins 0, 1 and 2)

Resistive touch works by detecting a change in resistance when an electrical signal is passed through a conductive material as part of a circuit. 


The human body is a conductive material, so for example, when you touch a numbered pin on the micro:bit with one finger and touch the GND pin with another finger you will complete a circuit that an electrical signal can flow through.


Each of these large pins has a weak pullup resistor connected to it, which means that by default the pin is pulled up to a voltage of 3V and when it is touched the pin is pulled down to GND or 0V. This is similar to how a button press works.


Capacitive touch (default for the logo) V2 only

Capacitive touch works by sensing changes within the electric field of a capacitor using a finger as a conductor. It will trigger as your finger touches the pin or gets very near. Capacitive touch does not require you to make a ground connection as part of a circuit, so you can just touch the micro:bit with one finger.


Setting the touch mode (V2 only)


It is possible to change the default settings of resistive touch (default for the large pins 0, 1 and 2) and capacitive touch (default for the logo) in your program. 


Makecode

The set pin to touch mode block can be found in the Pins > … more > micro:bit(V2) toolbox


MicroPython

The set touch mode API can be used to define the touch mode for a pin.


pin0.set_touch_mode(pin0.CAPACITIVE)



What is the difference between touched and pressed?



Depending on how you interact with the pin, you can trigger several different time-based events:



Touched is triggered as soon as a finger touches a pin.


Pressed is triggered when a finger is pressed down on a pin and then released up from it.

Released is triggered when a finger is released from a pin.



Long pressed is triggered if the pin is held down for longer than 1 second before being released.


Example: If you touch a pin and then release your finger from the pin you will trigger a touched event followed by a pressed and released event. This is similar to how keypresses are detected on a computer or phone keyboard.


Read more about the micro:bit events and how they are scheduled in MakeCode.