pxt-calliope/docs/reference/input/on-pin-event.md
Juri Wolf 5f7a8e5301
Updates for V4 (#197)
* update yotta defaults for 16kb devices

* refactor deprecated blocks

* updates for button events

* update button events

* update refference

* update docs

* update docs

* update button event blocks

* update docs

* update block id
2022-08-10 09:36:19 -07:00

2.0 KiB

On Pin Event

Start an event handler (part of the program that will run when something happens, like when a button is pressed). This handler works when you touch pin 0, 1, or 2 together with GND, and release it within 1 second. You can choose another event type by using the button event block. Possible event types are pressed down (1), released up (2), clicked (3), long clicked (4) or hold (5). When you are using this function in a web browser, click the pins on the screen instead of the ones on the @boardname@.

If you hold the GND pin with one hand and touch pin 0, 1, 2 or 3 with the other, a very small (safe) amount of electricity will flow through your body and back into the @boardname@. This is called completing a circuit. It's like you're a big wire!

input.onPinTouchEvent(TouchPin.P0, input.buttonEventClick(), () => {
})

~hint

This function works best when the @boardname@ is using batteries for power, instead of the USB cable.

~

Parameters

  • name means the pin that is being pressed, either P0, P1, or P2

Pin presses in action

See how the @boardname@ detects a press at a pin or on something connected to a pin in this video:

https://www.youtube.com/watch?v=GEpZrvbsO7o

Example: pin pressed counter

This program counts how many times you press the P0 pin. Every time you press the pin, the program shows the number of times on the screen.

let count = 0
basic.showNumber(count)
input.onPinTouchEvent(TouchPin.P0, input.buttonEventClick(), () => {
    count = count + 1
    basic.showNumber(count)
})

See also

@boardname@ pins, pin is pressed, analog read pin, analog write pin, digital read pin, digital write pin, button event block