1. El Octavo Bit
  2. / Arduino
  3. / Proyectos para Arduino
  4. / Funcionamiento del display de 4 dígitos y 7 segmentos con Arduino

Funcionamiento del display de 4 dígitos y 7 segmentos con Arduino

| Actualizado:
Comentarios: 0

Funcionamiento del display de 4 dígitos y 7 segmentos con Arduino
Funcionamiento del display de 4 dígitos y 7 segmentos con Arduino

Para mostrar más información, como la hora o la temperatura, necesitamos un display de más dígitos o conectar varios display de un solo dígito. En este tutorial veremos cómo conectar un display de 4 dígitos a Arduino.

Display de 4 dígitos y 7 segmentos 3461AS-1

Se trata un display de cátodo común, en el que se puede ver que los pines de cada segmento están compartidos para los 4 dígitos. Por lo que para poder mostrar un número de 4 dígitos es necesario multiplexar la señal, es decir, iluminar secuencialmente cada uno de los dígitos en una sucesión muy rápida, creando la ilusión de que todos los dígitos están encendidos a la vez.

Distribución de los pines en el display 3461AS

Material necesario:

  • Placa Arduino o compatible.
  • Display de 4 dígitos y 7 segmentos.
  • 4 resistencias.
  • Protoboard.
  • Cables de conexión.

Esquema de conexiones.

Los pines digitales D1, D2, D3 Y D4 se conectan a las resistencias, ya que son los terminales de los dígitos.

Esquema de conexión del display con Arduino

Código para mostrar un número.

#include "SevSeg.h"
SevSeg sevseg; 

void setup(){
  byte numDigits = 4;
  byte digitPins[] = {10, 11, 12, 13};
  byte segmentPins[] = {9, 2, 3, 5, 6, 8, 7, 4};

  bool resistorsOnSegments = true; 
  bool updateWithDelaysIn = true;
  byte hardwareConfig = COMMON_CATHODE; 
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
  sevseg.setBrightness(90);
}

void loop(){
    sevseg.setNumber(5921,3);
    sevseg.refreshDisplay(); 
}

En la función setup() definimos el número de dígitos del display, qué pines de Arduino están conectados a los pines de los dígitos y qué pines lo están a los segmentos.

El número de dígitos del display lo definimos con byte numDigits = 4.

Los dígitos los definimos en byte digitPins[] = {10,11,12,13}, se corresponden con el D1, D2, D3 y D4, en ese orden.

Los pines para los segmentos se definen en byte segmentPins[] = {9,2,3,5,6,8,7,4}, se corresponden con los segmentos A, B, C, D, E, F, G y el punto decimal.

Tabla resumen con las conexiones de los pines del display con la placa Arduino:

Pines display Pines Arduino
Segmento E 6
Segmento D 5
Punto decimal 4
Segmento C 3
Segmento G 7
Digito 4 (D4) 13
Segmento B 2
Digito 3 (D3) 12
Digito 2 (D2) 11
Segmento F 8
Segmento A 9
Digito 1 (D1) 10

Para imprimir el número con un punto decimal utilizamos la instrucción sevseg.setNumber(5921,3) donde el primer parámetro es el número y el segundo parámetro dónde colocar el punto decimal.

Código para realizar un contador.

Utilizamos el mismo esquema para realizar el contador.

#include "SevSeg.h"
SevSeg sevseg;

// Variables globales
int Contador = 0;     // inicio
int espera =0;        // contador espera
int esperamax =1000;  // define la velocidad

void setup(){
  byte numDigits = 4;
  byte digitPins[] = {10, 11, 12, 13};
  byte segmentPins[] = {9, 2, 3, 5, 6, 8, 7, 4};

  bool resistorsOnSegments = true; 
  bool updateWithDelaysIn = true;
  byte hardwareConfig = COMMON_CATHODE; 
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
  sevseg.setBrightness(90);
}
void loop(){
  sevseg.refreshDisplay();
  sevseg.setNumber(Contador, -1);
  // sistema para aumentar el contador y crear un sistema de velocidad
  espera = espera +1;
  if (espera == esperamax){
    espera =0;
    Contador = Contador + 1;
  }
}

En el código se puede observar que se ha añadido una variable para llevar el contador, otra variable para crear un sistema de espera, y una última que va a ser la encargada de aumentar la velocidad del contador.

En la función loop() podéis ver:

espera = espera +1;
if (espera == esperamax){
  espera =0;
  Contador = Contador + 1;
}

Este trozo de código, es el encargado de ir aumentando el contador, este será más veloz si disminuimos la variable esperamax. Podéis comprobarlo disminuyendo la variable, por ejemplo a 10. Recordad que la función loop() es un bucle que se repite continuamente, si no colocamos el if, en cada vuelta aumentaría el contador en una unidad.

Artículos que te pueden interesar

Iluminación de un led según la cantidad de luz
Sistema de regulación de la iluminación de un led a partir de la cantidad de luz

Sistema de regulación de la iluminación de un led a partir de la cantidad de luz

| Actualizado:
Comentarios: 0

El objetivo es encender un LED y variar su intensidad dependiendo de la luz ambiental, para esto vamos a utilizar un sensor de luz LDR. Antes de cambiar la intensidad del LED según la cantidad de luz, haremos que se…

Plataforma móvil con un joystick y Arduino
Plataforma móvil con 2 servos controlada por un joystick y Arduino

Plataforma móvil con 2 servos controlada por un joystick y Arduino

| Actualizado:
Comentarios: 0

Vamos a montar una torreta con dos servos que nos ayudarán a desplazarla en un ángulo de 180º, en el eje horizontal y en el vertical. Utilizaremos un joystick para mover los pequeños motores. Podremos utilizar la plataforma móvil para…

Medir la temperatura con Arduino
Medir la temperatura con el sensor LM35 y Arduino

Medir la temperatura con el sensor LM35 y Arduino

| Actualizado:
Comentarios: 5

Veremos cómo medir la temperatura con el sensor analógico LM35 y mostrar el valor de la temperatura en el monitor serial de Arduino o en un display de 4 dígitos y 7 segmentos. El LM35 es uno de los sensores…

Pulsadores para Arduino
Las entradas digitales en Arduino. Los pulsadores.

Las entradas digitales en Arduino. Los pulsadores.

| Actualizado:
Comentarios: 0

En muchos de los proyectos con Arduino nos encontraremos un pulsador o botón. Aquí veremos cómo hacer para utilizar correctamente sus señales. Primero, explicaremos qué son las resistencias pull-up y pull-down, montaremos un circuito eléctrico con un pulsador y una…

Comentarios - 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *