Konstrukcijski zadatak iz predmeta Mikroupravljači, Božićna svjetla. Program koristi jedan NUCLEO-F072RB, tri LED diode(crvenu, žutu i zelenu), žice za spajanje i eksperimentalnu ploču. Kada se priključi napajanje NUCLEO-u, sa pritiskom na USER gumb se uključuju LED diode, višestrukim pritiskom se mjenja kojim ritmom svjetle, nakon 10 sekundi radi zaštite se svjetla gase.

Dependencies:   led

https://os.mbed.com/media/uploads/asantek/konstrukcijski_mikroupravljaci_shema.jpg

main.cpp

Committer:
asantek
Date:
2021-02-23
Revision:
3:3c6cfb9e5bc9
Parent:
1:cd07874dbf19

File content as of revision 3:3c6cfb9e5bc9:

#include "mbed.h"
#include "led.h"
Serial pc(USBTX, USBRX);
LED led1(D2);
LED led2(D3);
LED led3(D4);
Timer svjetla;
Timer debounce;
InterruptIn gumb(USER_BUTTON);
int x=0;
int i=0;
void pritisak()
{
    if(debounce.read_ms()>200) {
        x++;
    }
    debounce.reset();
}
int main()
{//Inicijalizacija LED-ica
    led1.stanje(0);
    led2.stanje(0);
    led3.stanje(0);
    debounce.start();
    svjetla.reset();
    gumb.rise(&pritisak);
    svjetla.start();
    //Beskonačna while petlja
    while (true) {
        //Nakon 10 sekundi isključi LED svjetla
        if(svjetla.read_ms()>10000){
            led1.stanje(0);
            led2.stanje(0);
            led3.stanje(0);
            }
        else{
            if(x==0){
                led1.stanje(0);
                led2.stanje(0);
                led3.stanje(0);
                }
            if(x==1){
                i++;
                if(i==1){led1.stanje(1);led2.stanje(0);led3.stanje(0);}
                if(i==2){led1.stanje(0);led2.stanje(1);led3.stanje(0);}
                if(i==3){led1.stanje(0);led2.stanje(0);led3.stanje(1);}
                if(i==4){i=0;}
                wait(0.1);
                }
            if(x==2){
                i++;
                if(i==1){led1.stanje(1);led2.stanje(0);led3.stanje(0);}
                if(i==2){led1.stanje(0);led2.stanje(1);led3.stanje(0);}
                if(i==3){led1.stanje(0);led2.stanje(0);led3.stanje(1);}
                if(i==4){i=0;}
                wait(0.2);
                }
            if(x==3){
                led1.stanje(1);led2.stanje(1);led3.stanje(1);
                wait(0.2);
                led1.stanje(0);led2.stanje(0);led3.stanje(0);
                wait(0.2);
                }
            if(x==4){x=0;}
            }
    }
}