Mikroupravljaci, konstrukcijski zadatak

U prilogu se nalazi kod za simulaciju upravljanja semaforom, tj podešavanje brzine izmjene svjetla na semaforu ovisno o gustoći prometa. Kao senzor koji detektira gustoću prometa korišten je potenciometar koji je spojen na analogni ulaz. Maksimalna vrijednost napona na potenciometru odgovara maksimalnom ciklusu semafora. Očitavanje s analognog ulaza i korekcija trajanja ciklusa se odvija samo nakon pritiska tipkala od strane operatera, što se vrši pomoću hardverskog prekida. Samo paljenje i gašenje led dioda sukladno stanju semafora se vrši u funkcijama koje se nalazi u biblioteci my_library.h.

https://os.mbed.com/media/uploads/julijacapjak/shema_fotka.png

my_library.h

Committer:
julijacapjak
Date:
2022-07-01
Revision:
1:46480da2ba4e
Parent:
0:0f1f798f7d20

File content as of revision 1:46480da2ba4e:

#include "mbed.h"

DigitalOut RedLED(D15);         //definiranje pina za crvenu ledicu
DigitalOut YellowLED(D14);      //definiranje pina za žutu ledicu
DigitalOut GreenLED(D13);       //definiranje pina za zelenu ledicu
AnalogIn Pot(A0);               //definiranje pina za potenciometar
InterruptIn button(D7);         //definiranje tipke za hardverski prekid

int Stanje;
void Upali_1(){                 //Funkcija koja pali zeleno svjetlo
            RedLED = 0;
            YellowLED = 0;
            GreenLED = 1;
    Stanje = 1;
    }
void Upali_2(){                 //Funkcija koja pali žuto svjetlo
            RedLED = 0;
            YellowLED = 1;
            GreenLED = 0;
    Stanje = 2;
    }
void Upali_3(){                 //Funkcija koja pali crveno svjetlo
            RedLED = 1;
            YellowLED = 0;
            GreenLED = 0;
    Stanje = 3;
    }
void Upali_0(){                 //Funkcija koja pali žuto i crveno svjetlo
            RedLED = 1;
            YellowLED = 1;
            GreenLED = 0;
    Stanje = 0;
    }