Video del circuito
A continuación se deja en video en donde se explica al detalle el circuito.
Display 7 segmentos
Es un elemento para visualización de números y letras en electrónica, cada segmento esta hecho de un material que emite luz, los segmentos se organizan o se designan como se muestra en la siguiente imagen.

Display 7 segmentos conexión
Existen dos tipos de display de 7 segmentos, su principal diferencia es la conexión de los pines que están asociados a los segmentos, estos dos tipos se conocen como Anodo común y Catodo común.
Display de cátodo común
El display cátodo común es aquel que tiene el pin común conectado a los negativos de los LED’s (cátodo). Esto significa que este tipo de display se “controla” con ‘1’ lógico o con voltaje positivo.

Display 7 segmentos cátodo cómun
Display de ánodo común
El display ánodo común es aquel cuyos ánodos están conectados al mismo punto. Este tipo de display es controlado por ceros (0).

Display 7 segmentos ánodo cómun
Conexión del circuito

Conexión display 7 segmentos ánodo cómun
Materiales
Materia | Cantidad | Descripción |
---|---|---|
Display 7 segmentos ánodo común | 2 | Visualizaremos los digitos del 0 al 9 |
Arduino uno | 1 | Controlador para el display |
Transistores | 2 | Transistores NPN 2N2222 que sirven como interruptor eléctrico para los displays, también se puede usar el 2N3904 |
Resistencias de 1k | 9 | Las usaremos para proteger las entradas y los leds de display |
Cables macho a macho | 9 | Los usaremos para la conexión |
Código
El codigo lo tenemos en el repositorio de github en la sección arduino code.
const int pins[7] = { 2, 3, 4, 5, 6, 7, 8 };
//Declaramos los numeros para el ánodo común
const byte numbersDisplayAnode[10] = {0b1000000, //0
0b1111001, //1
0b0100100, //2
0b0110000, //3
0b0011001, //4
0b0010010, //5
0b0000010, //6
0b1111000, //7
0b0000000, //8
0b0010000}; //9
const int nbrDigits = 2;
// digits 1 2
const int digitPins[nbrDigits] = {10,11};
void setup() {
for(int i = 0; i < 8; i++) {
pinMode(pins[i], OUTPUT);
}
for(int i = 0; i < nbrDigits; i++) {
pinMode(digitPins[i], OUTPUT);
}
}
void loop() {
for(int i = 0; i < 100; i++ ){
showNumber(i);
delay(1);
}
}
void showNumber(int number) {
if(number == 0) {
showDigit(0, nbrDigits-1);
} else {
for(int digit = nbrDigits-1; digit >= 0; digit--) {
if(number > 0) {
showDigit(number % 10, digit);
number = number / 10;
}
}
}
}
void showDigit(int number, int digit) {
digitalWrite(digitPins[digit], HIGH);
byte numberBit = numbersDisplayAnode[number];
for (int i = 0; i < 7; i++) {
int bit = bitRead(numberBit, i);
digitalWrite(pins[i], bit);
}
delay(5);
digitalWrite(digitPins[digit], LOW);
}
Comentario

jesus19991112
12 June 2019 20:48
por favor podrías pasar los cogidos del semáforo y del display

oscar
12 June 2019 21:39
Hola, los codigós se encuentran en el repositorio de github, en este mismo post esta el código y el enlace al repositorio