abril 3, 2019

BCESTO – Prueba de los marcadores

Written by

Como ya tenemos los marcadores preparados, todos los dígitos, procedemos a probar si funcionan. Conectamos un dígito a una placa Arduino y le cargamos el programa de ejemplo.

// Proyecto: JUEGO BALONCESTO
// Fichero: PruebaDigito.ino
// Descripción: Contador de 1 dígito con registros de desplazamiento 74HC595
// Autor: Rafael Caballos
// Fecha: 5/5/2019
/*
  Shift Register Example
 for 74HC595 shift register

 Convierte datos numéricos en segmentos sin conversor electrónico

 Hardware:
 * 1x 74HC595 shift register attached to pins 8, 12, and 11 of the Arduino,
 as detailed below.
 * 1x dígito de 7 segmentos

 Created 22 May 2009
 Created 23 Mar 2010
 by Tom Igoe
 27/2/2018 - Conversión a 7 segmentos por Rafael Caballos
 */

// Definición de conversión a 7 segmentos
byte Segment7[10]={B00111111,B00000110,B01011011,B01001111,B01100110,B01101101,B01111101,B00000111,B01111111,B01101111};

//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 8;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 12;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 11;

void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
}

void loop() 
{
int ii;
  
 for(ii=0;ii<=9;ii+=1)
 {
  // write to the shift register
    registerWrite(ii);
    delay(500);
 }
}

// This method sends bits to the shift register:
void registerWrite(int dato) 
{
  // turn off the output so the pins don't light up
  // while you're shifting bits:
  digitalWrite(latchPin, LOW);

  // shift the bits out:
  shiftOut(dataPin, clockPin, MSBFIRST, Segment7[dato]);

    // turn on the output so the LEDs can light up:
  digitalWrite(latchPin, HIGH);
}

El siguiente vídeo muestra el funcionamiento del dígito. Probamos todos los dígitos y detectamos algunos fallos, debidos todos a problemas en las soldaduras, que nos obligan a cambiar algunos transistores y LEDs.

Ahora hacemos una prueba conectando dos dígitos en cascada, para formar un marcador. El código es similar al anterior, pero contando hasta 99 con dos dígitos:

// Proyecto: JUEGO BALONCESTO
// Fichero: PruebaContador.ino
// Descripción: Contador de 2 dígitos con registros de desplazamiento 74HC595
// Autor: Rafael Caballos
// Fecha: 5/5/2019
/*
  Shift Register Example
 for 74HC595 shift register

 Contador de 3 dígitos con registros de desplazamiento 74HC595
 Convierte datos numéricos en segmentos sin conversor electrónico

 Hardware:
 * 3x 74HC595 shift register attached to pins 8, 12, and 11 of the Arduino,
 as detailed below.
 * 3x dígito de 7 segmentos

 Created 22 May 2009
 Created 23 Mar 2010
 by Tom Igoe
 27/2/2018 - Conversión a 7 segmentos por Rafael Caballos
 */

// Definición de conversión a 7 segmentos
byte Segment7[10]={B00111111,B00000110,B01011011,B01001111,B01100110,B01101101,B01111101,B00000111,B01111111,B01101111};

//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 8;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 12;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 11;

void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
}

void loop() 
{
int ii;
  
 for(ii=0;ii<=99;ii+=1)
 {
  // write to the shift register
    registerWrite(ii);
    delay(500);
 }
}

// This method sends bits to the shift register:
void registerWrite(int dato) 
{
 byte num1,num2,num3;
 
 num1=dato % 10;
 num2=(dato / 10) % 10;
  
  // turn off the output so the pins don't light up
  // while you're shifting bits:
  digitalWrite(latchPin, LOW);

  // shift the bits out:
  shiftOut(dataPin, clockPin, MSBFIRST, Segment7[num2]);
  shiftOut(dataPin, clockPin, MSBFIRST, Segment7[num1]);

    // turn on the output so the LEDs can light up:
  digitalWrite(latchPin, HIGH);
}

El resultado es correcto, aunque el segundo dígito se ilumina menos. Es algo que tendremos que corregir.

Category : JUEGO BALONCESTO

Deja una respuesta

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

Proudly powered by WordPress and Sweet Tech Theme