- Portada
- Fundamentos de Arduino
- Alimentación de circuitos y dispositivos
- Electrónica básica
-
Fundamentos de programación Arduino
-
Introducción a la Programación de Arduino
-
Configuración y descripción de mBlock
-
Configuración del IDE Arduino
-
Descripción del IDE Arduino
-
Estructura de un programa
-
Tipos de datos
-
Operadores
-
Sintaxis
-
Principales funciones Arduino
-
Principales funciones en Bloques
-
Actividad 2
-
Actividad 3
-
Actividad 4
-
Actividad 5
-
Estructuras de control
-
Actividad 6
-
Actividad 7
-
Actividad 8
-
Actividad 9
-
Comunicación Serie
-
Monitor Serial
-
Actividad 10
-
Recibir por Serie
-
Actividad 11
-
Arrays
-
Actividad 12
-
Extensiones de mBlock
-
Librerías en Arduino IDE
-
Cuestionario Fundamentos de programación Arduino10 xp
-
-
Componentes de uso típico
-
El Potenciómetro
-
Actividad 13
-
El Zumbador
-
Actividad 14
-
Actividad 15
-
La Fotoresistencia
-
Actividad 16
-
El Transistor
-
Motores DC
-
Actividad 17
-
Puente en H
-
Actividad 18
-
Sensor de Temperatura Analógico
-
Actividad 19
-
Sensor de Temperatura Digital
-
Actividad 20
-
El Servomotor
-
Actividad 21
-
Sensor de proximidad por ultrasonidos
-
Actividad 22
-
Displays 7 Segmentos
-
Actividad 23
-
Actividad 24
-
Pantallas LCD
-
Actividad 25
-
Relés
-
Actividad 26
-
Cuestionario Componentes de uso típico10 xp
-
- Proyecto final
- Cuestionario Final
Actividad 23
Actividad 23

Ejercicio Display
En esta actividad se debe mostrar por un display de 7 segmentos el número almacenado en una variable. El display puede ser tanto de ánodo común como de cátodo común. Para modificar la variable, se dispondrá de un botón. Si se pulsa el botón, se debe incrementar el valor de la variable en uno. Se debe disponer de un segundo botón para cambiar el digito mostrado en el display. Si se pulsa el segundo botón se debe cambiar el digito encendido en el display. Si el valor de la cuenta sube del numero 9 se debe continuar en el número 0. A continuación se muestra el circuito que se debe utilizar.

Solución en C/C++
// Definir pines de los botones
#define bot_num 10
#define bot_pos 11
// Definir pines del display 7 segmentos
#define pin_a 2
#define pin_b 3
#define pin_c 4
#define pin_d 5
#define pin_e 6
#define pin_f 7
#define pin_g 8
#define pin_DP 9
// Definir pines de cada digito del display 7 segmentos
#define N1 A0
#define N2 A1
#define N3 A2
#define N4 A3
// Variable almacen para guardar que leds se deben encender para
// formar cada numero en el display 7 segmentos
const bool Digito[10][8] =
{
{ 1, 1, 1, 1, 1, 1, 0, 0 }, // 0
{ 0, 1, 1, 0, 0, 0, 0, 0 }, // 1
{ 1, 1, 0, 1, 1, 0, 1, 0 }, // 2
{ 1, 1, 1, 1, 0, 0, 1, 0 }, // 3
{ 0, 1, 1, 0, 0, 1, 1, 0 }, // 4
{ 1, 0, 1, 1, 0, 1, 1, 0 }, // 5
{ 1, 0, 1, 1, 1, 1, 1, 0 }, // 6
{ 1, 1, 1, 0, 0, 0, 0, 0 }, // 7
{ 1, 1, 1, 1, 1, 1, 1, 0 }, // 8
{ 1, 1, 1, 0, 0, 1, 1, 0 } // 9
};
// Creación de variables para almacenar el numero y la posición
int numero = 0;
int pos = 0;
// Función que encienda y/o apague los leds dependiendo del numero
void sacar_num(bool dig[8]){
digitalWrite(pin_a, dig[0]);
digitalWrite(pin_b, dig[1]);
digitalWrite(pin_c, dig[2]);
digitalWrite(pin_d, dig[3]);
digitalWrite(pin_e, dig[4]);
digitalWrite(pin_f, dig[5]);
digitalWrite(pin_g, dig[6]);
digitalWrite(pin_DP, dig[7]);
}
void setup() {
// Se configuran los pines de los pulsadores
pinMode(bot_num, INPUT);
pinMode(bot_pos, INPUT);
// Se configuran los pines del display 7 segmentos
pinMode(pin_a, OUTPUT);
pinMode(pin_b, OUTPUT);
pinMode(pin_c, OUTPUT);
pinMode(pin_d, OUTPUT);
pinMode(pin_e, OUTPUT);
pinMode(pin_f, OUTPUT);
pinMode(pin_g, OUTPUT);
pinMode(pin_DP, OUTPUT);
// Se configuran los pines de selección de dígito
pinMode(N1, OUTPUT);
pinMode(N2, OUTPUT);
pinMode(N3, OUTPUT);
pinMode(N4, OUTPUT);
}
void loop() {
// Si se pulsa el boton de contar, incrementar la cuenta
if(digitalRead(bot_num) == HIGH){
numero++;
}
// Si se pulsa el boton de posicioón, incrementar la posición
if(digitalRead(bot_pos) == HIGH){
pos++;
}
// Si el número llega a 10, reiniciar el contador
if(numero >= 10){
numero = 0;
}
// Si la posición llega a 4, reiniciar la posición
if(pos >= 4){
pos = 0;
}
// Mostrar en display de 7 segmentos el numero
switch(numero){
case 0:
sacar_num(Digito[0]); // Mostrar un 0
break;
case 1:
sacar_num(Digito[1]); // Mostrar un 1
break;
case 2:
sacar_num(Digito[2]); // Mostrar un 2
break;
case 3:
sacar_num(Digito[3]); // Mostrar un 3
break;
case 4:
sacar_num(Digito[4]); // Mostrar un 4
break;
case 5:
sacar_num(Digito[5]); // Mostrar un 5
break;
case 6:
sacar_num(Digito[6]); // Mostrar un 6
break;
case 7:
sacar_num(Digito[7]); // Mostrar un 7
break;
case 8:
sacar_num(Digito[8]); // Mostrar un 8
break;
case 9:
sacar_num(Digito[9]); // Mostrar un 9
break;
}
// Encender el digito dependiendo del valor de posición
switch(pos){
case 0:
digitalWrite(N1, LOW);
digitalWrite(N2, HIGH);
digitalWrite(N3, HIGH);
digitalWrite(N4, HIGH);
break;
case 1:
digitalWrite(N1, HIGH);
digitalWrite(N2, LOW);
digitalWrite(N3, HIGH);
digitalWrite(N4, HIGH);
break;
case 2:
digitalWrite(N1, HIGH);
digitalWrite(N2, HIGH);
digitalWrite(N3, LOW);
digitalWrite(N4, HIGH);
break;
case 3:
digitalWrite(N1, HIGH);
digitalWrite(N2, HIGH);
digitalWrite(N3, HIGH);
digitalWrite(N4, LOW);
break;
}
}
Solución en Bloques
Actualmente no está disponible la solución a la actividad en Bloques.
| Vistas | |
|---|---|
| 12 | Número de vistas |
| 12 | Vistas de miembros |
| 0 | Vistas públicas |
| Acciones | |
|---|---|
| 0 | Gustos |
| 0 | No me gusta |
| 0 | Comentarios |
Compartir por correo
Por favor iniciar sesión para compartir esto webpage por correo.