Início›MakeCode para Sensores

💻 MakeCode para Sensores

⏱️ 25 min💻 makecode.microbit.org

Conteúdo

🧩 Blocos Essenciais para Sensores

ℹ️
No MakeCode, os blocos para pinos estão em Avançado → Pinos. Para usar o Monitor Série: Avançado → Serial. Para I²C: instala a extensão LCD1602 ou usa blocos I²C básicos.

⚡ Leitura e Escrita Digital

Para sensores digitais (PIR, botão, colisão, chamas…) e atuadores on/off (LEDs, campainha digital, relé):

leitura_digital.blocks
// Ler sensor digital (ex: PIR em P0)
let valor = pins.digitalReadPin(DigitalPin.P0)
if (valor == 1) {
    basic.showIcon(IconNames.Heart)  // Movimento detetado
} else {
    basic.clearScreen()
}

// Ligar LED digital (ex: LED branco em P1)
pins.digitalWritePin(DigitalPin.P1, 1)  // Liga
pins.digitalWritePin(DigitalPin.P1, 0)  // Desliga

📊 Leitura Analógica

Para sensores analógicos (LDR, temperatura, gás, humidade…). Retorna valores de 0 a 1023. Apenas P0, P1, P2 e P3 suportam ADC no micro:bit:

leitura_analogica.blocks
// Ler sensor analógico (ex: LDR em P0)
let leitura = pins.analogReadPin(AnalogPin.P0)  // 0–1023

// Mapear: converter 0-1023 para 0-100 (percentagem)
let percentagem = Math.map(leitura, 0, 1023, 0, 100)

// Mostrar na matriz de LEDs
basic.showNumber(percentagem)

// PWM: controlar brilho de LED (ex: LED em P1)
pins.analogWritePin(AnalogPin.P1, leitura)  // Brilho proporcional à luz
💡
A função Math.map(valor, min1, max1, min2, max2) é fundamental — converte um intervalo noutro. Ex: temperatura: Math.map(leitura, 0, 1023, -40, 125) para o LM35.

📡 Monitor Série (depuração)

Usa o Monitor Série para depurar — ver os valores dos sensores em tempo real no ecrã do computador. No MakeCode: Avançado → Serial:

monitor_serie.blocks
// No bloco "ao iniciar":
serial.redirectToUSB()

// No bloco "para sempre":
let valor = pins.analogReadPin(AnalogPin.P0)
serial.writeValue("sensor", valor)  // Mostra no gráfico série
serial.writeLine("Valor: " + valor)    // Mostra no terminal
basic.pause(500)
ℹ️
No MakeCode, o Monitor Série fica no painel inferior. No editor offline (app), clica Mostrar Consola. O botão de gráfico (📈) mostra os valores como linha temporal — muito útil para sensores analógicos.

🖥️ Extensão I²C para o Display 1602

📦
Para usar o display 1602 I²C, instala a extensão: Extensões → pesquisa 'lcd1602' → instala 'LCD1602 I2C'. Depois surgem novos blocos na categoria LCD1602.
display_1602.blocks
// Inicializar LCD (endereço 0x27 por defeito)
lcd.LCDinit(39)  // 39 = 0x27 em decimal

// Escrever na linha 0 (col 0)
lcd.showString("Kit A 37", 0, 0)  // texto, coluna, linha

// Escrever valor numérico na linha 1
let temp = pins.analogReadPin(AnalogPin.P0)
lcd.showNumber(temp, 5, 1)      // número, coluna, linha

// Limpar ecrã
lcd.clearLCD()

🏆 Desafios

PR.FT4_10 · Kit A 37 · Início