Skip to content

Actividad

Temporizador de energía de luz

Avanzado | MakeCode, Python | Botones, Pantalla LED, Sensor de luz | 13 Clima, Entrada/salida, Lógica booleana, Sensores, Variables

Paso 1: Hazlo

¿Qué es?

Tiempo durante el cual quedan las luces encendidas para hacer un seguimiento del consumo de energía. También podrías utilizar este proyecto para monitorizar horas de sol en un proyecto de estación meteorológica.

Este proyecto forma parte de una serie creada para ofrecer actividades de creación de prototipos y solución de problemas cuya finalidad es explorar la tecnología como una solución para los retos de los Objetivos Mundiales para el Desarrollo Sostenible.

Qué aprenderás

  • cómo usar sensores y código para monitorizar eventos del mundo real
  • colocar un registrador de datos para registrar datos confiables
  • recopila y coteja datos con el tiempo para detectar patrones en el uso de energía
  • interpreta y analiza datos con el fin de realizar cambios de comportamiento
  • cómo se pueden cambiar las variables por un usuario para configurar un sistema antes de usar

Cómo usarlo

  • Primero utiliza el Proyecto de medidor de energía de luz para averiguar las lecturas cuando tus luces estén encendidas o apagadas. Asegúrate de hacer esto en el mismo lugar y condiciones de iluminación donde vayas a colocar tu micro:bit, y asegúate de que la luz del día no desencadene una lectura falsa de que sus luces están encendidas.
  • Pon la lectura de la luz en el código donde se encuentra la variable LIGHT. Te hemos dado el número 100, pero probablemente necesitarás cambiar esto antes de incluir el código en tu micro:bit.
  • Conecta un paquete de pilas y coloca tu micro:bit bajo la luz que quieres monitorizar. Deberías ver un punto en la pantalla cuando la luz esté apagada, y la pantalla se enciende cuando la luz está encendida. Si esto no funciona, considera usar el medidor de luz de nuevo para encontrar el nivel de luz de cuando la luz está encendida, o mueve el micro:bit.
  • El micro:bit mantendrá el tiempo de espera y cuando pulses el botón B mostrará cuánto tiempo ha estado encendida la luz en minutos.

Cómo funciona

  • El programa utiliza una variable booleana llamada timing para controlar el programa. Las variables booleanas solo pueden tener dos valores: true (verdadero) o false (falso).
  • Si la lectura del sensor de luz está por encima del nivel que configuraste, se inicia el temporizador y se enciende la pantalla LED. Si cae por debajo de este nivel, detiene el temporizador y muestra un punto en la pantalla.
  • Este proyecto usa histéresis para asegurarse de que el temporizador no se enciende y apaga con demasiada frecuencia cuando el nivel de luz cambia ligeramente alrededor del umbral para activar el temporizador. Crea una banda más grande alrededor del umbral que hay que cruzar antes de encender o apagar el temporizador.
  • La histeresis es una característica común en los sistemas de control que utilizan sensores, por ejemplo en los sistemas de calefacción que tienen un termostato. Si configuras tu termostato a una determinada temperatura, no querrás que la calefacción se encienda y apague repetidamente con mucha rapidez cuando la temperatura ronda el número que has configurado. La histéresis evita que esto suceda.

Qué necesitas

  • micro:bit
  • Editor de MakeCode o de Python
  • paquete de pilas (recomendado)

Paso 2: Prográmalo

1from microbit import *
2display.show('L')
3
4LIGHT = 100  # <<< Enter your 'measured' reading here
5
6HYSTERESIS = 8
7LIGHT -= (HYSTERESIS/2)
8DARK = LIGHT - HYSTERESIS
9ON_IMAGE = Image('99999:99999:99999:99999:99999')
10OFF_IMAGE = Image('00000:00000:00900:00000:00000')
11timing = False
12start_time = 0
13total_time = 0
14reading = display.read_light_level()
15sleep(1000)
16
17def show_number(n):
18    # Make number display the same as MakeCode
19    if len(str(n)) == 1:
20        display.show(n)
21    else:
22        display.scroll(n)
23
24while True:
25    reading = display.read_light_level()
26    if reading < DARK:
27        if timing:
28            # it has just gone dark, update timer for 'on' time
29            end_time = running_time()
30            total_time += (end_time - start_time)
31            timing = False
32        
33    elif reading >= LIGHT:
34        if not timing:
35            # it has just gone light, start the timer
36            start_time = running_time()
37            timing = True
38        
39    if button_b.was_pressed():
40        # calculate and display cumulative time in minutes
41        minutes = total_time / 60000
42        if timing:
43            # adjust live for current ON time
44            minutes += (running_time() - start_time) / 60000
45        display.clear()
46        show_number(round(minutes))  # whole numbers only
47        sleep(500)
48
49    # update the display with the ON/OFF state
50    if timing:
51        display.show(ON_IMAGE)
52    else:
53        display.show(OFF_IMAGE)
54    sleep(1000)
55
56        

Paso 3: Mejóralo

  • Cambia los patrones que se muestran en la pantalla LED para que las pilas duren más o atenúe la pantalla.
  • Usa el tiempo registrado para saber cuánta electricidad has usado y qué puede costar. Los detalles están en nuestro proyecto de calculadora de coste energético
  • Utiliza el mismo código para medir horas de luz solar. Usa el proyecto de medidor de luz para calcular el valor de la luz cuando el sol brilla en el micro:bit y cuando está nublado. Puede que necesites hacer un recipiente para tu micro:bit con una tapa traslúcida para diferir la luz y proteger el micro:bit de la lluvia, por ejemplo un viejo recipiente de plástico de alimentos.