Skip to Content

Termómetro digital RGB

Creamos un termómetro de colores

🎨🌡️ Termómetro visual RGB


📝 ¿Qué vamos a hacer?

Usaremos la micro:bit v2 para medir la temperatura ambiente mediante su sensor interno y mostrar el resultado usando un módulo LED RGB externo, cambiando los colores según la temperatura detectada (frío, moderado o calor).

Si bien es cierto que el sensor interno va a estar influenciado por la temperatura de los componentes cercanos de la tarjeta, y que para ser más precisos con las mediciones deberíamos usar otro módulo externo para medir la temperatura ambiente, vamos a usar el interno para mantener este ejercicio lo más sencillo posible.


🎯 Objetivos de aprendizaje:

  • Conectar y controlar un LED RGB externo desde micro:bit.
  • Interpretar datos del sensor de temperatura interno.
  • Asociar rangos numéricos con colores específicos.

📦 Componentes necesarios:

  • Tarjeta micro:bit v2
  • Módulo LED RGB (ya tiene las resistencias integradas)
  • Placa de expansión (Expansion board)
  • Cables de parcheo
  • Pack de pilas para el conjunto de elementos

🔌 Descripción breve de conexiones físicas:

  • Pin R del LED RGB conectado al pin P0.
  • Pin B del LED RGB conectado al pin P1.
  • Pin G del LED RGB conectado al pin P2.
  • Pin V del módulo conectado a uno de los pins de V1.


OJO el módulo Tri color RGB está mal serigrafiado 

En vez de GRBV  (Green, Red, Blue, Volt) debería decir RBGV (Red, Blue, Green, Volt).

Si haces las conexiones y la programación tal y como está serigrafiada no vas a obtener los colores que esperas (o cambias el código para que saque los colores que queremos)


💻 Código JavaScript (MakeCode):


basic.forever(function () {

    let temperatura = input.temperature()

    if (temperatura < 20) {  // Frío

        pins.digitalWritePin(DigitalPin.P0, 0)

        pins.digitalWritePin(DigitalPin.P2, 0)

        pins.digitalWritePin(DigitalPin.P1, 1)  // Azul

    } else if (temperatura <= 27) {  // Moderado

        pins.digitalWritePin(DigitalPin.P0, 0)

        pins.digitalWritePin(DigitalPin.P2, 1)  // Verde

        pins.digitalWritePin(DigitalPin.P1, 0)

    } else {  // Calor

        pins.digitalWritePin(DigitalPin.P0, 1)  // Rojo

        pins.digitalWritePin(DigitalPin.P2, 0)

        pins.digitalWritePin(DigitalPin.P1, 0)

    }

    basic.pause(1000)

})



Explicación breve del código:

  • La micro:bit mide continuamente la temperatura.
  • Dependiendo del valor obtenido:
    • Menos de 20°C: El LED RGB se enciende en azul (frío).
    • Entre 20°C y 27°C: El LED RGB muestra verde (moderado).
    • Más de 27°C: El LED RGB se ilumina en rojo (calor).

🚀 Sugerencias adicionales (Opcional):

  • Se pueden añadir más rangos y colores intermedios para mejorar la precisión visual del termómetro. (podemos jugar con señales analǵicas para sacar mezclas de colores) 
  • Integra también sonidos específicos según la temperatura para hacerlo más interactivo.