from machine import Pin
from time import sleep
import random
import time
# Definieer LEDs en knop
leds = [Pin(2, Pin.OUT), Pin(3, Pin.OUT), Pin(4, Pin.OUT), Pin(5, Pin.OUT), Pin(6, Pin.OUT), Pin(7, Pin.OUT), Pin(8, Pin.OUT), Pin(9, Pin.OUT)] # Pinnen voor LEDs
button1 = Pin(10, Pin.IN, Pin.PULL_UP) # Knop 1 op pin 10
# alle LEDs uit bij de start
for led in leds:
led.off()
def zet_led_aan(led_index): # Zet een LED aan.
if 0 <= led_index < len(leds):
leds[led_index].on()
def zet_led_uit(led_index): # Zet een LED uit.
if 0 <= led_index < len(leds):
leds[led_index].off()
def zet_alle_leds_uit(): # Zet alle LEDs uit.
for led in leds:
led.off()
def laat_led_knipperen(led_indices, duur_aan, duur_uit, herhalingen): # Laat LEDs knipperen.
for _ in range(herhalingen):
for led_index in led_indices:
zet_led_aan(led_index)
sleep(duur_aan)
for led_index in led_indices:
zet_led_uit(led_index)
sleep(duur_uit)
def simulate_temperature(): # Simuleer temperatuurwaarde.
return 9 #temperatuurwaarde
def temp_naar_celsius(temp_waarde): # Converteer temperatuurwaarde naar Celsius.
return temp_waarde
def handle_button1_press(huidige_temp_celsius): # LED's te beheren op basis van de temperatuur.
print(f"Huidige temperatuur: {huidige_temp_celsius:.2f} C") # Debugging
zet_alle_leds_uit() # Zet alle LEDs uit
tweede_cijfer = abs(int(huidige_temp_celsius)) % 10 # Verkrijg van het tweede cijfer van het temperatuur.
led_mapping = {
1: [2], # Zet LED 3 aan = 1
2: [3], # Zet LED 4 aan = 2
3: [4], # Zet LED 5 aan = 3
4: [5], # Zet LED 6 aan = 4
5: [6], # Zet LED 7 aan = 5
6: [7], # Zet LED 8 aan = 6
7: [7, 2], # Zet LED 8, 3 aan = 7
8: [7, 2, 3], # Zet LED 8, 3, 4 aan = 8
9: [7, 4, 3, 2] # Zet LED 8, 5, 4, 3 aan = 9
}
# de LED's uit de mapping en ze aan zetten
leds_to_turn_on = led_mapping.get(tweede_cijfer, [])
for led in leds_to_turn_on:
zet_led_aan(led)
def hoofd():
while True:
huidige_temp = simulate_temperature() # Gebruik gesimuleerde temperatuur
huidige_temp_celsius = temp_naar_celsius(huidige_temp) # Converteer naar Celsius
if not button1.value(): # Controleer of Button 1 is ingedrukt
handle_button1_press(huidige_temp_celsius)
else:
zet_alle_leds_uit() # Zet alle LEDs uit als de knop niet wordt ingedrukt
# LEDs aan op basis van temperatuur
if huidige_temp_celsius < 0:
zet_led_aan(1) # LED 2 (onder 0°C)
if -10 <= huidige_temp_celsius < 0:
zet_led_aan(2) # LED 3 (-10°C tot 0°C)
else:
zet_led_aan(0) # LED 1 (boven 0°C)
if 0 <= huidige_temp_celsius < 10:
zet_led_aan(3) # LED 4 (0°C tot 10°C)
elif 10 <= huidige_temp_celsius < 20:
zet_led_aan(4) # LED 5 (10°C tot 20°C)
elif 20 <= huidige_temp_celsius < 30:
zet_led_aan(5) # LED 6 (20°C tot 30°C)
elif 30 <= huidige_temp_celsius < 40:
zet_led_aan(6) # LED 7 (30°C tot 40°C)
elif 40 <= huidige_temp_celsius < 50:
zet_led_aan(7) # LED 8 (40°C tot 50°C)
# Toon temperatuur
print(f"Temperatuur: {huidige_temp_celsius:.2f} C")
sleep(1) # Wacht 1 seconde
# Start de hoofd functie
hoofd()
'''
Instructie:
Dit is een digitale thermometer.
Bij het opstarten van het programma is de huidige temperatuur in tientallen zichtbaar.
Als de rode LED (0) brandt, betekent dit dat de temperatuur boven of gelijk aan 0°C is.
Als de groene LED (1) brandt, betekent dit dat de temperatuur onder 0°C is.
Elke oranje LED heeft zijn eigen temperatuurbereik bij het opstarten:
3e LED vanaf rood of oranje (LED 1) = -10°C tot 0°C
4e LED vanaf rood of oranje (LED 2) = 0°C tot 10°C
5e LED vanaf rood of oranje (LED 3) = 10°C tot 20°C
6e LED vanaf rood of oranje (LED 4) = 20°C tot 30°C
7e LED vanaf rood of oranje (LED 5) = 30°C tot 40°C
8e LED vanaf rood of oranje (LED 6) = 40°C tot 50°C
Door button één ingedrukt te houden, wordt het tweede cijfer van de temperatuur zichtbaar.
Omdat er slechts zes oranje LED's beschikbaar zijn, worden na nummer 6 combinaties van LED's
gebruikt voor de cijfers 7 tot en met 9:
LED 8 samen met LED 3 = 7
LED 8 samen met LED 3 en 4 = 8
LED 8 samen met LED 3, 4 en 5 = 9
Let op!!!
Als alleen het groene licht brandt bij het opstarten van het programma, betekent
dit dat de temperatuur lager is dan -10°C.'''