Kanamex

S05Practica-Semaforo

Jun 23rd, 2021
598
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<Wire.h>
  2. int s2_lr = 5;
  3. int s2_la = 6;
  4. int s2_lv = 7;
  5. int s4_lr = 8;
  6. int s4_la = 9;
  7. int s4_lv = 10;
  8. int s5_lr = 2;
  9. int s5_la = 3;
  10. int s5_lv = 4;
  11. int s1_lr = A3;
  12. int s1_la = A2;
  13. int s1_lv = A1;
  14. int s1_lz = A0;
  15. int s3_lr = 11;
  16. int s3_la = 12;
  17. int s3_lv = 13;
  18. int estado = 0;
  19. void setup()
  20. {
  21. pinMode(s1_lr, OUTPUT);
  22. pinMode(s1_la, OUTPUT);
  23. pinMode(s1_lv, OUTPUT);
  24. pinMode(s1_lz, OUTPUT);
  25. pinMode(s3_lr, OUTPUT);
  26. pinMode(s3_la, OUTPUT);
  27. pinMode(s3_lv, OUTPUT);
  28. pinMode(s2_lr, OUTPUT);
  29. pinMode(s2_la, OUTPUT);
  30. pinMode(s2_lv, OUTPUT);
  31. pinMode(s4_lr, OUTPUT);
  32. pinMode(s4_la, OUTPUT);
  33. pinMode(s4_lv, OUTPUT);
  34. pinMode(s5_lr, OUTPUT);
  35. pinMode(s5_la, OUTPUT);
  36. pinMode(s5_lv, OUTPUT);
  37. Wire.begin(2);
  38. Wire.onReceive(receivedEvent);
  39. }
  40. void loop()
  41. {
  42. estado1();
  43. delay(500);
  44. estado2();
  45. delay(750);
  46. estado3();
  47. delay(250);
  48. estado4();
  49. delay(600);
  50. estado5();
  51. delay(250);
  52. estado6();
  53. delay(500);
  54. estado7();
  55. delay(250);
  56. estado8();
  57. delay(500);
  58. estado9();
  59. delay(1500);
  60. estado10();
  61. delay(50);
  62. estado11();
  63. delay(1000);
  64. estado12();
  65. delay(500);
  66. estado13();
  67. delay(1000);
  68. estado14();
  69. delay(500);
  70. switch(estado)
  71. {
  72. case 1:
  73. estado1();
  74. break;
  75. case 2:
  76. estado2();
  77. break;
  78. case 3:
  79. estado3();
  80. break;
  81. case 4:
  82. estado4();
  83. break;
  84. case 5:
  85. estado5();
  86. break;
  87. case 6:
  88. estado6();
  89. break;
  90. case 7:
  91. estado7();
  92. break;
  93. case 8:
  94. estado8();
  95. break;
  96. case 9:
  97. estado9();
  98. break;
  99. case 10:
  100. estado10();
  101. break;
  102. case 11:
  103. estado11();
  104. break;
  105. case 12:
  106. estado12();
  107. break;
  108. case 13:
  109. estado13();
  110. break;
  111. case 14:
  112. estado14();
  113. break;
  114. }
  115. }
  116. void envio()
  117. {
  118. Wire.beginTransmission(2);
  119. Wire.write(estado);
  120. Wire.endTransmission();
  121. }
  122. void receivedEvent(int x){
  123. estado = Wire.read();
  124. }
  125. void estado1()
  126. {
  127. digitalWrite(s2_lr, HIGH);
  128. digitalWrite(s2_la, LOW);
  129. digitalWrite(s2_lv, LOW);
  130. digitalWrite(s4_lr, HIGH);
  131. digitalWrite(s4_la, LOW);
  132. digitalWrite(s4_lv, LOW);
  133. digitalWrite(s5_lr, HIGH);
  134. digitalWrite(s5_la, LOW);
  135. digitalWrite(s5_lv, LOW);
  136. }
  137. void estado2()
  138. {
  139. digitalWrite(s2_lv, HIGH);
  140. digitalWrite(s2_la, LOW);
  141. digitalWrite(s2_lr, LOW);
  142. digitalWrite(s4_lr, HIGH);
  143. digitalWrite(s4_la, LOW);
  144. digitalWrite(s4_lv, LOW);
  145. digitalWrite(s5_lr, HIGH);
  146. digitalWrite(s5_la, LOW);
  147. digitalWrite(s5_lv, LOW);
  148. }
  149. void estado3()
  150. {
  151. digitalWrite(s2_lv, LOW);
  152. digitalWrite(s2_la, HIGH);
  153. digitalWrite(s2_lr, LOW);
  154. digitalWrite(s4_lr, HIGH);
  155. digitalWrite(s4_la, LOW);
  156. digitalWrite(s4_lv, LOW);
  157. digitalWrite(s5_lr, HIGH);
  158. digitalWrite(s5_la, LOW);
  159. digitalWrite(s5_lv, LOW);
  160. }
  161. void estado4()
  162. {
  163. digitalWrite(s2_lv, LOW);
  164. digitalWrite(s2_la, LOW);
  165. digitalWrite(s2_lr, HIGH);
  166. digitalWrite(s4_lr, LOW);
  167. digitalWrite(s4_la, LOW);
  168. digitalWrite(s4_lv, HIGH);
  169. digitalWrite(s5_lr, HIGH);
  170. digitalWrite(s5_la, LOW);
  171. digitalWrite(s5_lv, LOW);
  172. }
  173. void estado5()
  174. { digitalWrite(s2_lv, LOW);
  175. digitalWrite(s2_la, LOW);
  176. digitalWrite(s2_lr, HIGH);
  177. digitalWrite(s4_lr, LOW);
  178. digitalWrite(s4_la, HIGH);
  179. digitalWrite(s4_lv, LOW);
  180. digitalWrite(s5_lr, HIGH);
  181. digitalWrite(s5_la, LOW);
  182. digitalWrite(s5_lv, LOW);
  183. }
  184. void estado6()
  185. {
  186. digitalWrite(s2_lv, LOW);
  187. digitalWrite(s2_la, LOW);
  188. digitalWrite(s2_lr, HIGH);
  189. digitalWrite(s4_lr, HIGH);
  190. digitalWrite(s4_la, LOW);
  191. digitalWrite(s4_lv, LOW);
  192. digitalWrite(s5_lr, LOW);
  193. digitalWrite(s5_la, LOW);
  194. digitalWrite(s5_lv, HIGH);
  195. }
  196. void estado7()
  197. {
  198. digitalWrite(s2_lv, LOW);
  199. digitalWrite(s2_la, LOW);
  200. digitalWrite(s2_lr, HIGH);
  201. digitalWrite(s4_lr, HIGH);
  202. digitalWrite(s4_la, LOW);
  203. digitalWrite(s4_lv, LOW);
  204. digitalWrite(s5_lr, LOW);
  205. digitalWrite(s5_la, HIGH);
  206. digitalWrite(s5_lv, LOW);
  207. }
  208. void estado8()
  209. {
  210. digitalWrite(s1_lr, LOW);
  211. digitalWrite(s1_la, LOW);
  212. digitalWrite(s1_lv, HIGH);
  213. digitalWrite(s1_lz, HIGH);
  214. digitalWrite(s3_lr, HIGH);
  215. digitalWrite(s3_la, LOW);
  216. digitalWrite(s3_lv, LOW);
  217. estado = 8;
  218. }
  219. void estado9()
  220. {
  221. digitalWrite(s1_lz, LOW);
  222. digitalWrite(s1_lv, HIGH);
  223. digitalWrite(s1_la, LOW);
  224. digitalWrite(s1_lr, LOW);
  225. digitalWrite(s3_lr, HIGH);
  226. digitalWrite(s3_la, LOW);
  227. digitalWrite(s3_lv, LOW);
  228. estado = 9;}
  229. void estado10()
  230. {
  231. digitalWrite(s1_lz, LOW);
  232. digitalWrite(s1_lv, LOW);
  233. digitalWrite(s1_la, HIGH);
  234. digitalWrite(s1_lr, LOW);
  235. digitalWrite(s3_lr, HIGH);
  236. digitalWrite(s3_la, LOW);
  237. digitalWrite(s3_lv, LOW);
  238. estado = 10;
  239. }
  240. void estado11()
  241. {
  242. digitalWrite(s1_lz, LOW);
  243. digitalWrite(s1_lv, LOW);
  244. digitalWrite(s1_la, LOW);
  245. digitalWrite(s1_lr, HIGH);
  246. digitalWrite(s3_lr, LOW);
  247. digitalWrite(s3_la, LOW);
  248. digitalWrite(s3_lv, HIGH);
  249. estado = 11;
  250. }
  251. void estado12()
  252. {
  253. digitalWrite(s1_lz, LOW);
  254. digitalWrite(s1_lv, LOW);
  255. digitalWrite(s1_la, LOW);
  256. digitalWrite(s1_lr, HIGH);
  257. digitalWrite(s3_lr, LOW);
  258. digitalWrite(s3_la, HIGH);
  259. digitalWrite(s3_lv, LOW);
  260. estado = 12;
  261. }
  262. void estado13()
  263. {
  264. digitalWrite(s1_lz, LOW);
  265. digitalWrite(s1_lv, LOW);
  266. digitalWrite(s1_la, LOW);
  267. digitalWrite(s1_lr, HIGH);
  268. digitalWrite(s3_lr, HIGH);
  269. digitalWrite(s3_la, LOW);
  270. digitalWrite(s3_lv, LOW);
  271. estado = 13;
  272. }
  273. void estado14()
  274. {
  275. digitalWrite(s1_lz, LOW);
  276. digitalWrite(s1_lv, LOW);
  277. digitalWrite(s1_la, LOW);
  278. digitalWrite(s1_lr, HIGH);
  279. digitalWrite(s3_lr, HIGH);
  280. digitalWrite(s3_la, LOW);
  281. digitalWrite(s3_lv, LOW);
  282. estado = 14;
  283. }
RAW Paste Data