Vous êtes sur la page 1sur 9

PRACTICAS ARDUINO

DISPLAY DEJacqueline
7 SEGMENTOS Luna
701 MECANICA
[Email address]

PRACTICA 7: DISPLAY DE 7 SEGMENTOS


OBJETIVO:
Mediante el uso de dos botones hacer que un display muestre los nmeros del 0 al 9,
un botn ser para incrementar el nmero y el otro para disminuirlo.

DISPLAY DE 7 SEGMENTOS:

El display de 7 segmentos es un componente que se utiliza para la representacin de


nmeros, es muy comn encontrarlos en dispositivos electrnicos debido a su
simplicidad. Est compuesto internamente por una serie de LEDS estratgicamente
ubicados de tal forma que forme un nmero 8.

A cada uno de los segmentos que forman el display se les denomina a, b, c, d, e, f y g y


estn ensamblados de forma que se permita activar cada segmento por separado
consiguiendo formar cualquier dgito numrico.

Muchas veces aparece un octavo segmento denominado p.d. (punto decimal).

EXISTEN DOS TIPOS DE DISPLAY DE 7 SEGMENTOS:


nodo comn

Ctodo comn

ESTRUCTURA DE LOS DOS TIPOS DE DISPLAY:

En los displays de tipo nodo comn, todos los nodos de los LEDS estn unidos
internamente a una pata comn que debe ser conectada a potencial positivo.

MATERIAL NECESARIO:

1 Tarjeta ARDUINO UNO


1 Cable USB para Arduino
1 Tarjeta Protoboard
1 Software IDE de Arduino
1 Display de 7 segmentos de ctodo comn, del color que deseen.
2 Micro botn de pulso de 4 patas o de 2.
2 Resistencias de 10K
9 resistencias 220 o 330 ohms.
Cables (los que se necesiten)

DESCRIPCIN

1 Para comenzar conectamos un display de 7 segmentos a la Arduino.

2 Despus tomando como referencia la siguiente imagen, conectamos una


resistencia a cada pin del display y basndonos en la letra asignada de la
resistencia conectamos a los pines digitales de Arduino comenzando por el 2 (a-
2, b-3, c-4, d-5, e-6, f-7, g-8).

3 Ahora el pin com que est del lado del punto decimal se conecta a tierra.

4 Una vez conectado todo el cableado del display se procede a colocar los dos
botones para controlar el display.

5 Para eso conectamos los dos botones, a ambos les conectamos una resistencia
de 10K ohm y en medio de estos un cable que va a ir a los pines digitales de
Arduino en este caso el botn de incrementar ira al pin 9 y el de decrementar al
pin 10.

6 Ahora a otro extremo de los botones se conectarn cables que irn a la lnea
roja de nuestra protoboard y de esta lnea sacaremos un cable que ira a la
conexin de 5v.
CODIGO:
/* se declaran las contantes para identificar cada led*/
const int a = 2;
const int b = 3;
const int c = 4;
const int d = 5;
const int e = 6;
const int f = 7;
const int g = 8;
const int BtnIncremento = 9; // boton de incremento conectadoa al pin 9
const int BtnDecremento = 10; // boton de decremento conectadoa al pin 10

const int tiempoAntirebote =10;


int cuenta =0; //lleva la cuenta
int estadoBtnIncremento;
int estadoBtnIncrementoAnterior;
int estadoBtnDecremento;
int estadoBtnDecrementoAnterior;

boolean antirebote (int pin ) {


int contador =0;
boolean estado; // guarda el estado del boton
boolean estadoAnterior; // guarda el ultimo estado del boton

do {
estado = digitalRead (pin);
if (estado != estadoAnterior ){ // comparamos el estado actual
contador =0; // reiniciamos el contador
estadoAnterior= estado;
}
else{
contador = contador +1; // aumentamos el contador en 1
}
delay (1);
}
while (contador < tiempoAntirebote);
return estado;
}
/* Metodo para elegir que numero mostrar en el display*/
void actualizarNumero(){
switch (cuenta) {
case 0:
/*Bloque para mostrar un 0*/
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 1:
/*Bloque para mostrar un 1*/
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 2:
/*Bloque para mostrar un 2*/
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 3:
/*Bloque para mostrar un 3*/
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 4:
/*Bloque para mostrar un 4*/
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 5:
/*Bloque para mostrar un 5*/
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 6:
/*Bloque para mostrar un 6*/
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 7:
/*Bloque para mostrar un 7*/
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 8:
/*Bloque para mostrar un 8*/
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 9:
/*Bloque para mostrar un 9*/
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);

}
}

void setup(){
/*Declaramos los segmetos del display como salidas*/
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
/*Declaramos los botones como entradas*/
pinMode(BtnIncremento, INPUT);
pinMode(BtnDecremento, INPUT);

void loop() {
estadoBtnIncremento = digitalRead(BtnIncremento);
if (estadoBtnIncremento != estadoBtnIncrementoAnterior) { // si hay cambio con respeto al
estado
if (antirebote (BtnIncremento)){ //checamos si esta preionado y si lo esta
cuenta++; //aumentamos la cuenta
if (cuenta > 9){
cuenta = 9;
}
}
}
estadoBtnIncrementoAnterior = estadoBtnIncremento; // guardamos el estado del
boton

estadoBtnDecremento = digitalRead(BtnDecremento); //leemos el estado del boton


if (estadoBtnDecremento != estadoBtnDecrementoAnterior) { // si hay cambio con respeto
al estado anterior
if (antirebote (BtnDecremento)){ //si el boton esta presionado disminuimos la cuenta
cuenta--;
if (cuenta<0){

cuenta = 0;
}
}
}
estadoBtnDecrementoAnterior = estadoBtnDecremento; //guardamos el estado del boton

actualizarNumero(); //desplegamos la cuenta en el display

RESULTADOS:

Al cargar el programa en el Arduino el display muestra el nmero 0 en su pantalla, si


oprimimos el botn de decremento no pasa nada y si oprimimos el de aumento se irn
mostrando los nmeros hasta llegar al 9, cuando se llega al 9 deja de presentarse
cambios. Si oprimimos los botones cuando el display muestra los nmeros 1-8, el
numero cambiara dependiendo de que botn oprimamos, si los oprimimos cuando
muestre 0 o 9 solo cambiara cuando se oprima el de aumento para el 0 y decremento
para el 9.

CONCLUSION:
LUNA ORTEGA YURI KARLA JACQUELINE
Con esta prctica aprend a utilizar un medio electrnico que muestra una salida visual
comprensible, en este caso nmeros, esto es muy til para complementar con otro tipo
de prcticas. Tambin aprend sobre el uso del switch y el case en Arduino para as
determinar que numero mostrar en el display. Y por ltimo la importancia de hacer
nuestras conexiones ordenadamente cuando la prctica requiere el uso de mucho
cableado.

Vous aimerez peut-être aussi