Corrigé situation A avec LED : un appui sur le bouton A passe le feu maître à l'orange et l'autre feu au rouge.

MéthodeCode feu Maître

1
from microbit import *
2
import radio
3
4
radio.config(group=2)
5
radio.on()
6
7
DUREE = 10  # 10 secondes
8
attente = DUREE
9
feuRouge = True
10
11
def afficheRouge():
12
    pin1.write_digital(1)
13
    pin0.write_digital(0)
14
def afficheOrange():
15
    pin1.write_digital(0)
16
    pin0.write_digital(1)
17
def afficheAttente(attente):
18
    display.show(str(attente))
19
20
while True:
21
    # Arrivee du vehicule prioritaire au feu maitre
22
    if button_a.was_pressed():
23
        feuRouge = False
24
        attente = DUREE
25
        radio.send("ROUGE")
26
27
    # Affichage Rouge / Orange
28
    if feuRouge :
29
        afficheRouge()
30
    else :
31
        afficheOrange()
32
33
    # Gestion de l'attente
34
    sleep(1000)
35
    attente -= 1
36
    afficheAttente(attente)
37
    radio.send(str(attente))
38
39
    # Alternance du feu
40
    if attente == 0 :
41
        attente=DUREE
42
        feuRouge = not feuRouge
43
        if feuRouge :
44
            radio.send("VERT")
45
        else:
46
            radio.send("ROUGE")

MéthodeCode feu Esclave

pas de modification par rapport à la version précédente

1
from microbit import *
2
import radio
3
4
radio.config(group=2)
5
radio.on()
6
7
feuRouge = True
8
9
def afficheRouge():
10
    pin1.write_digital(1)
11
    pin0.write_digital(0)
12
def afficheOrange():
13
    pin1.write_digital(0)
14
    pin0.write_digital(1)
15
def afficheAttente(attente):
16
    display.show(str(attente))
17
18
while True:
19
    # Traitement des messages du maitre
20
    incoming = radio.receive()
21
    if incoming:
22
        if incoming == "VERT" :
23
            feuRouge = False
24
        elif incoming == "ROUGE" :
25
            feuRouge = True
26
        elif len(incoming) ==1:
27
            afficheAttente(int(incoming))
28
29
    # Affichage Rouge / Orange
30
    if feuRouge :
31
        afficheRouge()
32
    else :
33
        afficheOrange()