Ovim programom se upravlja rasvjetom.

Dependencies:   Light

Committer:
keepurhealth
Date:
Sat Aug 27 12:05:22 2022 +0000
Revision:
1:ac300d8e2d1e
Parent:
0:b41f2bc36513
Popravljeno upravljanje i kontrola V2.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
keepurhealth 0:b41f2bc36513 1 /* mbed Microcontroller Library
keepurhealth 0:b41f2bc36513 2 * Copyright (c) 2019 ARM Limited
keepurhealth 0:b41f2bc36513 3 * SPDX-License-Identifier: Apache-2.0
keepurhealth 0:b41f2bc36513 4 *Author: Hrvoje Čudina
keepurhealth 0:b41f2bc36513 5 */
keepurhealth 0:b41f2bc36513 6
keepurhealth 0:b41f2bc36513 7 #include "mbed.h" // Inicijalizacija mbed biblioteke
keepurhealth 0:b41f2bc36513 8 #include "platform/mbed_thread.h" // Inicijalizacija mbed_thread biblioteke
keepurhealth 0:b41f2bc36513 9 #include "Light.h" // Inicijalizacija Light biblioteke
keepurhealth 0:b41f2bc36513 10
keepurhealth 0:b41f2bc36513 11 InterruptIn button(PA_4); // Inicijalizacija hardverskog prekida
keepurhealth 0:b41f2bc36513 12 DigitalOut Yellow(PA_15); // Inicijalizacija digitalnog izlaza Yellow
keepurhealth 0:b41f2bc36513 13 Timer debounce; // Inicijalizacija tajmera za debounce
keepurhealth 0:b41f2bc36513 14
keepurhealth 0:b41f2bc36513 15 void ON(void); // Inicijalizacija prototipa funkcije
keepurhealth 0:b41f2bc36513 16
keepurhealth 0:b41f2bc36513 17 void Turn_OFF(){ // Funkcija za primjenu "Ticker" klase
keepurhealth 0:b41f2bc36513 18 if (Yellow == 1){
keepurhealth 0:b41f2bc36513 19 Yellow = 0;
keepurhealth 0:b41f2bc36513 20 }
keepurhealth 0:b41f2bc36513 21 }
keepurhealth 0:b41f2bc36513 22
keepurhealth 0:b41f2bc36513 23 int main()
keepurhealth 0:b41f2bc36513 24 {
keepurhealth 0:b41f2bc36513 25 Light LED1(PA_13); // Inicijalizacija konstruktora klase Light
keepurhealth 0:b41f2bc36513 26 Light LED2(PA_14); // Inicijalizacija konstruktora klase Light
keepurhealth 0:b41f2bc36513 27
keepurhealth 0:b41f2bc36513 28 Ticker OFF; // Inicijalizacija konstruktora klase Ticker
keepurhealth 0:b41f2bc36513 29
keepurhealth 0:b41f2bc36513 30 DigitalIn Sensor_1(PA_0); // Inicijalizacija digitalnog ulaza
keepurhealth 0:b41f2bc36513 31 Sensor_1.mode(PullUp); // Inicijalizacija moda digitalnog ulaza
keepurhealth 0:b41f2bc36513 32
keepurhealth 0:b41f2bc36513 33 DigitalIn Sensor_2(PA_1); // Inicijalizacija digitalnog ulaza
keepurhealth 0:b41f2bc36513 34 Sensor_2.mode(PullUp); // Inicijalizacija moda digitalnog ulaza
keepurhealth 0:b41f2bc36513 35
keepurhealth 0:b41f2bc36513 36 int n = 200; // Definiranje varijable n
keepurhealth 0:b41f2bc36513 37
keepurhealth 0:b41f2bc36513 38 debounce.start(); // Početak odbrojavanja tajmera
keepurhealth 0:b41f2bc36513 39 button.rise(&ON); // Dodjela funkcije vanjskom prekidu
keepurhealth 0:b41f2bc36513 40 OFF.attach(&Turn_OFF, 5.0); // Dodjela funkcije Ticker konstruktoru
keepurhealth 0:b41f2bc36513 41
keepurhealth 0:b41f2bc36513 42 while (true) {
keepurhealth 0:b41f2bc36513 43
keepurhealth 0:b41f2bc36513 44 if (Sensor_1 == 1){ // Provjera stanja senzora_1
keepurhealth 0:b41f2bc36513 45 LED1.Flash_control(n);
keepurhealth 0:b41f2bc36513 46 }
keepurhealth 0:b41f2bc36513 47 else {
keepurhealth 0:b41f2bc36513 48 LED1.Flash_off();
keepurhealth 0:b41f2bc36513 49 }
keepurhealth 0:b41f2bc36513 50
keepurhealth 0:b41f2bc36513 51 if (Sensor_2 == 1){ // Provjera stanja senzora_2
keepurhealth 0:b41f2bc36513 52 LED2.Flash_control(n);
keepurhealth 0:b41f2bc36513 53
keepurhealth 0:b41f2bc36513 54 }
keepurhealth 0:b41f2bc36513 55 else {
keepurhealth 0:b41f2bc36513 56 LED2.Flash_off();
keepurhealth 0:b41f2bc36513 57 }
keepurhealth 0:b41f2bc36513 58
keepurhealth 0:b41f2bc36513 59
keepurhealth 0:b41f2bc36513 60 }
keepurhealth 0:b41f2bc36513 61 }
keepurhealth 0:b41f2bc36513 62
keepurhealth 0:b41f2bc36513 63 void ON(){ // Definirana funkcija za vanjski prekid
keepurhealth 0:b41f2bc36513 64 if(debounce.read_ms()>200){
keepurhealth 0:b41f2bc36513 65 Yellow = 1;
keepurhealth 0:b41f2bc36513 66 debounce.reset();
keepurhealth 0:b41f2bc36513 67 }
keepurhealth 0:b41f2bc36513 68 }