Skip to content

Código y conexión para el manejo del display 7 segmentos 4 digitos con Arduino Uno

Notifications You must be signed in to change notification settings

victorgjacobo/arduino_display7x4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Arduino y display 7 segmentos 4 digitos

Tabla de contenidos

  1. Materiales
  2. Descripción
  3. Código

Materiales

  • Arduino Uno
  • Protoboard
  • Display 7 segmentos 4 digitos
  • Jumpers

Descripción

El display 7x4 está compuesto de siete segmentos que se pueden encender o apagar individualmente. A diferencia de otros display este cuenta con 4 dígitos que aumentan y facilitan la visualización de datos.

display7x4

En la figura observamos la conexión del arduino uno con el display 7 segmentos 4 digitos. Los digitos están conectados de la siguiente manera: D1 -> GPIO 10, D2 -> GPIO 11, D3 -> GPIO 12, D4 -> GPIO 13. Para el caso de los segmentos, estos están conectados de la siguiente manera, A -> GPIO 2, B -> GPIO 3, C -> GPIO 4, D -> GPIO 5,E -> GPIO 6, F -> GPIO 7, G -> GPIO 8.

arduinodisplay7x4

Código

"""
  Nombre de la práctica: Contador con display 7 segmentos 4 digitos
  Microcontrolador Arduino Uno
  Autor: Ing. Víctor González Jacobo
"""
/////////////////////////A  B  C  D  E  F  G 
byte pines_display [] = {2, 3, 4, 5, 6, 7, 8};
////////////////   D1  D2  D3  D4
byte Display [] = {10, 11, 12, 13};
byte const digi_display_catodo[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

int cuenta, x, segundos, minutos = 0;
int unidad, decena, centena, millar;

void sel_display(int pos, int val);
void desplegar_numero(int val);

void setup() {
  for (int i = 0; i <= sizeof(pines_display); i++)
  {
    pinMode(pines_display[i], OUTPUT);
    digitalWrite(pines_display[i], HIGH);
  } 
  for (int i = 0; i <= sizeof(Display); i++)
  {
    pinMode(Display[i], OUTPUT);
    digitalWrite(Display[i], HIGH);
  }
}

void loop() {
  x = millis()/1000;
  segundos = x%60;
  minutos =  x/60;
  cuenta  = minutos * 100 + segundos;
  conversion(cuenta);
}

void conversion(int conteo)
{
  unidad = conteo%10;
  decena = (conteo%100)/10;
  centena = (conteo%1000)/100;
  millar = conteo/1000;

  sel_display(4, unidad);
  sel_display(3, decena);
  sel_display(2, centena);
  sel_display(1, millar);
}

void sel_display(int pos, int val)
{
  for (int i = 0; i < sizeof(Display); i++)
  {
    digitalWrite(Display[i], HIGH);
  }  
  desplegar_numero(val);
  digitalWrite(pos + 9, LOW);
}

void desplegar_numero(int val)
{
  byte numero2 = digi_display_catodo[val];
    for (int i = 0; i <7; i++)
    {
      int bit =  bitRead(numero2, i);
      digitalWrite(pines_display[i], bit);
    }
}

C C++ Arduino

Releases

No releases published