pregomal

Arduno V1.1

Jun 13th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. //Arduino Sinais V1.1
  2. /*Na declaração das cores, foi-se utilizado o padrão: XC, sendo X a rua e sendo C a cor.
  3. Para a definição da cor, utiliza-se o padrão R = Vermelho, Y = Amarelo, G = Verde*/
  4.  
  5. //Declarando os pinos de saída das luzes do sinal da rua A
  6. int SinalAR=2;
  7. int SinalAY=3;
  8. int SinalAG=4;
  9.  
  10. //Declarando os pinos de saída das luzes do sinal da rua B
  11. int SinalBR=8;
  12. int SinalBY=9;
  13. int SinalBG=10;
  14.  
  15. //Declarando os pinos de saída das luzes do sinal de pedestres
  16. int PedR=11;
  17. int PedG=12;
  18.  
  19. //Declara-se o pino de entrada do sinal do botão
  20. int botao=13;
  21.  
  22. //É utilizado para contar o tempo que o sinal A verde permaneceu ligado no código, até que tenham-se passado 12 segundos.
  23. int intervalo = 0;
  24.  
  25. void setup() {
  26. // Declaração dos modos de cada um dos pinos:
  27. pinMode(SinalAR, OUTPUT);
  28. pinMode(SinalAY, OUTPUT);
  29. pinMode(SinalAG, OUTPUT);
  30. pinMode(SinalBR, OUTPUT);
  31. pinMode(SinalBY, OUTPUT);
  32. pinMode(SinalBG, OUTPUT);
  33. pinMode(PedR, OUTPUT);
  34. pinMode(PedG, OUTPUT);
  35. pinMode(botao, INPUT);
  36. }
  37.  
  38. void loop() {
  39. //Funcionamento padrão do conjunto de Sinais.
  40. digitalWrite(PedR, HIGH);
  41. digitalWrite(SinalBR, HIGH);
  42. digitalWrite(SinalAG, HIGH);
  43. intervalo=0;
  44. while (intervalo < 1200){
  45. //Lê o estado do botão, e, caso retorne o valor HIGH, realiza o ciclo desejado.
  46. if (digitalRead(botao) == HIGH){
  47. //É necessário que tenha se passado 34 segundos desde o último pressionamento do botão, então só se precisa ler o estado do botão.
  48. digitalWrite(SinalAG, LOW);
  49. digitalWrite(SinalAY, HIGH);
  50. delay(3000);
  51. digitalWrite(PedR, LOW);
  52. digitalWrite(SinalBR, LOW);
  53. digitalWrite(SinalAY, LOW);
  54. digitalWrite(SinalAR, HIGH);
  55. digitalWrite(SinalBG, HIGH);
  56. digitalWrite(PedG, HIGH);
  57. delay(5000);
  58. digitalWrite(SinalBG, LOW);
  59. digitalWrite(SinalBY, HIGH);
  60. //Liga-se o segundo sinal de pedestres para sinalizar atenção)
  61. digitalWrite(PedR, HIGH);
  62. delay(3000);
  63. //Retorna ao funcionamento normal após 11 segundos.
  64. digitalWrite(PedG, LOW);
  65. digitalWrite(SinalBY, LOW);
  66. digitalWrite(SinalAR, LOW);
  67. digitalWrite(PedR, HIGH);
  68. digitalWrite(SinalBR, HIGH);
  69. digitalWrite(SinalAG, HIGH);
  70. delay(12000);
  71. //Sai da função, continuando para o sinal A Amarelo.
  72. intervalo = 1200;
  73. }
  74. delay(10);
  75. intervalo=intervalo+1;
  76. }
  77. digitalWrite(SinalAG, LOW);
  78. digitalWrite(SinalAY, HIGH);
  79. delay(3000);
  80. digitalWrite(SinalAY, LOW);
  81. digitalWrite(SinalBR, LOW);
  82. digitalWrite(PedR, LOW);
  83. digitalWrite(SinalAR, HIGH);
  84. digitalWrite(SinalBG, HIGH);
  85. digitalWrite(PedG, HIGH);
  86. delay(5000);
  87. digitalWrite(SinalBG, LOW);
  88. digitalWrite(SinalBY, HIGH);
  89. digitalWrite(PedR, HIGH);
  90. delay(3000);
  91. digitalWrite(PedG, LOW);
  92. digitalWrite(SinalBY, LOW);
  93. digitalWrite(SinalAR, LOW);
  94. }
Advertisement
Add Comment
Please, Sign In to add comment