Program semafora sastavljen od 5 LED dioda od kojih su 3 za semafor vozila, a 2 za semafor pješaka. Program započinje "servisnim" načinom blinkanjem žutog svjetla semafora te pokretanjem automatskog ciklusa u kojem se izmjenjuje rad semafora za vozila te semafora za pješake.

Dependencies:   mbed

https://os.mbed.com/media/uploads/tdragosa/2021-05-05_13-29-45.jpg

main.cpp

Committer:
tdragosa
Date:
2021-05-05
Revision:
0:957be69322e9

File content as of revision 0:957be69322e9:

#include "mbed.h" // pozivanje mbed.h biblioteke
DigitalOut crveno_v(D3); // deklariranje output pina za diodu crvenog svijetla semafora vozila
DigitalOut zuto_v(D4); // deklariranje output pina za diodu žutog svijetla semafora vozila
DigitalOut zeleno_v(D5); // deklariranje output pina za diodu zelenog svijetla semafora vozila
DigitalOut crveno_p(D6); // deklariranje output pina za diodu crvenoog svijetla semafora pješaka
DigitalOut zeleno_p(D7);// deklariranje output pina za diodu zelenog svijetla semafora pješaka
Ticker vozila; // deklariranje tickera vozila
Ticker pjesaci; // deklariranje tickera pješaci
int i=0; // deklariranje integera i



void voz () // početak podfunkcije za ciklus semafora vozila
{
    crveno_v=1;
    zuto_v=0;
    zeleno_v=0;
    crveno_p=1;
    zeleno_p=0;
    wait(2);

    crveno_v=1;
    zuto_v=1;
    zeleno_v=0;
    crveno_p=1;
    zeleno_p=0;
    wait(2);

    crveno_v=0;
    zuto_v=0;
    zeleno_v=1;
    crveno_p=1;
    zeleno_p=0;
    wait(15);
}



void pjes () // početak podfunkcije za ciklus semafora pješaka
{



    crveno_v=0;
    zuto_v=1;
    zeleno_v=0;
    crveno_p=1;
    zeleno_p=0;
    wait(2);

    crveno_v=1;
    zuto_v=0;
    zeleno_v=0;
    crveno_p=1;
    zeleno_p=0;
    wait(2);

    crveno_v=1;
    zuto_v=0;
    zeleno_v=0;
    crveno_p=0;
    zeleno_p=1;
    wait(10)

}


int main() // glavna funkcija
{
    crveno_v=0;
    zuto_v=0;
    zeleno_v=0;
    crveno_p=0;
    zeleno_p=0;

    for(i=0;  i<=10; i++) { // 10 promjena stanja
        zuto_v=!zuto_v; // u što se upisuje - što se upisuje
        wait(0.5);
    }

    crveno_v=1;
    zuto_v=0;
    zeleno_v=0;
    crveno_p=1;
    zeleno_p=0;
    wait(5);

    zuto_v=1;
    wait(2);

    crveno_v=0;
    zuto_v=0;
    zeleno_v=1;
    wait(10);

    pjesaci.attach(&pjes, 1); //
    vozila.attach(&voz, 1); //

}