Advertisement
RuiViana

Untitled

May 16th, 2015
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. int dot = 35; // ??
  2. int SegA = 40; // Saída do segmento A
  3. int SegB = 41; // Saída do segmento B
  4. int SegC = 42; // Saída do segmento C
  5. int SegD = 43; // Saída do segmento D
  6. int SegE = 44; // Saída do segmento E
  7. int SegF = 45; // Saída do segmento F
  8. int SegG = 46; // Saída do segmento G
  9.  
  10. unsigned int num = 11; // Variavel para o loop
  11. unsigned int vel = 11; // Variavel para a velocidade
  12. float lag; // Variavel para
  13. int digit; // Variavel para guardar o digito entrado
  14. int control=1; // Variavel para
  15. int score=0; // Variavel para
  16. int x=0; // Variavel para
  17.  
  18. byte disp_7[11][7]={ // Array com o valores de seg para os digitos de 0 a 9
  19. {1,1,1,1,1,1,0}, // 0
  20. {0,1,1,0,0,0,0}, // 1
  21. {1,1,0,1,1,0,1}, // 2
  22. {1,1,1,1,0,0,1}, // 3
  23. {0,1,1,0,0,1,1}, // 4
  24. {1,0,1,1,0,1,1}, // 5
  25. {1,0,1,1,1,1,1}, // 6
  26. {1,1,1,0,0,0,0}, // 7
  27. {1,1,1,1,1,1,1}, // 8
  28. {1,1,1,1,0,1,1}, // 9
  29. {0,0,0,0,0,0,0}, // off (10) // Todos segmentos apagados
  30. };
  31.  
  32. int led_correct=22; // Variavel para LED correto
  33. int led_fail=23; // Variavel para LED errado
  34. int buzz=24; // Variavel para som
  35. int button=25; // Variavel para botao de entrada do usuario
  36.  
  37. void spd(int vel, float &lag); // Função de velocidade Recebe velocidade e ???
  38. void count(float lag, int num, int &score); // Função de contagem Recebe ????, numero informado e ???
  39. void turn_on(int digit); // Função de liga Recebe ???
  40. void turn_off(); // Função de desliga
  41. void score_total(int score); // Função de Resultado Final Recebe resultado
  42.  
  43. void setup(){
  44. Serial.begin(9600); // inicializa serial a 9600bps
  45. pinMode(SegA, OUTPUT); //seg A // Define SegA como saída
  46. pinMode(SegB, OUTPUT); //seg B // Define SegB como saída
  47. pinMode(SegC, OUTPUT); //seg C // Define SegC como saída
  48. pinMode(SegD, OUTPUT); //seg D // Define SegD como saída
  49. pinMode(SegE, OUTPUT); //seg E // Define SegE como saída
  50. pinMode(SegF, OUTPUT); //seg F // Define SegF como saída
  51. pinMode(SegG, OUTPUT); //seg G // Define SegG como saída
  52. pinMode(dot, OUTPUT); //ponto // Define ponto como saída
  53. pinMode(led_correct, OUTPUT); // Define LED correto como saída
  54. pinMode(led_fail, OUTPUT); // Define LED errado como saída
  55. pinMode(buzz, OUTPUT); // Define som como saída
  56. pinMode(button, INPUT); // Define botao como entrada
  57. digitalWrite(button, HIGH); // Define Pull-up para botão
  58. Serial.println("Digite uma velocidade de 0 (muito devagar) a 9 (muito rapida) e aperte enter: ");
  59. }
  60.  
  61. void loop(){
  62. if(Serial.available()>0){ // Se tiver dados na serial
  63. vel=Serial.parseInt(); // leia para variavel vel velocidade
  64. Serial.print("Velocidade escolhida = "); Serial.println(vel);
  65. Serial.println("\nInforme um digito para jogar, aperte enter e aguarde: ");
  66. delay(4000); // delay de 4seg
  67. num=Serial.parseInt(); // leia para variavel num numero
  68. Serial.print("Digito escolhido = "); Serial.println(num);
  69. spd(vel,lag); // chama função spd com velocidade e lag ??
  70. }
  71. if((vel<11)&&(num<11)){
  72. for(int c1=1; c1<=3; c1++){
  73. digitalWrite(dot,HIGH);
  74. delay(400);
  75. digitalWrite(dot,LOW);
  76. delay(400);
  77. }
  78. while(control<=9){
  79. count(lag, num, score, x);
  80. turn_off();
  81. for(int c2=1; c2<=3; c2++){
  82. digitalWrite(dot,HIGH);
  83. delay(400);
  84. digitalWrite(dot,LOW);
  85. delay(400);
  86. }
  87. control++;
  88. }
  89.  
  90. score_total(score);
  91. Serial.print("\nPontuacao final = "); Serial.println(score);
  92. }
  93. vel=11;
  94. }
  95.  
  96. void spd(int vel, float &lag){
  97. if(vel==0) lag=2000;
  98. if(vel==1) lag=1500;
  99. if(vel==2) lag=1000;
  100. if(vel==3) lag=900;
  101. if(vel==4) lag=800;
  102. if(vel==5) lag=600;
  103. if(vel==6) lag=500;
  104. if(vel==7) lag=300;
  105. if(vel==8) lag=200;
  106. if(vel==9) lag=80;
  107. }
  108.  
  109. void turn_on(int digit, int num, int &x){
  110. if(digit==num) x++;
  111. digitalWrite(SegA, disp_7[digit][0]);
  112. digitalWrite(SegB, disp_7[digit][1]);
  113. digitalWrite(SegC, disp_7[digit][2]);
  114. digitalWrite(SegD, disp_7[digit][3]);
  115. digitalWrite(SegE, disp_7[digit][4]);
  116. digitalWrite(SegF, disp_7[digit][5]);
  117. digitalWrite(SegG, disp_7[digit][6]);
  118. }
  119.  
  120. void turn_off(){
  121. digitalWrite(SegA, disp_7[10][0]);
  122. digitalWrite(SegB, disp_7[10][1]);
  123. digitalWrite(SegC, disp_7[10][2]);
  124. digitalWrite(SegD, disp_7[10][3]);
  125. digitalWrite(SegE, disp_7[10][4]);
  126. digitalWrite(SegF, disp_7[10][5]);
  127. digitalWrite(SegG, disp_7[10][6]);
  128. }
  129.  
  130. void count(float lag, int num, int &x, int &score){
  131. for(int b=0; b<=9; b++){
  132. turn_on(b, num, x);
  133. if((digitalRead(button)==LOW)&&(x!=0)){
  134. digitalWrite(led_correct, HIGH);
  135. digitalWrite(buzz, HIGH);
  136. delay(lag);
  137. digitalWrite(led_correct, LOW);
  138. digitalWrite(buzz, LOW);
  139. score++; break;
  140. }
  141. else if(digitalRead(button)==LOW){
  142. digitalWrite(led_fail, HIGH);
  143. delay(lag);
  144. digitalWrite(led_fail, LOW);
  145. break;
  146. }
  147. delay(lag);
  148. x=0;
  149. }
  150. }
  151.  
  152. void score_total(int score){
  153. digitalWrite(buzz, HIGH);
  154. for(int c3=1; c3<=5; c3++){
  155. digitalWrite(SegA, disp_7[0][0]);
  156. digitalWrite(SegB, disp_7[0][1]);
  157. digitalWrite(SegC, disp_7[0][2]);
  158. digitalWrite(SegD, disp_7[0][3]);
  159. digitalWrite(SegE, disp_7[0][4]);
  160. digitalWrite(SegF, disp_7[0][5]);
  161. digitalWrite(SegG, disp_7[0][6]);
  162. delay(250);
  163. digitalWrite(SegA, disp_7[10][0]);
  164. digitalWrite(SegB, disp_7[10][1]);
  165. digitalWrite(SegC, disp_7[10][2]);
  166. digitalWrite(SegD, disp_7[10][3]);
  167. digitalWrite(SegE, disp_7[10][4]);
  168. digitalWrite(SegF, disp_7[10][5]);
  169. digitalWrite(SegG, disp_7[10][6]);
  170. delay(250);
  171. }
  172. digitalWrite(buzz, LOW);
  173. turn_on(score, num, x);
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement