Pin Press Switch
Use pin press to switch guitar play on/off
- Concepts:
- Circuit
- Conductor
- Variable/Global-Variable
- Conditional:
if
, else
- Boolean:
True
/False
Duration: approximately 45 minutes
Materials:
2-3 Crocodile clips
Blocks
let on = false
on;
if (on) { } else {}
input.onPinPressed(TouchPin.P1, () => {})
Circuits & Switches
- Circuits need a power supply (battery), a resister (like a LED) & a conductor (metal, water, hand)
- Switches turn electric power on by closing (completing) a circuit with a conductor so power can flow
Metal foil and wires make excellent conductors
In this activity we use YOU to conduct electricity
to close the circuit that switches the guitar ON and OFF!
Step 1: Pin Press Test
input.onPinPressed(TouchPin.P0, () => {
basic.showNumber(0)
})
input.onPinPressed(TouchPin.P1, () => {
basic.showNumber(1)
})
input.onPinPressed(TouchPin.P2, () => {
basic.showNumber(2)
})
Create the pin-press code
Download the code on the micro:bit
Hold the micro:bit touching The GND pin with one hand
with the other hand alternately touch the 0, 1 and 2 pins
The electric signal traveled from pins, between your hands to GND
and the micro:bit detected the electric signal!
How is the touch dectected? Find out in this video:
Step 2: Installing conductive foil on the guitar
Add foil to the guitar body where it is easy to touch while playing
Connect the foil to GND
using a crocodile clip
Add foil to the guitar neck
Connect the foil to pin 1
using a crocodile clip
Step 3: Add a switch to turn the guitar ON and OFF
Using the on
global variable we can switch the message on the micro:bit
between ON and OFF
let on = false
basic.forever(() => {
if (on == true) {
basic.showString("ON")
} else {
basic.showString("OFF")
}
})
input.onPinPressed(TouchPin.P1, () => {
if (on == true) {
on = false
} else {
on = true
}
})
Create the ON/OFF switch code
Download the code on the micro:bit
Test by touching P1
to toggle the LED message between ON and OFF
Final code
TODO: do we want to use on = !on;
or be more direct in flipping the switch? on = true; on = false;
let on = false
basic.forever(() => {
if (on) {
music.setTempo(pins.map(Math.abs(input.acceleration(Dimension.Y)),
0, 1023,
60, 320))
music.playTone(
input.lightLevel() * 25,
music.beat(BeatFraction.Quarter)
);
} else {
music.rest(music.beat())
}
})
input.onPinPressed(TouchPin.P1, () => {
on = !on;
})
Now Play!
Turn the guitar ON and OFF with a pin press on the connected foil by
touching both pieces of foil at the same time to connect the switches