Compilar y cargar un programa que simule un semáforo, es decir que encienda un LED durante cierto tiempo, después otro LED otro cierto intervalo de tiempo y finalmente encienda un último LED tal y como lo hace un semáforo (incluir la intermitencia). El programa debe ser cíclico (utilizar leds internos de la tarjeta).

Dependencies:   mbed

Committer:
nervy
Date:
Sun Apr 12 03:56:57 2020 +0000
Revision:
25:ec72507ea71b
Parent:
24:7f14b70fc9ef
Child:
26:22f3f938cd2f
e3p3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nervy 25:ec72507ea71b 1 #include "mbed.h" //librería que nos permite utilizar comandos y sentencias propias de mbed
nervy 25:ec72507ea71b 2
nervy 25:ec72507ea71b 3 DigitalOut alto(LED1);
nervy 25:ec72507ea71b 4 DigitalOut prev(LED2);
nervy 25:ec72507ea71b 5 DigitalOut siga(LED3);
dan 0:7dec7e9ac085 6
nervy 25:ec72507ea71b 7 void luz_alto() {
nervy 25:ec72507ea71b 8 alto = 1;
nervy 25:ec72507ea71b 9 prev = 0;
nervy 25:ec72507ea71b 10 siga = 0;
nervy 25:ec72507ea71b 11 wait(5);
nervy 25:ec72507ea71b 12 }
dan 0:7dec7e9ac085 13
nervy 25:ec72507ea71b 14 void luz_preventivo() {
nervy 25:ec72507ea71b 15 alto = 0;
nervy 25:ec72507ea71b 16 prev = 1;
nervy 25:ec72507ea71b 17 siga = 0;
nervy 25:ec72507ea71b 18 wait(1);
nervy 25:ec72507ea71b 19 }
nervy 25:ec72507ea71b 20
nervy 25:ec72507ea71b 21 void luz_siga() {
nervy 25:ec72507ea71b 22 alto = 0;
nervy 25:ec72507ea71b 23 prev = 0;
nervy 25:ec72507ea71b 24 siga = 1;
nervy 25:ec72507ea71b 25 wait(3);
nervy 25:ec72507ea71b 26 }
nervy 25:ec72507ea71b 27
nervy 25:ec72507ea71b 28 void parpadear_luz(DigitalOut luz) {
nervy 25:ec72507ea71b 29 for(int i=0; i<4; i++) {
nervy 25:ec72507ea71b 30 luz = 1;
stevep 4:81cea7a352b0 31 wait(0.2);
stevep 4:81cea7a352b0 32 }
dan 0:7dec7e9ac085 33 }
nervy 25:ec72507ea71b 34
nervy 25:ec72507ea71b 35 int main() {
nervy 25:ec72507ea71b 36
nervy 25:ec72507ea71b 37 while(true)
nervy 25:ec72507ea71b 38 {
nervy 25:ec72507ea71b 39 luz_alto();
nervy 25:ec72507ea71b 40 parpadear_luz(alto);
nervy 25:ec72507ea71b 41 luz_preventivo();
nervy 25:ec72507ea71b 42 luz_siga();
nervy 25:ec72507ea71b 43 parpadear_luz(siga);
nervy 25:ec72507ea71b 44 }
nervy 25:ec72507ea71b 45
nervy 25:ec72507ea71b 46 }