Você está na página 1de 2

A B C D E F G H J K

0 0

SIM1
1 1
13 12
R4
D13 D12
3V3 D11
11
REF D10
10 10R
A0 9 R3

ATMEGA328P
A0 D9
A1 8

ATMEL
A1 D8
A2 7
A3
A2 D7
6 10R
2 A3 D6 2
A4 A4 D5
5 R2
A5 A5 D4
4
A6 A6 D3
3 R1
A7 A7 D2
2 10R
5V GND
RST RST
10R
0
GND < RX D0
1 D1 D4 D3 D2
3 VIN > TX D1
LED-BLUE 3
www.arduino.cc
blogembarcado.blogspot.com LED-GREEN LED-YELLOW LED-RED
SIMULINO NANO

4 4

5 5

6 6

7 7

8 8

FILE NAME: templet.pdsprj DATE:

DESIGN TITLE: templet.pdsprj 2/28/2017


9 PAGE: 9
PATH: D:\Pengajaran_Genab_2017\Embedded_System_Shortcut\templet.pdsprj
1 of 1
BY: @AUTHOR REV:@REV TIME: 11:47:31 PM
A B C D E F G H J K
1 /* Main.ino file generated by New Project wizard
2 *
3 * Created: Kam Feb 16 2017
4 * Processor: ATmega328P
5 * Compiler: Arduino AVR (Proteus)
6 */
7
8 unsigned int TimeRed = 1000;
9 unsigned int TimeYel = 500;
10 unsigned int TimeGrn = 1000;
11 unsigned long RunTimeStar;
12 bool SamplingTime = false;
13 int phase = 1;
14
15 void setup()
16 { // put your setup code here, to run once:
17 pinMode(2,OUTPUT);
18 pinMode(3,OUTPUT);
19 pinMode(4,OUTPUT);
20 pinMode(5,OUTPUT);
21 pinMode(A0,INPUT_PULLUP);
22 }
23
24 void loop()
25 { // put your main code here, to run repeatedly:
26 PushB();
27 Traffic();
28 }
29
30 void Traffic(){
31 unsigned long RunTime;
32
33 if(SamplingTime){
34 if(phase == 1){
35 RunTime = millis();
36 digitalWrite(5,HIGH);
37 digitalWrite(4,LOW);
38 digitalWrite(3,LOW);
39 if((RunTime - RunTimeStar) >= TimeRed) phase = 2;
40 }else if(phase == 2){
41 RunTime = millis();
42 digitalWrite(5,LOW);
43 digitalWrite(4,HIGH);
44 digitalWrite(3,LOW);
45 if((RunTime - RunTimeStar) >= (TimeRed+TimeYel)) phase = 3;
46 }else if(phase == 3){
47 RunTime = millis();
48 digitalWrite(5,LOW);
49 digitalWrite(4,LOW);
50 digitalWrite(3,HIGH);
51 if((RunTime - RunTimeStar) >= (TimeRed+TimeYel+TimeGrn)){
52 phase = 1;
53 SamplingTime = false;
54 }
55 }
56 }else{
57 RunTimeStar = millis();
58 SamplingTime = true;
59 }
60 }
61
62 void PushB(){
63 bool i = digitalRead(A0);
64 if(!i) digitalWrite(2,HIGH);
65 else digitalWrite(2,LOW);
66 }

Você também pode gostar