Led de siete segmentos con un dígito

Vamos a ver cómo conectar un led de siete segmentos, en este caso un SMA42056 y un 3911AH, son muy parecidos, con los dos elementos con cátodo común. Esto significa que tenemos una salida común que habrá que poner a tierra, y pondremos voltaje en el resto de patas.

Estos son los dos elementos que vamos a probar, el de la izquierda es el SMA42056 y el de la derecha girado es el 3911AH. Este último está girado por el patillaje que trae. En el primero las patitas están en la zona superior e inferior, mientras que en último están a la izquierda y a la derecha. Ambos tienen 10 patillas.

Dos7SegmentosMini

El patillaje de los elementos son estos, ojo con las patillas a las que corresponden cada segmento, en el primer caso, por ejemplo, el segmento A se activa con la patilla 7, mientras que en el 3911AH es la patilla 10.

Patas-sma42056          Patas-3911AH

Otra imagen con todos los segmentos encendidos. También podemos ver una resistencia de 330 ohmios antes de las entradas para reducir el voltaje y proteger de cortos.

Dos7SegmentosEncendidosMini

Por último vamos a usar el arduino para algo 😀

Primero el esquema de conexiones. Las resistencias son de 1000 Ohmios para proteger de cortos y reducir el voltaje del arduino.

LedSieteSegmentos_bb_mini

Vamos con el código (manifiestamente mejorable y recortable)

int PinA = 24;
int PinB = 25;
int PinC = 50;
int PinD = 53;
int PinE = 52;
int PinF = 23;
int PinG = 22;
int PinPD = 51;

void setup() {
// put your setup code here, to run once:
pinMode(PinA, OUTPUT);
pinMode(PinB, OUTPUT);
pinMode(PinC, OUTPUT);
pinMode(PinD, OUTPUT);
pinMode(PinE, OUTPUT);
pinMode(PinF, OUTPUT);
pinMode(PinG, OUTPUT);
pinMode(PinPD, OUTPUT);
}

void printNumber(int number) {
switch (number) {
case 1:
digitalWrite(PinA, LOW);digitalWrite(PinB, HIGH);digitalWrite(PinC, HIGH);digitalWrite(PinD, LOW);
digitalWrite(PinE, LOW);digitalWrite(PinF, LOW);digitalWrite(PinG, LOW);digitalWrite(PinPD, LOW);
break;
case 2:
digitalWrite(PinA, HIGH);digitalWrite(PinB, HIGH);digitalWrite(PinC, LOW);digitalWrite(PinD, HIGH);
digitalWrite(PinE, HIGH);digitalWrite(PinF, LOW);digitalWrite(PinG, HIGH);digitalWrite(PinPD, HIGH);
break;
case 3:
digitalWrite(PinA, HIGH);digitalWrite(PinB, HIGH);digitalWrite(PinC, HIGH);digitalWrite(PinD, HIGH);
digitalWrite(PinE, LOW);digitalWrite(PinF, LOW);digitalWrite(PinG, HIGH);digitalWrite(PinPD, LOW);
break;
case 4:
digitalWrite(PinA, LOW);digitalWrite(PinB, HIGH);digitalWrite(PinC, HIGH);digitalWrite(PinD, LOW);
digitalWrite(PinE, LOW);digitalWrite(PinF, HIGH);digitalWrite(PinG, HIGH);digitalWrite(PinPD, HIGH);
break;
case 5:
digitalWrite(PinA, HIGH);digitalWrite(PinB, LOW);digitalWrite(PinC, HIGH);digitalWrite(PinD, HIGH);
digitalWrite(PinE, LOW);digitalWrite(PinF, HIGH);digitalWrite(PinG, HIGH);digitalWrite(PinPD, LOW);
break;
case 6:
digitalWrite(PinA, HIGH);digitalWrite(PinB, LOW);digitalWrite(PinC, HIGH);digitalWrite(PinD, HIGH);
digitalWrite(PinE, HIGH);digitalWrite(PinF, HIGH);digitalWrite(PinG, HIGH);digitalWrite(PinPD, HIGH);
break;
case 7:
digitalWrite(PinA, HIGH);digitalWrite(PinB, HIGH);digitalWrite(PinC, HIGH);digitalWrite(PinD, LOW);
digitalWrite(PinE, LOW);digitalWrite(PinF, LOW);digitalWrite(PinG, LOW);digitalWrite(PinPD, LOW);
break;
case 8:
digitalWrite(PinA, HIGH);digitalWrite(PinB, HIGH);digitalWrite(PinC, HIGH);digitalWrite(PinD, HIGH);
digitalWrite(PinE, HIGH);digitalWrite(PinF, HIGH);digitalWrite(PinG, HIGH);digitalWrite(PinPD, HIGH);
break;
case 9:
digitalWrite(PinA, HIGH);digitalWrite(PinB, HIGH);digitalWrite(PinC, HIGH);digitalWrite(PinD, HIGH);
digitalWrite(PinE, LOW);digitalWrite(PinF, HIGH);digitalWrite(PinG, HIGH);digitalWrite(PinPD, LOW);
break;
case 0:
digitalWrite(PinA, HIGH);digitalWrite(PinB, HIGH);digitalWrite(PinC, HIGH);digitalWrite(PinD, HIGH);
digitalWrite(PinE, HIGH);digitalWrite(PinF, HIGH);digitalWrite(PinG, LOW);digitalWrite(PinPD, HIGH);
break;
}
}

void loop() {
// put your main code here, to run repeatedly:
for (int i=0;i<10;i++) {
printNumber(i);
delay(1000);
}
}

Y como siempre, el resultado en vídeo:

Deja una respuesta

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