miércoles, 25 de marzo de 2015

laboratorio 7

laboratorio 7
consiste en controlar un display de 7 segmentos de catodo común desde arduino por medio de un IC 74HC595 mostrando los números del 0 al 9 dependiendo la posición de un potencio-metro.

materiales

  1. placa arduino mega + cable de comunicacion +pc con ide arduino
  2. display de 7 segmentos catodo comun
  3. 2 resistencias de 1kohm
  4. 1 potenciometro de 10kohm
  5. jumper varios 
  6. protoboard
montaje en protoboard fritzing











esquematico en fritzing
















montaje del circuito














codigo arduino
/ Se definen la cantidad de pines que vamos a usar como PIN
// y la entrada analoga A0 como la que se va a usar por el
// potenciómetro
#define PIN 3
#define Pot A0

// Se le dan nombres a los pines (7-9) del arduino
// que van a ser usados por el integrado respectivamente
// además el pin SH_CP osea Clock debe ser PWM(~)
const int Latch = 3;
const int Clock = 4;
const int Data = 2;

int led[PIN] = {
 2,3,4};

// El valor de cada uno de los numeros que voy
// a mostrar en mi Display
int Numeros[10]={63,6,91,79,102,109,125,7,127,111};

// Ciclo para activar los ocho pines como salida
// y el pin A0 como entrada
void setup() {
 for (int i=0; i<PIN; i++){
 pinMode(led[i], OUTPUT);
 }
 pinMode(Pot, INPUT);
}

// Recibe la info de la posición del potenciómetro
void loop()
{
 int Pos = analogRead(Pot);
 Pos = map(Pos, 0, 1023, 0,10);
 Casos(Pos);
}

// Según la posición del potenciómetro escoge un caso
// osea un numero
void Casos(int Valor)
{
 switch(Valor)
 {
 case 0:
 On(Numeros[0]);
 break;
 case 1:
 On(Numeros[1]);
 break;
 case 2:
 On(Numeros[2]);
 break;
 case 3:
 On(Numeros[3]);
 break;
 case 4:
 On(Numeros[4]);
 break;
 case 5:
 On(Numeros[5]);
 break;
 case 6:
 On(Numeros[6]);
 break;
 case 7:
 On(Numeros[7]);
 break;
 case 8:
 On(Numeros[8]);
 break;
 case 9:
 On(Numeros[9]);
 break;
 } 
}

// Función para enviar los datos al Integrado IC 74HC595
void On(int Valor)
{
 digitalWrite(Latch, LOW);
 shiftOut(Data, Clock, MSBFIRST, Valor);
 digitalWrite(Latch, HIGH);
 delay(8);
}

video


No hay comentarios.:

Publicar un comentario