augusto0112

lab5

Oct 24th, 2016
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. /********** Arduino **********
  2.  * Laboratorio 05: Display LED de 7-Segmentos a través de un IC 74HC59
  3.  * Autor: Cristian Augusto Restrepo
  4.  * Descripcion:
  5.  *   Controlar desde el Arduino, un Display LED de 7-Segmentos,
  6.  *   a través de un IC 74HC595, para mostrar un número de 0 a 9,
  7.  *   dependiendo de la posición del Potenciómetro.
  8.  
  9. // Se definen la cantidad de pines que vamos a usar como PIN
  10. // y la entrada analoga A0 como la que se va a usar por el
  11. // potenciómetro
  12. #define PIN 3
  13. #define Pot A0
  14. // Se le dan nombres a los pines (2-4) del arduino
  15. // que van a ser usados por el integrado respectivamente
  16. // además el pin SH_CP osea Clock debe ser PWM(~)
  17. const int Latch = 2;
  18. const int Clock = 3;
  19. const int Data = 4;
  20. int led[PIN] = {
  21.  2,3,4};
  22. // El valor de cada uno de los numeros que voy
  23. // a mostrar en el Display
  24. int Numeros[11]={63,6,91,79,102,109,125,7,127,111, 128};
  25. // Ciclo para activar los ocho pines como salida
  26. // y el pin A0 como entrada
  27. void setup() {
  28.  for (int i=0; i<PIN; i++){
  29.  pinMode(led[i], OUTPUT);
  30.  }
  31.  pinMode(Pot, INPUT);
  32. }
  33. // Recibe la información de la posición del potenciómetro
  34. void loop()
  35. {
  36.  int Pos = analogRead(Pot);
  37.  int Mos = map(Pos, 0, 1023, 0,11);
  38.  Casos(Mos);
  39. }
  40. // Según la posición del potenciómetro escoge un caso
  41. void Casos(int Valor)
  42. {
  43.  switch(Valor)
  44.  {
  45.  case 0:
  46.  On(Numeros[0]);
  47.  break;
  48.  case 1:
  49.  On(Numeros[1]);
  50.  break;
  51.  case 2:
  52.  On(Numeros[2]);
  53.  break;
  54.  case 3:
  55.  On(Numeros[3]);
  56.  break;
  57.  case 4:
  58.  On(Numeros[4]);
  59.  break;
  60.  case 5:
  61.  On(Numeros[5]);
  62.  break;
  63.  case 6:
  64.  On(Numeros[6]);
  65.  break;
  66.  case 7:
  67.  On(Numeros[7]);
  68.  break;
  69.  case 8:
  70.  On(Numeros[8]);
  71.  break;
  72.  case 9:
  73.  On(Numeros[9]);
  74.  break;
  75.  case 10:
  76.  On(Numeros[10]);
  77.  break;
  78.  }
  79. }
  80. // Función para enviar los datos al Integrado IC 74HC595
  81. void On(int Valor)
  82. {
  83.  digitalWrite(Latch, LOW);
  84.  shiftOut(Data, Clock, MSBFIRST, Valor);
  85.  digitalWrite(Latch, HIGH);
  86.  delay(8);
  87. }
Advertisement
Add Comment
Please, Sign In to add comment