
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).
main.cpp@26:22f3f938cd2f, 2020-04-24 (annotated)
- Committer:
- nervy
- Date:
- Fri Apr 24 22:46:41 2020 +0000
- Revision:
- 26:22f3f938cd2f
- Parent:
- 25:ec72507ea71b
x
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nervy | 25:ec72507ea71b | 1 | #include "mbed.h" //librería que nos permite utilizar comandos y sentencias propias de mbed |
nervy | 26:22f3f938cd2f | 2 | Serial com1(USBTX, USBRX); |
nervy | 26:22f3f938cd2f | 3 | DigitalOut rojo(LED1); |
nervy | 26:22f3f938cd2f | 4 | DigitalOut verde(LED2); |
nervy | 26:22f3f938cd2f | 5 | DigitalOut azul(LED3); |
dan | 0:7dec7e9ac085 | 6 | |
nervy | 25:ec72507ea71b | 7 | void luz_alto() { |
nervy | 26:22f3f938cd2f | 8 | rojo = 0; |
nervy | 26:22f3f938cd2f | 9 | verde = 1; |
nervy | 26:22f3f938cd2f | 10 | azul = 1; |
nervy | 25:ec72507ea71b | 11 | wait(5); |
nervy | 25:ec72507ea71b | 12 | } |
dan | 0:7dec7e9ac085 | 13 | |
nervy | 25:ec72507ea71b | 14 | void luz_preventivo() { |
nervy | 26:22f3f938cd2f | 15 | rojo = 0; |
nervy | 26:22f3f938cd2f | 16 | verde = 0; |
nervy | 26:22f3f938cd2f | 17 | azul = 1; |
nervy | 25:ec72507ea71b | 18 | wait(1); |
nervy | 25:ec72507ea71b | 19 | } |
nervy | 25:ec72507ea71b | 20 | |
nervy | 25:ec72507ea71b | 21 | void luz_siga() { |
nervy | 26:22f3f938cd2f | 22 | rojo = 1; |
nervy | 26:22f3f938cd2f | 23 | verde = 0; |
nervy | 26:22f3f938cd2f | 24 | azul = 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 | 26:22f3f938cd2f | 40 | parpadear_luz(rojo); |
nervy | 25:ec72507ea71b | 41 | luz_preventivo(); |
nervy | 25:ec72507ea71b | 42 | luz_siga(); |
nervy | 26:22f3f938cd2f | 43 | parpadear_luz(verde); |
nervy | 25:ec72507ea71b | 44 | } |
nervy | 25:ec72507ea71b | 45 | |
nervy | 25:ec72507ea71b | 46 | } |