Nesta página Ventoinha como gerador Montagem Medir tensão gerada Calcular eficiência Mostrar potência na matriz

🌀 A Ventoinha como Gerador

Um motor DC pode funcionar ao contrário: ao girar mecanicamente (por vento ou mão), gera tensão elétrica. Este princípio é a base dos geradores eólicos e das turbinas elétricas.

💨

Fonte de energia

Soprar ou agitar a ventoinha faz o motor girar e gera uma tensão DC nas bornes.

⚡

Tensão gerada

Proporcional à velocidade de rotação. A ventoinha do kit gera 0 a ~2V com sopro manual.

📊

Leitura ADC

O micro:bit lê a tensão gerada no pino analógico — valores de 0 a ~620 (de 1023).

🔋

Condensador buffer

Um condensador de 470µF em paralelo suaviza os picos de tensão gerados.

⚠️ Proteção obrigatória Liga um díodo 1N4007 em série com a saída do gerador (cátodo para o pino P1) para evitar corrente reversa quando a ventoinha está parada. Sem díodo, corrente pode fluir do micro:bit para a ventoinha.

🔌 Montagem

Ventoinha+→ Díodo (ânodo) → Díodo (cátodo) → P1
Ventoinha−→ GND
P1→ Condensador 470µF (+) para suavizar · Condensador (−) → GND
P0→ LED indicador (opcional, via 47Ω)

📊 Medir Tensão Gerada

gerador_eolico.js
// Medir tensão gerada pela ventoinha em P1
basic.forever(function () {
    let raw = pins.analogReadPin(AnalogPin.P1)

    // Converter para mV (0-3300 mV mapeado de 0-1023)
    let tensao_mv = Math.map(raw, 0, 1023, 0, 3300)

    serial.writeValue("Vg_mV", tensao_mv)

    // Mostrar nível de energia na matriz (0-4)
    let nivel = Math.map(raw, 0, 620, 0, 4)
    nivel = Math.clamp(0, 4, nivel)

    // Barra vertical de energia
    for (let x = 0; x <= 4; x++) {
        for (let y = 4; y >= 0; y--) {
            led.plot(x, y)
        }
    }
    // Sobrepor brilho
    for (let x = 0; x <= 4; x++) {
        for (let y = 0; y <= 4; y++) {
            led.plotBrightness(x, y, (4 - y) <= nivel ? 255 : 0)
        }
    }
    basic.pause(100)
})

⚡ Calcular Potência

potencia_gerador.js
// Estimar potência gerada P = V² / R
// Assumindo carga de 10KΩ (resistência interna + leitura ADC)
let R_carga = 10000  // 10 KΩ

basic.forever(function () {
    let raw = pins.analogReadPin(AnalogPin.P1)
    let V = raw * 3300 / 1023  // tensão em mV

    // Potência em µW: P = V² / R  (V em mV, R em Ω → µW)
    let P_uW = (V * V) / R_carga

    serial.writeValue("V_mV", V)
    serial.writeValue("P_uW", P_uW)

    if (raw > 200) {
        basic.showIcon(IconNames.Happy)  // A gerar!
    } else {
        basic.showIcon(IconNames.Sad)   // Sem vento
    }
    basic.pause(200)
})

🌟 Medidor de Energia Visual

medidor_visual.js
// Mostrar nível de energia com LEDs externos + matriz
// P0=LED baixo, P1=LED médio, P2=LED alto, P3=leitura ventoinha

basic.forever(function () {
    let energia = pins.analogReadPin(AnalogPin.P3)

    pins.digitalWritePin(DigitalPin.P0, energia > 100 ? 1 : 0)
    pins.digitalWritePin(DigitalPin.P1, energia > 300 ? 1 : 0)
    pins.digitalWritePin(DigitalPin.P2, energia > 500 ? 1 : 0)

    // Acionar campainha ao atingir nível alto
    if (energia > 500) {
        music.playTone(880, 100)
    }

    serial.writeValue("eolica", energia)
    basic.pause(100)
})

🏆 Para ir mais longe