Para sensores digitais (PIR, botão, colisão, chamas…) e atuadores on/off (LEDs, campainha digital, relé):
// 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) // DesligaPara 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:
// 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 à luzMath.map(valor, min1, max1, min2, max2) é fundamental — converte um intervalo noutro. Ex: temperatura: Math.map(leitura, 0, 1023, -40, 125) para o LM35.Usa o Monitor Série para depurar — ver os valores dos sensores em tempo real no ecrã do computador. No MakeCode: Avançado → Serial:
// 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)// 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()