Guest User

Untitled

a guest
Feb 24th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.61 KB | None | 0 0
  1. bool A = 2;
  2. bool B = 3;
  3. bool C = 4;
  4. bool D = 5;
  5. bool E = 6;
  6. bool F = 7;
  7. bool G = 8;
  8. int PWR1 = 10;
  9. int PWR2 = 11;
  10. int PWR3 = 12;
  11. int PWR4 = 13;
  12. int TimeSec = 0;
  13. int TimeMin1 = 0;
  14. int TimeMin2 = 0;
  15. int TimeHour1 = 8;
  16. int TimeHour2 = 0;
  17. int Display = 0;
  18. int Loop = 0;
  19. int Digit = 0;
  20. int Memory1 = 0;
  21. int Memory2 = 0;
  22. int Memory3 = 0;
  23. int Memory4 = 0;
  24. int Rewrite1 = 0;
  25. int Rewrite2 = 0;
  26. int Rewrite3 = 0;
  27. int Rewrite4 = 0;
  28.  
  29. void setup() {
  30. pinMode(A, OUTPUT);
  31. pinMode(B, OUTPUT);
  32. pinMode(C, OUTPUT);
  33. pinMode(D, OUTPUT);
  34. pinMode(E, OUTPUT);
  35. pinMode(F, OUTPUT);
  36. pinMode(G, OUTPUT);
  37. pinMode(PWR1, OUTPUT);
  38. pinMode(PWR2, OUTPUT);
  39. pinMode(PWR3, OUTPUT);
  40. pinMode(PWR4, OUTPUT);
  41. }
  42. void loop() {
  43. loop:
  44. delay(250);
  45. Digit = Digit + 1;
  46. if (Digit > 4) { Digit = 1; }
  47. if (Digit == 1) { goto digit1; }
  48. if (Digit == 2) { goto digit2; }
  49. if (Digit == 3) { goto digit3; }
  50. if (Digit == 4) { goto digit4; }
  51.  
  52. // Supposedly turns on the 7-segment display that is next in line to have its digit edited but doesn't work?
  53. digit1:
  54. digitalWrite(PWR1, HIGH);
  55. digitalWrite(PWR2, LOW);
  56. digitalWrite(PWR3, LOW);
  57. digitalWrite(PWR4, LOW);
  58. Display = Memory1;
  59. goto skip;
  60. digit2:
  61. digitalWrite(PWR2, HIGH);
  62. digitalWrite(PWR1, LOW);
  63. digitalWrite(PWR3, LOW);
  64. digitalWrite(PWR4, LOW);
  65. Display = Memory2;
  66. goto skip;
  67. digit3:
  68. digitalWrite(PWR3, HIGH);
  69. digitalWrite(PWR1, LOW);
  70. digitalWrite(PWR2, LOW);
  71. digitalWrite(PWR4, LOW);
  72. Display = Memory3;
  73. goto skip;
  74. digit4:
  75. digitalWrite(PWR4, HIGH);
  76. digitalWrite(PWR1, LOW);
  77. digitalWrite(PWR2, LOW);
  78. digitalWrite(PWR3, LOW);
  79. Display = Memory4;
  80. skip:
  81.  
  82. // Manual Turning on of LEDs is overcomplicated and can be made much shorter yes I know :(
  83. if (Display == 1) {
  84. digitalWrite(A, HIGH);
  85. digitalWrite(B, HIGH);
  86. digitalWrite(C, HIGH);
  87. digitalWrite(D, HIGH);
  88. digitalWrite(E, HIGH);
  89. digitalWrite(F, HIGH);
  90. digitalWrite(G, HIGH);
  91. digitalWrite(B, LOW);
  92. digitalWrite(C, LOW);
  93. }
  94. if (Display == 2) {
  95. digitalWrite(A, HIGH);
  96. digitalWrite(B, HIGH);
  97. digitalWrite(C, HIGH);
  98. digitalWrite(D, HIGH);
  99. digitalWrite(E, HIGH);
  100. digitalWrite(F, HIGH);
  101. digitalWrite(G, HIGH);
  102. digitalWrite(A, LOW);
  103. digitalWrite(B, LOW);
  104. digitalWrite(G, LOW);
  105. digitalWrite(E, LOW);
  106. digitalWrite(D, LOW);
  107. }
  108. if (Display == 3) {
  109. digitalWrite(A, HIGH);
  110. digitalWrite(B, HIGH);
  111. digitalWrite(C, HIGH);
  112. digitalWrite(D, HIGH);
  113. digitalWrite(E, HIGH);
  114. digitalWrite(F, HIGH);
  115. digitalWrite(G, HIGH);
  116. digitalWrite(A, LOW);
  117. digitalWrite(B, LOW);
  118. digitalWrite(C, LOW);
  119. digitalWrite(G, LOW);
  120. digitalWrite(D, LOW);
  121. }
  122. if (Display == 4) {
  123. digitalWrite(A, HIGH);
  124. digitalWrite(B, HIGH);
  125. digitalWrite(C, HIGH);
  126. digitalWrite(D, HIGH);
  127. digitalWrite(E, HIGH);
  128. digitalWrite(F, HIGH);
  129. digitalWrite(G, HIGH);
  130. digitalWrite(B, LOW);
  131. digitalWrite(G, LOW);
  132. digitalWrite(F, LOW);
  133. digitalWrite(C, LOW);
  134. }
  135. if (Display == 5) {
  136. digitalWrite(A, HIGH);
  137. digitalWrite(B, HIGH);
  138. digitalWrite(C, HIGH);
  139. digitalWrite(D, HIGH);
  140. digitalWrite(E, HIGH);
  141. digitalWrite(F, HIGH);
  142. digitalWrite(G, HIGH);
  143. digitalWrite(A, LOW);
  144. digitalWrite(F, LOW);
  145. digitalWrite(G, LOW);
  146. digitalWrite(C, LOW);
  147. digitalWrite(D, LOW);
  148. }
  149. if (Display == 6) {
  150. digitalWrite(A, HIGH);
  151. digitalWrite(B, HIGH);
  152. digitalWrite(C, HIGH);
  153. digitalWrite(D, HIGH);
  154. digitalWrite(E, HIGH);
  155. digitalWrite(F, HIGH);
  156. digitalWrite(G, HIGH);
  157. digitalWrite(A, LOW);
  158. digitalWrite(F, LOW);
  159. digitalWrite(G, LOW);
  160. digitalWrite(C, LOW);
  161. digitalWrite(D, LOW);
  162. digitalWrite(E, LOW);
  163. }
  164. if (Display == 7) {
  165. digitalWrite(A, HIGH);
  166. digitalWrite(B, HIGH);
  167. digitalWrite(C, HIGH);
  168. digitalWrite(D, HIGH);
  169. digitalWrite(E, HIGH);
  170. digitalWrite(F, HIGH);
  171. digitalWrite(G, HIGH);
  172. digitalWrite(A, LOW);
  173. digitalWrite(B, LOW);
  174. digitalWrite(C, LOW);
  175. }
  176. if (Display == 8) {
  177. digitalWrite(A, HIGH);
  178. digitalWrite(B, HIGH);
  179. digitalWrite(C, HIGH);
  180. digitalWrite(D, HIGH);
  181. digitalWrite(E, HIGH);
  182. digitalWrite(F, HIGH);
  183. digitalWrite(G, HIGH);
  184. digitalWrite(A, LOW);
  185. digitalWrite(B, LOW);
  186. digitalWrite(C, LOW);
  187. digitalWrite(D, LOW);
  188. digitalWrite(F, LOW);
  189. digitalWrite(G, LOW);
  190. digitalWrite(E, LOW);
  191. }
  192. if (Display == 9) {
  193. digitalWrite(A, HIGH);
  194. digitalWrite(B, HIGH);
  195. digitalWrite(C, HIGH);
  196. digitalWrite(D, HIGH);
  197. digitalWrite(E, HIGH);
  198. digitalWrite(F, HIGH);
  199. digitalWrite(G, HIGH);
  200. digitalWrite(A, LOW);
  201. digitalWrite(B, LOW);
  202. digitalWrite(C, LOW);
  203. digitalWrite(D, LOW);
  204. digitalWrite(F, LOW);
  205. digitalWrite(G, LOW);
  206. }
  207. if (Display == 0) {
  208. digitalWrite(A, HIGH);
  209. digitalWrite(B, HIGH);
  210. digitalWrite(C, HIGH);
  211. digitalWrite(D, HIGH);
  212. digitalWrite(E, HIGH);
  213. digitalWrite(F, HIGH);
  214. digitalWrite(G, HIGH);
  215. digitalWrite(A, LOW);
  216. digitalWrite(B, LOW);
  217. digitalWrite(C, LOW);
  218. digitalWrite(D, LOW);
  219. digitalWrite(E, LOW);
  220. digitalWrite(F, LOW);
  221. }
  222.  
  223. // Checks how many times it has looped over
  224. Loop = Loop + 1;
  225. if (Loop < 4) {goto loop;}
  226. else
  227. {
  228. // Resets Loop count and counts 1 second (normally it has a delay(1000) but the delay(250) on the loop to account for LED's turning on is counting for me )
  229. Loop = 0;
  230. TimeSec = (TimeSec + 1);
  231. if (TimeSec == 60) {
  232. TimeMin1 = (TimeMin1 + 1);
  233. Memory1 = TimeMin1;
  234. TimeSec = 0;
  235. if (TimeMin1 == 10) {
  236. TimeMin2 = (TimeMin2 + 1);
  237. Memory2 = TimeMin2;
  238. TimeMin1 = 0;
  239. Memory1 = TimeMin1;
  240. if (TimeMin2 == 7) {
  241. TimeHour1 = (TimeHour1 + 1);
  242. Memory3 = TimeHour1;
  243. TimeMin2 = 0;
  244. Memory2 = TimeMin2;
  245. if (TimeHour1 == 10) {
  246. TimeHour2 = 1;
  247. Memory4 = TimeHour2;
  248. TimeHour1 = 0;
  249. Memory3 = TimeHour1;
  250. if (TimeHour1 == 3 && TimeHour2 == 1) {
  251. TimeHour2 = 0;
  252. Memory4 = TimeHour2;
  253. TimeHour1 = 1;
  254. Memory3 = TimeHour1;
  255. }
  256. }
  257. }
  258. }
  259. }
  260. }
  261. }
  262.  
  263. bool A = 2;
  264. bool B = 3;
  265. bool C = 4;
  266. bool D = 5;
  267. bool E = 6;
  268. bool F = 7;
  269. bool G = 8;
  270.  
  271. byte digits[] = {0b1111110 , 0b0110000, 0b1101101, 0b1111001,
  272. 0b0110011, 0b1011011, 0b1011111, 0b1110000, 0b1111111, 0b1111011};
  273.  
  274. // pins to segments g,f,e,d,c,b,a
  275. byte pins[] = {3,4,5,6,7,8,9};
  276.  
  277. void displayNumber(int aNumber) {
  278. for (int i = 0; i < 7; i++) {
  279. digitalWrite(pins[i], digits[aNumber] & (1 << i));
  280. }
  281. }
  282.  
  283. void setup(){
  284. for (int i = 0; i < 7; i++){
  285. pinMode(pins[i], OUTPUT);
  286. }
  287. }
  288.  
  289.  
  290. void loop(){
  291. for (int i = 0; i < 10; i++) {
  292. displayNumber(i);
  293. delay(1000);
  294. }
  295. }
  296.  
  297. while (!digitalRead(SW1)) // set minutes
  298. {
  299. minutes++;
  300.  
  301. if (minutes > 59) minutes = 0;
  302. for(int i = 20 ; i >0 ; i--) {
  303. int timp= hours*100+minutes;
  304. if (timp > 1000) displayNumber01(timp);
  305. else displayNumber02(timp);
  306. }
  307.  
  308.  
  309.  
  310.  
  311.  
  312. delay(150);
  313. }
  314.  
  315. while (!digitalRead(SW2)) // set hours
  316. {
  317. hours++;
  318.  
  319. if (hours > 12) hours = 01;
  320.  
  321. for(int i = 20 ; i >0 ; i--) {
  322. int timp= hours*100+minutes;
  323. if (timp > 1000) displayNumber01(timp);
  324. else displayNumber02(timp);
  325. }
  326.  
  327.  
  328.  
  329.  
  330.  
  331. delay(150);
  332. }
  333.  
  334.  
  335.  
  336. for(int i = 20 ; i >0 ; i--) {
  337. displayNumber01(hours*100+minutes);
  338. }
  339. setTime(hours,minutes,0,0,0,0);
  340.  
  341. //Turn on a digit for a short amount of time
  342. switch(digit) {
  343. case 1:
  344. digitalWrite(digit1, DIGIT_ON);
  345. digitalWrite(segDP, LOW);
  346. break;
  347.  
  348. //Turn off all segments
  349. lightNumber(10);
  350.  
  351. //Turn off all digits
  352. digitalWrite(digit1, DIGIT_OFF);
  353. digitalWrite(digit2, DIGIT_OFF);
  354. digitalWrite(digit3, DIGIT_OFF);
  355. digitalWrite(digit4, DIGIT_OFF);
  356.  
  357. //Turn on a digit for a short amount of time
  358. switch(digit) {
  359. case 1:
  360. lightNumber(10);
  361. digitalWrite(segDP, LOW);
  362. break;
  363.  
  364. //Turn off all segments
  365. lightNumber(10);
  366.  
  367. //Turn off all digits
  368. digitalWrite(digit1, DIGIT_OFF);
  369. digitalWrite(digit2, DIGIT_OFF);
  370. digitalWrite(digit3, DIGIT_OFF);
  371. digitalWrite(digit4, DIGIT_OFF);
  372.  
  373. //Turn on a digit for a short amount of time
  374. switch(digit) {
  375. case 1:
  376. digitalWrite(digit1, DIGIT_ON);
  377. digitalWrite(segDP, HIGH);
  378. break;
  379.  
  380. //Turn off all segments
  381. lightNumber(10);
  382.  
  383. //Turn off all digits
  384. digitalWrite(digit1, DIGIT_OFF);
  385. digitalWrite(digit2, DIGIT_OFF);
  386. digitalWrite(digit3, DIGIT_OFF);
  387. digitalWrite(digit4, DIGIT_OFF);
  388.  
  389. //Turn on a digit for a short amount of time
  390. switch(digit) {
  391. case 1:
  392. lightNumber(10);
  393. digitalWrite(segDP, HIGH);
  394. break;
  395.  
  396. //Turn off all segments
  397. lightNumber(10);
  398.  
  399. //Turn off all digits
  400. digitalWrite(digit1, DIGIT_OFF);
  401. digitalWrite(digit2, DIGIT_OFF);
  402. digitalWrite(digit3, DIGIT_OFF);
  403. digitalWrite(digit4, DIGIT_OFF);
Add Comment
Please, Sign In to add comment