¡Hola! Tengo un problema con uno de los segmentos de este proyecto. La idea es generar letras y números, pero el segmento e no funciona correctamente.
Si lo enciendo de manera individual, solamente el e, funciona lo ponga en un display, en varios o en todos. El problema aparece cuando enciendo el e junto a otro, ahí se enciende el otro pero no el e. Por ejemplo, si quiero poner un 6, muestra un 5 al no encender el e. Con una excepción, al poner un 8 con el dp también activo, si se enciende (el 8 sin el punto no).
Todos los demás funcionan sin problemas, tanto la pantalla que pretendo encender (sea una o varias), como los segmentos que escojo.
He probado a conectarlo en otra salida, la 12 en vez de la 13, pero continúa haciendo lo mismo.
Adjunto un dibujo cutre del esquema y parte del código (no todo porque es todo el rato enciende esto apaga lo otro). Estoy usando un Arduino Nano, por si sirve de algo la información. Y el haber usado las salidas analógicas como digitales es porque hay más cosas conectadas, no lo incluyo en el esquema porque he probado a desconectarlo y sigue haciendo lo mismo por lo que no creo que tenga nada que ver.
Muchas gracias de antemano.
#define a 19
#define b 6
#define c 14
#define d 16
#define e 13
#define f 18
#define g 17
#define dp 15
#define uno 1
#define dos 4
#define tres 5
#define cuatro 2
#define cinco 3
void setup() {
for(byte x=1; x<20; x++){ //Del 1 al 19 porque hay más cosas conectadas
pinMode(x, OUTPUT);
}
}
void loop() {
digitalWrite(uno, HIGH); //7 en la primera pantalla
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(uno, LOW);
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(tres, HIGH); //6 en la tercera pantalla
digitalWrite(a, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(tres, LOW;
digitalWrite(a, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(cinco, HIGH); //E en la quinta pantalla
digitalWrite(a, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(cinco, LOW);
digitalWrite(a, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}