# Touchy Subject

## Touch Interface

### Learn It

• The Micro:bit also has three general purpose input/output (called GPIO) connectors along the bottom of the unit. They're labelled 0, 1 and 2. There's also a connector that outputs a steady 3 volts (imagintively labelled 3V) and a connection to the negative end of the power supply (labelled GND).
• We can use these as touch switches too.

### Try It

```from microbit import *

while True:
if pin0.is_touched():
display.show(Image.HAPPY)
elif pin1.is_touched():
elif pin2.is_touched():
display.show(Image.ASLEEP)
```
• To test the program, hold the `GND` pin with one hand, then touch the `0`, `1` and `2` pins with a fingertip on the other hand. Cool, eh?
• If you're unsure of anything covered so far, this video tutorial will take you through it:

## Accelerometer

### Learn It

• There are other sensors on the Micro:bit too. The accelerometer detects how level the Micro:bit is. It can measure in the x, y and z axis.
• The amount of angle is measured in milli-g’s. A flat, level Micro:bit would report 0, with +25 or -25 being noticably angled.

### Code It

• Lets write some code!
```from microbit import *

while True:
x_acc = accelerometer.get_x()
display.clear()

if x_acc > 25:
# set_pixel parameters are (xPos, yPos, LEDbrightness)
display.set_pixel(4, 2, 9)
elif x_acc < -25:
display.set_pixel(0, 2, 9)
else:
display.set_pixel(2, 2, 9)
```
• This program reads the x-axis angle of the Micro:bit, then lights an LED as appropriate. Approaching our code like this means that the y-axis is tricky to handle at the same time.
• With variables, we could also handle the y axis too, though. This way, we could tilt both left-right and up-down. Let's write some pseudocode:
```X=0
Y=0

WHILE True:

IF x_acc > 25 THEN
X=4
ELSE IF x_acc < -25:
X=0
ELSE:
X=2
END IF

IF y_acc > 25 THEN
Y=4
ELSE IF y_acc < -25
Y=0
ELSE
Y=2
END IF

CLEAR THE DISPLAY
TURN ON THE LED AT POSITION X, Y.
END WHILE
```
• If you're struggling with the concepts here, the video tutorial may be useful:

• Gold: Use `If` statements to add code to use the 'in between' LEDs.