Está en la página 1de 5

Alemán Vega David Isaac 7AM4

CÓDIGO EJEMPLO DE DADO

//Pines de Arduino

#define a 6

#define b 7

#define c 8

#define d 3

#define e 2

#define f 5

#define g 4

#define dp 9

#define boton 12

//Tiempo de vizualizacion

#define tiempo 3000

//Estados logicos de ON/OFF para display de anodo comun

#define H 0

#define L 1

//Arreglo para formar cada numero

byte digitos[7][7] = {

{L, L, L, L, L, L, L}, //OFF

{L, H, H, L, L, L, L}, //1

{H, H, L, H, H, L, H}, //2

{H, H, H, H, L, L, H}, //3


Alemán Vega David Isaac 7AM4

{L, H, H, L, L, H, H}, //4

{H, L, H, H, L, H, H}, //5

{H, L, H, H, H, H, H} //6

};

//Arreglo de conexion de pines

uint8_t pin[7] = {a, b, c, d, e, f, g};

void setup() {

//Configuracion de pines

pinMode(a, OUTPUT);

pinMode(b, OUTPUT);

pinMode(c, OUTPUT);

pinMode(d, OUTPUT);

pinMode(e, OUTPUT);

pinMode(f, OUTPUT);

pinMode(g, OUTPUT);

pinMode(dp, OUTPUT);

pinMode (boton, INPUT_PULLUP);

//Prueba de conexion y funcionamiento

for (uint8_t v = 1; v < 7; v++) {

driver(v, 500);
Alemán Vega David Isaac 7AM4

animacion();

//Esta funcion realiza una animacion

void animacion() {

//Coloca el DP en estado L

digitalWrite(dp, L);

//Enciende cada segmento del display en secuencia por 3 ciclos

for (uint8_t w = 0; w < 3; w++) {

for (uint8_t x = 0; x < 6; x++) {

digitalWrite(pin[x], H);

delay(100);

digitalWrite(pin[x], L);

//Esta funcion muestra el numero generado

void driver(uint8_t numero, int espera) {

//Enciende cada segmento del display correspondiente al numero

for (uint8_t y = 0; y < 7; y++) {


Alemán Vega David Isaac 7AM4

digitalWrite(pin[y], digitos[numero][y]);

delay (espera);

//Apaga todos los segmentos del display

for ( uint8_t z = 0 ; z < 7; z++) {

digitalWrite(pin[z], L);

void loop() {

//Inicializa el generador de números aleatorios

//en referencia a la funcion millis

randomSeed(millis());

//Si el estado del pin de entrada es LOW

if (digitalRead (boton) == LOW) {

//Muestra la animacion

animacion();

//Genera un numero aleatorio y envia a la funcion

driver(random(1, 7), tiempo);

//Si el estado del pin de entrada es HiGH

else {
Alemán Vega David Isaac 7AM4

//Coloca el DP en estado H

digitalWrite(dp, H);

//Retardo de 100ms

delay(100);

También podría gustarte