Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DISPLAY
ARDUINO
INTRODUCCIÓN
1
Tercer Práctica
Comenzamos creando el circuito de conteo
2
Para comenzar vamos a conectar cada terminal a una resistencia y después al
arduino, a las resistencias les pusimos un valor de 220Ω, como se mencionó
anteriormente cada segmento está representado por una letra, por lo tanto,
tenemos que prestar atención en cual pin vamos a conectarlos.
3
1
// C++ code
//Primero declaramos variables al que están conectados los pines de nuestro display e
iniciar variables que utilizaremos más adelante
int Pint_A = 12;
int Pint_B = 13;
int Pint_C = 7;
int Pint_D = 8;
int Pint_E = 9;
int Pint_F = 11;
int Pint_G = 10;
int n = 0;
4
void loop()
{
funcion();
}
void off() //Esta es una función que apaga todos los segmentos del display
{
digitalWrite(Pint_A,LOW);
digitalWrite(Pint_B,LOW);
digitalWrite(Pint_C,LOW);
digitalWrite(Pint_D,LOW);
digitalWrite(Pint_E,LOW);
digitalWrite(Pint_F,LOW);
digitalWrite(Pint_G,LOW);
}
//Como mencionamos anteriormente se busca que inicie con 0 el conteo, pero después
debe empezar con 1, por lo tanto se hacen dos condiciones dentro de la función.
void funcion()
{
if(n == 0) //Condición cuando inicie en 0
{ //Encendemos los segmentos que representen el número
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_C,HIGH);
digitalWrite(Pint_D,HIGH);
digitalWrite(Pint_E,HIGH);
digitalWrite(Pint_F,HIGH);
delay(1000);
off();
for(int c=5;c>0;c++) //Ciclo con el que realizará el conteo de 2 en 2 y condiciones para
que se enciendan los segmentos que representen cada número.
{
5
n = n + 2;
if (n == 2)
{
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_G,HIGH);
digitalWrite(Pint_E,HIGH);
digitalWrite(Pint_D,HIGH);
delay(1000);
off();
}
if (n == 4)
{
digitalWrite(Pint_F,HIGH);
digitalWrite(Pint_G,HIGH);
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_C,HIGH);
delay(1000);
off();
}
if (n == 6)
{
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_F,HIGH);
digitalWrite(Pint_G,HIGH);
digitalWrite(Pint_E,HIGH);
digitalWrite(Pint_C,HIGH);
digitalWrite(Pint_D,HIGH);
delay(1000);
off();
}
6
if (n == 8)
{
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_C,HIGH);
digitalWrite(Pint_D,HIGH);
digitalWrite(Pint_E,HIGH);
digitalWrite(Pint_F,HIGH);
digitalWrite(Pint_G,HIGH);
delay(1000);
off();
}
}
}
n = 1; //Al finalizar el ciclo “for” iniciamos nuestra variable de conteo a 1 para que entre a
la siguiente condición
if (n == 1) //Condición cuando inicie en 0
{ //Encendemos los segmentos que representen el número
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_C,HIGH);
delay(1000);
off();
for(int c=5;c>0;c++) //Ciclo con el que realizará el conteo de 2 en 2 y condiciones para
que se enciendan los segmentos que representen cada número.
{
n = n + 2;
if (n == 3)
{
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_G,HIGH);
digitalWrite(Pint_C,HIGH);
7
digitalWrite(Pint_D,HIGH);
delay(1000);
off();
}
if (n == 5)
{
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_F,HIGH);
digitalWrite(Pint_G,HIGH);
digitalWrite(Pint_C,HIGH);
digitalWrite(Pint_D,HIGH);
delay(1000);
off();
}
if (n == 7)
{
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_C,HIGH);
delay(1000);
off();
}
if (n == 9)
{
digitalWrite(Pint_A,HIGH);
digitalWrite(Pint_B,HIGH);
digitalWrite(Pint_C,HIGH);
digitalWrite(Pint_D,HIGH);
digitalWrite(Pint_F,HIGH);
digitalWrite(Pint_G,HIGH);
delay(1000);
8
off();
}
}
} n = 0; //Al finalizar el ciclo “for” iniciamos nuestra variable de conteo a 0 para que entre
a la siguiente condición
}
En cada condición después de encender los segmentos se les deja un tiempo y
después se utiliza la función de apagar puesto que, si no se hace eso, el display
no puede hacer ningún otro cambio.
9
Ahora continuamos con el siguiente ejercicio en el cual representaremos las
funciones de las compuertas lógicas AND y OR. Iniciamos creando un nuevo
circuito Buscamos los componentes que vamos a utilizar:
Igual que con el ejercicio anterior vamos a utilizar los display 7 segmentos cátodo
común, comenzaremos con las conexiones, primeramente, posicionamos el
arduino y la placa de pruebas, como en este ejercicio solo queremos mostrar los
números 1 o 0 en los displays no usamos todos los segmentos del display y por lo
tanto se decidió que los segmentos B y C que muestran el número 1 se
conectarían juntos al igual que los segmentos A, F, E y D para no hacer más
grande el circuito.
10
Terminal 2 de interruptor3 al pin 9
// C++ code
// Comenzamos declarando las variables
11
int PinR1 = 8; //Display3 1
int PinEnt1 = 7; //Interruptor 1
void loop()
{
Funcion();
Puertalogic();
}
12
//Función para apagar los segmentos del display 2
void offB()
{
digitalWrite(PinB0,LOW);
digitalWrite(PinB1,LOW);
}
13
}
}
void Puertalogic() //Funcion para la salida del 3 display, si el tercer interruptor esta=
Encendido: AND, Apagado: OR
{
entP = digitalRead(PinP); //Lee el estado del 3 interruptor
ent1 = digitalRead(PinEnt1); //Lee el estado del 1 interruptor
ent2 = digitalRead(PinEnt2); //Lee el estado del 2 interruptor
if (entP == true)
{
if(ent1 == true && ent2 == true) //Condición para un comportamiento como AND
{
offR();
digitalWrite(PinR1,HIGH);
}else{
offR();
digitalWrite(PinR0, HIGH);
digitalWrite(PinR1,HIGH);
}
}else{
if(ent1 == true || ent2 == true) //Condición para comportamiento como compuerta OR
{
offR();
digitalWrite(PinR1,HIGH);
}else{
offR();
digitalWrite(PinR0, HIGH);
digitalWrite(PinR1,HIGH);
}
}
}
14
En cada condición antes de encender los segmentos, utilizamos la función de
apagar ya que, si no, no puede hacer ningún cambio.
15