PROGRAMA DADO
Enviado por DIAV • 1 de Septiembre de 2021 • Tarea • 448 Palabras (2 Páginas) • 45 Visitas
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
{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);
}
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++) {
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);
...