Kanamex

S05Practica-Semaforo

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