Skip to content

Gweithgaredd

Amserydd ynni golau

Uwch | MakeCode, Python | Botymau, Dangosydd LED, Synhwyrydd golau | 13 Hinsawdd, Mewnbwn/allbwn, Newidynnau, Rhesymeg Boolean, Synwyryddion

Cam 1: Gwneud

Beth yw e?

Amseru pa mor hir y gadewir eich goleuadau ymlaen i olrhain eich defnydd o ynni. Gallech hefyd ddefnyddio'r prosiect hwn i olrhain oriau o heulwen mewn prosiect gorsaf dywydd.

Mae'r prosiect hwn yn rhan o gyfres a grëwyd i gynnig gweithgareddau datrys problemau a phrototeipio i archwilio technoleg fel ateb i heriau'r Nodau Byd-eang ar gyfer Datblygiad Cynaliadwy.

Beth fyddwch yn ei ddysgu

  • sut i ddefnyddio synwyryddion a chod i fonitro digwyddiadau'r byd go iawn
  • gosod cofnodydd data i gofnodi data dibynadwy
  • casglu a choladu data dros amser i nodi patrymau mewn defnydd ynni
  • dehongli a dadansoddi data er mwyn sicrhau newidiadau mewn ymddygiad
  • sut y gellir newid newidynnau gan ddefnyddiwr i ffurfweddu system cyn ei defnyddio

Sut i'w ddefnyddio

  • Yn gyntaf, defnyddiwch brosiect Mesurydd ynni golau i ganfod y darlleniadau pan fydd eich goleuadau ymlaen ac wedi'u diffodd. Sicrhewch eich bod yn gwneud hyn yn yr un lle ac amodau goleuo y byddwch yn gosod eich micro:bit monitro ynddo, a sicrhau nad yw golau dydd yn sbarduno darlleniad ffug bod eich goleuadau ymlaen.
  • Rhoi eich darlleniad golau yn y cod lle mae'r newidyn LIGHT wedi'i osod. Rydym wedi rhoi'r rhif 100 i chi ond siŵr o fod bydd angen i chi ei newid cyn fflachio'r cod ar eich micro:bit.
  • Cysylltu pecyn batri a gosod eich micro:bit dan y golau rydych eisiau ei fonitro. Dylech weld dot ar y dangosydd pan fydd y golau wedi'i ddiffodd, a bydd y dangosydd yn goleuo pan fydd eich golau ymlaen. Os nad yw hyn yn gweithio, ystyried defnyddio'r prosiect Mesurydd golau eto i ddod o hyd i lefel y golau pan fydd y golau ymlaen, neu symud y micro:bit.
  • Bydd y micro:bit yn parhau i amseru a phan fyddwch yn gwasgu botwm B bydd yn dangos am ba mor hir mae'r golau wedi bod ymlaen mewn munudau.

Sut mae'n gweithio

  • Mae'r rhaglen yn defnyddio newidyn Boolean a elwir yn timing i reoli'r rhaglen. Gall fod gan newidynnau Boolean ddau werth yn unig: gwir neu gau.
  • Os yw darlleniad y synhwyrydd golau'n uwch na'r lefel a osodwyd gennych, mae'n dechrau'r amserydd ac yn goleuo'r dangosydd LED. Os yw'n disgyn yn is na'r lefel hon, mae'n stopio'r amserydd ac yn dangos dot ar y dangosydd.
  • Mae'r prosiect hwn yn defnyddio hysteresis i sicrhau nad yw'r amserydd yn troi ymlaen ac yn diffodd yn rhy aml pan fydd lefel y golau'n newid ychydig o amgylch y trothwy ar gyfer sbarduno'r amserydd. Mae'n creu cylch mwy o amgylch y trothwy y mae'n rhaid ei groesi cyn i'r amserydd gael ei droi ymlaen neu'i ddiffodd.
  • Mae hysteresis yn nodwedd gyffredin mewn systemau rheoli sy'n defnyddio synwyryddion, er enghraifft mewn systemau gwresogi sydd â thermostat. Os ydych yn gosod eich thermostat i dymheredd penodol, nid ydych am i'r gwres droi ymlaen ac i ffwrdd drwy'r amser yn gyflym iawn pan fydd y tymheredd yn hofran o amgylch y rhif rydych wedi'i osod. Mae hysteresis yn atal hyn rhag digwydd.

Beth sydd ei angen arnoch

  • micro:bit
  • Golygydd MakeCode neu Python
  • pecyn batri (argymhellir)

Cam 2: Codio

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        

Cam 3: Gwella

  • Newid y patrymau a ddangosir ar y dangosydd LED i wneud i'r batrïau bara'n hirach, neu bylu'r dangosydd.
  • Defnyddio'r amser a gofnodwyd i gyfrifo faint o drydan rydych wedi'i ddefnyddio a faint y gallai gostio. Mae manylion yn ein prosiect Cyfrifiannell cost ynni
  • Defnyddio'r un cod i fesur oriau golau'r haul. Defnyddio'r prosiect Mesurydd golau i gyfrifo gwerth y golau pan fydd yr haul yn tywynnu ar y micro:bit a phan bydd yn gymylog. Efallai y bydd angen i chi wneud cynhwysydd ar gyfer eich micro:bit gyda chaead tryloyw i wasgaru'r golau a diogelu'r micro:bit rhag glaw, er enghraifft hen gynhwysydd bwyd plastig.
Ariennir gan Lywodraeth Cymru / Funded by Welsh Government

Translation generously supported by the Welsh Government.