Components and supplies
Arduino UNO
LED (generic)
Tools and machines
Soldering iron (generic)
Apps and platforms
Arduino IDE
Project description
Code
Semaforos_VAP.ino
arduino
1//Semaforos 2 Vias 2//Projecto Integrado ENIDH CET EAN 2013/2014 3//Luis Sousa 4//Pedro Mealha 5//Emanuel Carpinteiro 6 7// Variaveis 8 9int RED1 = 0; 10int YEL1 = 1; 11int GRE1 = 2; 12int RED2 = 3; 13int YEL2 = 4; 14int GRE2 = 5; 15 16int PRED1 = 6; 17int PGRE1 = 7; 18int PRED2 = 8; 19int PGRE2 = 9; 20 21int PREQ1=10; 22int PREQ2=11; 23 24int BT1=HIGH; //Botao 1 25int BT2=HIGH; //Botao 2 26int FLASH=HIGH; //Amarelos Intermitentes 27int TEST=HIGH; //Funo de teste de LEDs 28 29int tgre = 12000; // 12s 30int tyel = 2000; // 2s 31int tred = 12000; // 12s 32 33int mem0 = LOW; 34int mem1 = LOW; 35int mem2 = LOW; 36int mem3 = LOW; 37int mem4 = LOW; 38int mem5 = LOW; 39int mem6 = LOW; 40int mem7 = LOW; 41int mem8 = LOW; 42int mem9 = LOW; 43 44// basic functions 45void setup() 46{ 47 pinMode(RED1, OUTPUT); 48 pinMode(YEL1, OUTPUT); 49 pinMode(GRE1, OUTPUT); 50 pinMode(RED2, OUTPUT); 51 pinMode(YEL2, OUTPUT); 52 pinMode(GRE2, OUTPUT); 53 pinMode(PRED1, OUTPUT); 54 pinMode(PGRE1, OUTPUT); 55 pinMode(PRED2, OUTPUT); 56 pinMode(PGRE2, OUTPUT); 57 58 pinMode(PREQ1, INPUT); 59 pinMode(PREQ2, INPUT); 60 61 test1(); // Sequencia de teste de LEDs 62//test2(); 63 blinkYellow(); //Amarelo intermitente 64} 65 66void loop() 67{ 68 //Tempo 1 69 //Via 1 com vermelho 70 digitalWrite(RED1, HIGH); 71 digitalWrite(YEL1, LOW); 72 digitalWrite(GRE1, LOW); 73 delay(1000);//Delay de segurana; 74 //peoes Via 1 verde, 75 digitalWrite(PRED1, LOW); 76 digitalWrite(PGRE1, HIGH); 77 //peoes Via 2 vermelho 78 digitalWrite(PRED2, HIGH); 79 digitalWrite(PGRE2, LOW); 80 //delay(500);//Delay de segurana; 81 //Via 2 com verde 82 digitalWrite(RED2, LOW); 83 digitalWrite(YEL2, LOW); 84 digitalWrite(GRE2, HIGH); 85 86 //espera tempo do vermelho 87 //delay(tred); 88 for (int i=0; i <= (tred/100); i++) 89 { 90 BT1=digitalRead(PREQ1); 91 BT2=digitalRead(PREQ2); 92 BT1=!BT1; 93 BT2=!BT2; 94 FLASH=BT1&&BT2; 95 if (FLASH) 96 { 97 blinkYellow(); 98 BT1=(LOW); 99 } 100 if (BT1) 101 { 102 i=(tred/100); 103 } 104 delay(100); 105 } 106 //pisca verde peoes 107 for (int i=0; i <= 5; i++) 108 { 109 digitalWrite (PGRE1,LOW); 110 delay (500); 111 digitalWrite (PGRE1,HIGH); 112 delay (500); 113 } 114 115 //Tempo 2 116 //Via 2 com amarelo 117 // digitalWrite(RED1, HIGH); 118 // digitalWrite(YEL1, LOW); 119 // digitalWrite(GRE1, LOW); 120 digitalWrite(PGRE1, LOW); 121 digitalWrite(PRED1, HIGH); 122 //delay (500); 123 //digitalWrite(RED2, LOW); 124 digitalWrite(YEL2, HIGH); 125 digitalWrite(GRE2, LOW); 126 //digitalWrite(PRED2, HIGH); 127 //digitalWrite(PGRE2, LOW); 128 delay (tyel); 129 130 //Tempo 3 131 //Via 2 com vermelho 132 digitalWrite(RED2, HIGH); 133 digitalWrite(YEL2, LOW); 134 //digitalWrite(GRE2, LOW); 135 delay(1000);//Delay de segurana; 136 //peoes Via 2 verde, 137 digitalWrite(PRED2, LOW); 138 digitalWrite(PGRE2, HIGH); 139 //peoes Via 1 vermelho 140 //digitalWrite(PRED1, HIGH); 141 //digitalWrite(PGRE1, LOW); 142 //delay(500);//Delay de segurana; 143 //Via 1 com verde 144 digitalWrite(RED1, LOW); 145 //digitalWrite(YEL1, LOW); 146 digitalWrite(GRE1, HIGH); 147 148 //espera tempo do verde 149 //delay (tgre); 150 for (int i=0; i <= (tgre/100); i++) 151 { 152 BT1=digitalRead(PREQ1); 153 BT2=digitalRead(PREQ2); 154 BT1=!BT1; 155 BT2=!BT2; 156 FLASH=BT1&&BT2; 157 if (FLASH) 158 { 159 blinkYellow(); 160 BT2=LOW; 161 } 162 if (BT2) 163 { 164 i=(tgre/100); 165 } 166 delay(100); 167 } 168 169 //pisca verde peoes 170 for (int i=0; i <= 5; i++) 171 { 172 digitalWrite (PGRE2,LOW); 173 delay (500); 174 digitalWrite (PGRE2,HIGH); 175 delay (500); 176 } 177 178 //Tempo 4 179 //Via 1 com amarelo 180 // digitalWrite(RED2, HIGH); 181 // digitalWrite(YEL2, LOW); 182 // digitalWrite(GRE2, LOW); 183 digitalWrite(PGRE2, LOW); 184 digitalWrite(PRED2, HIGH); 185 //delay (500); 186 //digitalWrite(RED1, LOW); 187 digitalWrite(YEL1, HIGH); 188 digitalWrite(GRE1, LOW); 189 //digitalWrite(PRED1, HIGH); 190 //digitalWrite(PGRE1, LOW); 191 delay (tyel); 192} 193 194void blinkYellow() 195{ 196 //memoriza valores actuais dos LEDS 197 mem0 = digitalRead(RED1); 198 mem1 = digitalRead(YEL1); 199 mem2 = digitalRead(GRE1); 200 mem3 = digitalRead(RED2); 201 mem4 = digitalRead(YEL2); 202 mem5 = digitalRead(GRE2); 203 mem6 = digitalRead(PRED1); 204 mem7 = digitalRead(PGRE1); 205 mem8 = digitalRead(PRED2); 206 mem9 = digitalRead(PGRE2); 207 208 //Apaga todos os LEDS 209 digitalWrite(RED1, LOW); 210 digitalWrite(YEL1, LOW); 211 digitalWrite(GRE1, LOW); 212 digitalWrite(RED2, LOW); 213 digitalWrite(YEL2, LOW); 214 digitalWrite(GRE2, LOW); 215 digitalWrite(PRED1, LOW); 216 digitalWrite(PGRE1, LOW); 217 digitalWrite(PRED2, LOW); 218 digitalWrite(PGRE2, LOW); 219 220 //Inicia sequencia de pisca pisca 221 for (int i=0; i <= 100; i++) 222 { 223 digitalWrite (YEL1,HIGH); 224 digitalWrite (YEL2,HIGH); 225 delay (500); 226 digitalWrite (YEL1,LOW); 227 digitalWrite (YEL2,LOW); 228 delay (500); 229 230 BT1=digitalRead(PREQ1);//l estado do botao 1 231 BT2=digitalRead(PREQ2);//l estado do botao 2 232 BT1=!BT1;//inverte estado do botao 1 233 BT2=!BT2;//inverte estado do botao 2 234 TEST=BT1&&BT2; 235 FLASH=BT1||BT2;//Executa operao OR entre BT1 e BT2 e poe resultado na Variavel FLASH 236 if (TEST) 237 { 238 test1(); 239 FLASH=LOW; 240 } 241 if (FLASH) 242 { 243 i=100; 244 } 245 } 246 247 //Repoe LEDS como estavam originalmente 248 digitalWrite(RED1, mem0); 249 digitalWrite(YEL1, mem1); 250 digitalWrite(GRE1, mem2); 251 digitalWrite(RED2, mem3); 252 digitalWrite(YEL2, mem4); 253 digitalWrite(GRE2, mem5); 254 digitalWrite(PRED1, mem6); 255 digitalWrite(PGRE1, mem7); 256 digitalWrite(PRED2, mem8); 257 digitalWrite(PGRE2, mem9); 258} 259 260void test1() 261{ 262 //Inicia sequencia de luzes 263 delay(400); 264 for (int a=0; a <= 30; a++) 265 { 266 for (int i=0; i <= 9; i++) 267 { 268 digitalWrite (i,HIGH); 269 } 270 delay(100); 271 for (int i=9; i >= 0; i--) 272 { 273 digitalWrite (i,LOW); 274 } 275 delay (100); 276 277 BT1=digitalRead(PREQ1);//l estado do botao 1 278 BT2=digitalRead(PREQ2);//l estado do botao 2 279 BT1=!BT1;//inverte estado do botao 1 280 BT2=!BT2;//inverte estado do botao 2 281 FLASH=BT1||BT2;//Executa operao OR entre BT1 e BT2 e poe resultado na Variavel FLASH 282 283 if (FLASH) 284 { 285 a=30; 286 } 287 } 288} 289 290void test2() 291{ 292 //Inicia sequencia de luzes 293 delay(400); 294 for (int a=0; a <= 30; a++) 295 { 296 for (int i=0; i <= 9; i++) 297 { 298 digitalWrite (i,HIGH); 299 delay(100); 300 } 301 302 for (int i=9; i >= 0; i--) 303 { 304 digitalWrite (i,LOW); 305 delay (100); 306 } 307 308 BT1=digitalRead(PREQ1);//l estado do botao 1 309 BT2=digitalRead(PREQ2);//l estado do botao 2 310 BT1=!BT1;//inverte estado do botao 1 311 BT2=!BT2;//inverte estado do botao 2 312 FLASH=BT1||BT2;//Executa operao OR entre BT1 e BT2 e poe resultado na Variavel FLASH 313 314 if (FLASH) 315 { 316 a=30; 317 } 318 } 319} 320 321 322 323 324 325 326 327 328 329 330
Downloadable files
LED Circuit Diagram
DB 25 pin socket mounted on the frame. A cable is needed to connect to Arduino
LED Circuit Diagram
LED Circuit Diagram
DB 25 pin socket mounted on the frame. A cable is needed to connect to Arduino
LED Circuit Diagram
Comments
Only logged in users can leave comments
lmsousa
0 Followers
•0 Projects
Table of contents
Intro
17
0