
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@25:ec72507ea71b, 2020-04-12 (annotated)
- 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?
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 | 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 | } |