Skip to content

Activitat

Temporitzador d'energia de la llum

Expert | MakeCode, Python | Botons, Pantalla LED, Sensor de llum | 13 Clima, Entrada/sortida, Lògica booleana, Sensors, Variables

Pas 1: Crea-ho

En què consisteix?

Cronometra quant de temps es deixen encesos els llums per fer un seguiment del teu consum d'energia. També pots utilitzar aquest projecte per fer un seguiment de les hores de sol en un projecte d'estació meteorològica.

Aquest projecte forma part d'una sèrie d'activitats de prototipatge i resolució de problemes que té per objectiu explorar solucions tecnològiques als reptes dels ODS Objectius de Desenvolupament Sostenible (Global Goals).

Què aprendràs

  • com utilitzar els sensors i el programa per controlar esdeveniments del món real
  • col·loca un registrador de dades per registrar dades fiables
  • recull i compara dades al llarg del temps per detectar patrons en l'ús d'energia
  • Interpretar i analitzar dades per tal d'efectuar canvis en el comportament
  • com un usuari pot canviar les variables per configurar un sistema abans del seu ús

Instruccions

  • Primer utilitza el projecte "Mesurador de la intensitat de la llum" per conèixer les lectures quan els llums estan encesos i apagats. Assegurat de fer-ho al mateix lloc i condicions d'il·luminació on col·locaràs la teva micro:bit de monitoratge i assegurat que la llum del dia no desencadeni una lectura falsa que les teves llums estiguin encesos.
  • Posa la teva lectura de llum al codi on s'estableix la variable LIGHT (LLUM). T'hem donat el número 100, però probablement hauràs de canviar-lo abans de transferir el programa a la teva micro:bit.
  • Connecta unes piles i col·loca la teva micro:bit sota la llum que vols controlar. Hauries de veure un punt a la pantalla quan la llum està apagada i la pantalla s'il·lumina quan el teu llum està encès. Si això no funciona, pensa a tornar a utilitzar el projecte de "Mesurador de la intensitat de la llum" per trobar el nivell de llum quan la llum està encès o moure la micro:bit.
  • La micro:bit mantindrà el temps i quan premis el botó B mostrarà quant de temps s'ha encès la llum en minuts.

Com funciona

  • El programa fa servir una variable Booleana anomenada "timing"(temporització) per controlar el programa. Les variables booleanes només poden tenir dos valors: True o False (Cert o Fals).
  • Si la lectura del sensor de llum està per sobre del nivell establert, s'inicia el temporitzador i s'il·lumina la pantalla LED. Si cau per sota d'aquest nivell, atura el temporitzador i mostra un punt a la pantalla.
  • Aquest projecte utilitza histèresi per assegurar-se que el temporitzador no s'encengui i s'apagui massa sovint quan el nivell de llum canvia lleugerament al voltant del llindar per activar el temporitzador. Crea una banda més gran al voltant del llindar que s'ha de creuar abans d'encendre o apagar el temporitzador.
  • La histèresi és una característica habitual en els sistemes de control que utilitzen sensors, per exemple en els sistemes de calefacció que tenen termòstat. Si configures el termòstat a una temperatura determinada, no vols que la calefacció s'encengui i s'apagui repetidament molt ràpidament quan la temperatura oscil·li al voltant del nombre que heu establert. La histèresi evita que això passi.

Què necessites

  • micro:bit
  • Editor MakeCode o Python
  • piles (recomanat)

Pas 2: Programa-ho

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        

Pas 3: Millora-ho

  • Canvia els patrons que es mostren a la pantalla LED per fer que les bateries durin més o atenua la pantalla.
  • Utilitza el temps registrat per calcular quanta electricitat has consumit i que pot costar. Els detalls estan al nostre projecte de "Calculadora de costos energètics"
  • Utilitza el mateix programa per mesurar les hores de llum solar. Utilitza el projecte de "Mesurador de la intensitat de la llum" per calcular el valor de la llum quan el sol brilla al micro:bit i quan està ennuvolat. És possible que hagis de fer un recipient per a la teva micro:bit amb una tapa translúcida per difondre la llum i protegir la micro:bit de la pluja, per exemple, un recipient d'aliments de plàstic vell.