Início›Módulos›Módulo Joystick
⬤ Intermédio

🕹️ Módulo Joystick

⏱️ 25 min🧩 P0 (X) · P1 (Y) · P2 (BTN)

Conteúdo

📌 Pinagem

Pino micro:bitFunçãoNotas
P0Eixo X (horizontal)0=esquerda · 511=centro · 1023=direita
P1Eixo Y (vertical)0=baixo · 511=centro · 1023=cima
P2Botão (click)0=premido · 1=solto
3VAlimentação
GNDMassa
ℹ️
Em repouso, X e Y lêem ~511 (centro). Usa uma zona morta de ±50 em redor de 511 para evitar movimentos involuntários com o joystick parado.

Exercício — Mover ponto na matriz

Usa o joystick para mover um ponto de luz na matriz 5×5.

ex1_joy_matriz.blocks
let px = 2, py = 2  // Posição inicial (centro)
basic.forever(function() {
    let x = pins.analogReadPin(AnalogPin.P0)
    let y = pins.analogReadPin(AnalogPin.P1)
    if (x < 460 && px > 0) px--   // Esquerda
    if (x > 560 && px < 4) px++   // Direita
    if (y > 560 && py > 0) py--   // Cima
    if (y < 460 && py < 4) py++   // Baixo
    basic.clearScreen()
    led.plot(px, py)
    basic.pause(150)
})

Exercício — Controlar servo com joystick

Eixo X controla a posição do servo motor.

ex2_joy_servo.blocks
// Servo em P8
pins.servoWritePin(AnalogPin.P8, 90)  // Centro
basic.forever(function() {
    let x = pins.analogReadPin(AnalogPin.P0)
    let angulo = Math.map(x, 0, 1023, 0, 180)
    pins.servoWritePin(AnalogPin.P8, angulo)
    basic.pause(50)
})

🏆 Desafios

PR.FT4_10 · Kit A 37 · Início