Lo primero he encontrado una imagen para ver la diferencia de conexión entre un ánodo común y el cátodo común, creo que se entiende
Habrá que tener en cuenta que la resistencia siempre se pondrá en el común para que no necesitemos una por segmento.
Para realizarlos en orden, considero que lo mejor es que asignemos a cada salida el valor que tienen, aunque personalmente no me gusta usar el 0 y el 1 por si algún día quiero usar la conexión via pc.
Quedaría así, conectando el que no tiene número(ánodo común) a 5V, y en medio una resistencia de 300 Ohmnios
Explicaciones complementarias: Al estar cargado el ánodo con 5V, las salidas deberán marcar 0V(LOW) para que se encienda cada led, y 5V(HIGH) para que estén apagadas.
Programando:
/*
EJERCICIO NUMEROS DISPLAY 7 SEGMENTOS www.arduinofacill.blogspot.com
AUTOR: ASSM
LICENCIA: GNU
OBJETIVO: HACER LOS NÚMEROS DEL 0 AL 9 QUE SE VALLAN CAMBIANDO TRÁS UN TIEMPO(300 MILISEGUNDO)
*/
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;
int led7 = 8;
int led8 = 9;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led1, OUTPUT); // SUPERIOR DERECHA
pinMode(led2, OUTPUT); // INFERIOR DERECHA
pinMode(led3, OUTPUT); // INFERIOR
pinMode(led4, OUTPUT); // INFERIOR IZQUIERDA
pinMode(led5, OUTPUT); // SUPERIOR IZQUIERDA
pinMode(led6, OUTPUT); // SUPERIOR
pinMode(led7, OUTPUT); // CENTRAL
pinMode(led8, OUTPUT); // PUNTO, NO USADO
}
void uno(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
void dos(){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
void tres(){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, HIGH);
}
void cuatro(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
void cinco(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
void seis(){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
void siete(){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
void ocho(){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, HIGH);
}
void nueve(){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, HIGH);
}
void cero(){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
void loop() {
uno();
delay(400);
dos();
delay(400);
tres();
delay(400);
cuatro();
delay(400);
cinco();
delay(400);
seis();
delay(400);
siete();
delay(400);
ocho();
delay(400);
nueve();
delay(400);
cero();
delay(400);
}
Como se puede ver, cada número ha sido convertido en una función, según los leds que deben quedar encendidos y posteriormente se ha llamado a cada número por su función.
El video que pongo no es el real, ya que se me ha estropeado el Display de 7 segmentos y un caracter, espero próximamente poneros este(de cuatro digitos) en funcionamiento con cuatro números, pero la idea era que se viese la idea.


No hay comentarios:
Publicar un comentario