Hola, me presento, Soy David Usaji, de Cádiz (España) tengo 46 años y he empezado ahora en el mundo Arduino. tengo conocimientos de electrónica, pero la programación se me escapa un poco.
Estoy creando un contador con 4 dígitos de 7 segmentos que cuenten decenas. Usando los 74hc595 no logro que el segundo marcador (dos dígitos) haga su función, sólo marca "00" cuando el primero llega a "99"
/*En este proyecto se contará desde el 0 hasta el 99 con contadores que suben y bajan
*/
int pinLatch = 11; //Pin para el latch de los 74CH495 pin 12
int pinDatos = 10; //Pin para Datos serie del 74CH495 pin 14
int pinReloj = 12; //Pin para reloj del 74CH495 pin 11
int pinLatch2 = 9; //Pin para el latch de los 74CH495
int pinDatos2 = 7; //Pin para Datos serie del 74CH495
int pinReloj2 = 8; //Pin para reloj del 74CH495
int i=0; //Número de las decenas equipo 1
int j=0; //Número de las unidades equipo 1
int i2=0; //Número de las decenas equipo 2
int j2=0; //Número de las unidades equipo 2
int PULIZSUBE = 6; // pusaldor izquierdo sube
int PULIZRBAJA = 5; // Pulsador izquierdo baja
int PULDESUBE = 4; // Pulsador derecho sube
int PULDEBAJA = 3; // Pulsador derecho baja
// Salidas 74hc595 para display 7 segmentos
// Pin 15 A
// Pin 1 B
// Pin 2 C
// Pin 3 D
// Pin 4 E
// Pin 5 F
// Pin 6 G
// Pin 7 DP
// Pin 8 GND
byte digitOne[]= {
// Codificación hexadecimal de los dígitos decimales en el display de 7 segmentos
//0xEE, 0x82, 0xDC, 0xD6, 0xB2, 0x76, 0x7E, 0xC2, 0xFE, 0xF6};
B11111100, //0
B01100000, //1
B11011010, //2
B11110010, //3
B01100110, //4
B10110110, //5
B10111110, //6
B11100000, //7
B11111111, //8
B11100110}; //9
byte digitOne1[]= {
// Codificación hexadecimal de los dígitos decimales en el display de 7 segmentos
//0xEE, 0x82, 0xDC, 0xD6, 0xB2, 0x76, 0x7E, 0xC2, 0xFE, 0xF6};
B11111100, //0
B01100000, //1
B11011010, //2
B11110010, //3
B01100110, //4
B10110110, //5
B10111110, //6
B11100000, //7
B11111111, //8
B11100110}; //9
void setup(){
pinMode(pinLatch,OUTPUT);
pinMode(pinDatos,OUTPUT);
pinMode(pinReloj,OUTPUT);
pinMode(pinLatch2,OUTPUT);
pinMode(pinDatos2,OUTPUT);
pinMode(pinReloj2,OUTPUT);
}
void loop(){
// Para que imprima del 0 al 99
for(i=0; i<10; i++){ //Aumneta en uno, hasta que llegue a 10, el numero de las decenas
for(j=0; j<10; j++){ //Aumneta en uno, hasta que llegue a 10, el numero de las unidades
digitalWrite(pinLatch, LOW);
shiftOut(pinDatos, pinReloj, LSBFIRST, digitOne[j]); // digitOne unidades
shiftOut(pinDatos, pinReloj, LSBFIRST, digitOne[i]); //digitOne decenas
digitalWrite(pinLatch, HIGH);
delay(500);
}
}
// Para que imprima del 0 al 99
for(i=0; i<10; i++){ //Aumneta en uno, hasta que llegue a 10, el numero de las decenas
for(j=0; j<10; j++){ //Aumneta en uno, hasta que llegue a 10, el numero de las unidades
digitalWrite(pinLatch2, LOW);
shiftOut(pinDatos2, pinReloj2, LSBFIRST, digitOne1[i2]); // digitOne unidades
shiftOut(pinDatos2, pinReloj2, LSBFIRST, digitOne1[j2]); //digitOne decenas
digitalWrite(pinLatch2, HIGH);
delay(500);
}
}
}
-----------------------------------------------------------------------------------------------------------------------
Los interruptores aún no los tengo configurados, ya que tengo algo de lio con los códigos.
Estoy empezando en esto, y la verdad no se porque he tardado tanto. El mundo Arduino es fascinante.