Go Down

Topic: AYUDA: Control de Display 7segmentos x 2bit + 74HC595 - Dos pines digitales. (Read 1 time) previous topic - next topic

juanpintom

:smiley-eek:
En primer lugar aprovecho para presentarme y saludar a todos, despues de algun tiempo investigando y sin mucha suerte al final me he decidido a preguntar.  :smiley-roll-sweat:

Al caso, quiero controlar un Display de 2 digitos con 10 pines con un 74HC795 y consigo controlar un digito, pero no se si se puede controlar los dos con un solo 74HC795. Siendo que el Display de 2 digitos tiene 2 entradas digitales para controlarlo.

Paso a detallar:
Display:


Cuyo Pinout es:

1  C segment cathode
2  DP segment cathode
3  E segment cathode
4  D segment cathode
5  G segment cathode
6  F segment cathode
7  Digital 1 common anode
8  Digital 2 common anode
9  B segment cathode
10  A segment cathode

Lo controlo a traves de un 74HC595 conectando:


Q0 a Q7 de la A al DP (punto)

Pines a Arduino:

DS al 8
SH_CP al 7 (Clock)
ST_CP al 9 (Latch)

El codigo de prueba que he metido es un simple contador de 0 a 99

Code: [Select]
//Pin connected to ST_CP of 74HC595
int latchPin = 9;
//Pin connected to SH_CP of 74HC595
int clockPin = 7;
////Pin connected to DS of 74HC595
int dataPin = 8;

int LED_SEG_TAB[]={0x01,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
//                   0    1    2    3    4    5    6    7    8    9

int counts;
byte ten_e1, ten_e0;

void setup()
{
 //set pins to output so you can control the shift register
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 //Serial.begin(9600);
}

void loop()
{
 for (int counts = 0; counts < 100; counts++)
 {
   ten_e1 = counts / 10;     //SACA LA DECENA
   ten_e0 = counts % 10;     //SACA LA UNIDAD
   digitalWrite(latchPin, LOW);
   shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[ten_e0]);   // LSD
   shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[ten_e1]);  
   digitalWrite(latchPin, HIGH);
   delay(100);
 }
}


La ultima parte del circuito la cierro con una resistencia de 220 en el Display de 2 digitos desde su PIN7 (llamado Digital 1 common anode) a GND.
Hasta aqui todo perfecto, me muestra en el digito de la izquierda el contador.
Si derivo la resistencia de 220 al PIN8 (llamado Digital 2 common anode) aparecen los numeros en ambos displays sin problemas.

El caso es como puedo utilizar ese PIN8 (llamado Digital 2 common anode)??
Lo podria conectar al Q7´del 74HC795 como se muestra en este ejemplo del ShiftOut?


Tendria que usar alguna resistencia imagino...

Edito: No me he podido resistir y he probado con otra resistencia de 220 desde Q7´a PIN8 (llamado Digital 2 common anode) y hace exactamente lo mismo, muestra el mismo numero en ambos displays  :~
Ya no se si podria ser problema de codigo.

Gracias por la ayuda de antemano y...
Salu2 a To2 :smiley-mr-green:
Souliss - Distributed Home Automation and Internet of Things<br /><br />http://www.souliss.net/<br /><br />http://forum.arduino.cc/index.php?topic=223723.0

Go Up