domingo, 16 de agosto de 2015


DIFERENCIA

Un circuito combinacional es un circuito cuya salida es función exclusivamente del estado de sus entradas. Está compuesto por puertas lógicas y no deben presentar realimentación, es decir, ninguna salida de ningún componente debe usarse como entrada del circuito.
El comportamiento de un circuito secuencial se determina mediante las entradas, las salidas y los estados de sus flip-flops. Tanto las salidas como el estado siguiente son función de las entradas y del estado presente. El análisis de los circuitos secuenciales consiste en obtener una tabla o un diagrama de las secuencias de tiempo de las entradas, salidas y estados internos. También es posible escribir expresiones booleanas que describen el comportamiento de los circuitos secuenciales. Sin embargo, esas expresiones deben incluir la secuencia de tiempo necesaria ya sea en forma directa o indirecta.

CIRCUITOS COMBINACIONALES

En un circuito combi nacional el estado lógico de sus salidas, en cada instante depende únicamente del estado de sus entradas. Por consiguiente, en este tipo de circuitos no es necesario tener en cuenta la noción de tiempo. Son funciones lógicas, representables en una tabla de verdad y simplificables mediante la lógica booleana, o por métodos como el de Karnaugh.
En estos sistemas no es posible almacenar el estado de las entradas en un instante y utilizarlo para tomar decisiones posteriormente.
Las aplicaciones de los circuitos combi nacionales son de dos tipos:

1. Realización de funciones lógicas, por ejemplo en sistemas de control, donde se procesan entradas y con ello se dan salidas a relés, válvulas .

2. Realización de sistemas en los que, mediante ciertos códigos, se procesan datos representativos de magnitudes numéricas, los cuales se transforman y se someten a operaciones lógicas o aritméticas.

APLICACIONES DE LOS CIRCUITOS COMBINACIONALES.

CIRCUITOS DISPONIBLES COMERCIALMENTE.

En el caso de funciones sencillas resulta apropiado realizar los circuitos mediante puertas lógicas. Pero si se trata de funciones más complejas, es más eficaz emplear la gran variedad de circuitos integrados existentes, en combinación con las puertas.
Se intenta sustituir las puertas lógicas por bloques más complejos. El criterio de minimización pretende, de esta manera, conseguir el menor número posible de circuitos integrados.

Los más importantes son:

Comparadores

Sumador total y semisumador

Codificadores

Decodificadores

Multiplexores

Demultiplexores

CIRCUITOS SECUENCIALES

En un circuito secuencial el estado de sus salidas depende del estado de sus entradas, pero también depende del estado interno del circuito y de la secuencia con que se introduzcan sus entradas.

Se dice que tienen memoria. Ejemplos son: los contadores de impulsos, una conexión telefónica, la combinación de apertura de una caja fuerte ...

Los circuitos secuenciales más elementales son los vio estables, que son circuitos construidos a partir de puertas lógicas, y que son capaces de almacenar información binaria de un bit .

 2.1. BIESTABLES (flip-flop)

Un vio estable, también llamado (flip-flopen inglés), es un dispositivo electrónico capaz de permanecer en un estado determinado o en el contrario durante un tiempo indefinido. Esta característica es ampliamente utilizada en electrónica digital para memorizar información.

El paso de un estado a otro se realiza variando sus entradas. Dependiendo del tipo de dichas entradas los vio estables se dividen en:

•           Asíncronos: sólo tienen entradas de control. El más empleado es el vio estable RS.

Un vio estable asíncrono tiene poca utilidad o se utiliza en aplicaciones donde realiza una función individualizada. La mayoría de los vio estables comercializados son síncronos o como tales forman un conjunto con una función muy específica, como contadores o registros.


•           Síncronos: además de las entradas de control posee una entrada de sincronismo o de reloj. Si las entradas de control dependen de la de sincronismo se denominan síncronas y en caso contrario asíncronas. Por lo general, las entradas de control asíncronas prevalecen sobre las síncronas.

La entrada de sincronismo puede ser activada por nivel (alto o bajo) o por flanco (de subida o de bajada).

Un vio estable es activado por nivel si sólo es necesario que esté presente un valor característico (nivel lógico) de tensión en su entrada de reloj, para que al presentar un nivel lógico en su entrada de información el vi estable se dispare.

FLIP-FLOP.

1.     Definición.

Los circuitos secuenciales son aquellos en los cuales su salida depende de la entrada presente y pasada. Dentro de estos se tienen a los FLIP-FLOP estos son dispositivos con memoria más comúnmente utilizados.


2.     Características.


Un Flip-flop puede tener dos tipos de entradas: síncronas y asíncronas.
Las entradas asíncronas son aquellas que modifican la salida nada más produciendo el cambio en la entrada.

Las entradas síncronas son aquellas donde una vez que sea introducido el dato en ellas, hay que esperar un pulso exterior del clock para que la salida quede afectada según ese dato introducido en la entrada. El CLOCK es la entrada que gobierna las entradas síncronas de un Flip-flop al recibir un impulso.
Mediante una sola línea se pueden gobernar varios Flip-flops haciendo que los cambios de estado en sus salidas se produzcan de manera síncrona o simultánea.
El gobierno del clock puede ser por nivel o por flanco.

Existe un tipo de Flip-flop llamado maestro-esclavo que consta esencialmente de dos flip-flop seguidos, uno gobernado por el nivel 1 (maestro), y el otro por el flanco de bajada (esclavo).
Cuando llega el nivel 1 al clock actúa el primer flip-flop y su salida en ese momento depende de las entradas del dato y cuando llega el flanco de bajada del clock, se actúa el segundo flip-flop y se da salida al exterior al dato contenido en ese momento en la salida del primer flip-flop. 

3.     Cuantos hay

Flip-Flop S-R (Set-Reset).

 Utiliza dos compuertas NOR. S y R son las entradas, mientras que Q y Q’ son las salidas (Q es generalmente la salida que se busca manipular.)


Como existen varias formas de implementar un Flip-Flop S-R (y en general cualquier tipo de Flip-Flop) se utilizan diagramas de bloque que representen al Flip-Flop. Para describir el funcionamiento de un FF se utilizan las llamadas Tablas de Estado y las Ecuaciones Características.

Flip-Flop T

El Flip-flop T cambia de estado en cada pulso de T. El pulso es un ciclo completo de cero  a 1. Las siguientes dos figuras muestran el diagrama de bloque y una implementación del FF T mediante un FF S-R y compuertas adicionales.



Las dos entradas del FF S-R están conectadas a compuertas AND, ambas conectadas a su vez a la entrada T. Además, la entrada Q está conectada a R y Q’ a S. Esta conexión es así para permitir que el FF S-R cambié de estado cada que se le mande un dato a T.

Tabla de estado para el FF T

T
Q
Q+
0
0
0
0
1
1
1
0
1
1
1
0

Flip-Flop J-K

El flip-flop J-K es una mezcla entre el flip-flop S-R y el flip-flop T. Esto ocurre de la siguiente manera:

En J=1, K=1 actúa como Flip-Flop T

De otra forma, actúa como Flip-Flop S-R 

El siguiente diagrama de bloque es el perteneciente el FF J-K


La tabla de estado aparece a continuación, J=1 y K=1 sí son válidos.

Tabla de estado del FF J-K

J
K
Q
Q+
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0


Flip-Flop D (Delay)

El flip-flop D  es uno de los FF más sencillos. Su función es dejar pasar lo que entra por D, a la salida Q, después de un pulso del reloj. Es, junto con el FF J-K, uno de los flip-flops mas comunes con reloj. Su tabla de estado se muestra a continuación: 

D
Q
Q+
0
0
0
0
1
0
1
0
1
1
1
1

 De la tabla se infiere que la ecuación característica para el FF D es: Q+= D. El siguiente diagrama de bloques representa este flip-flop.  


 COMPORTAMIENTO MONOESTABLE, BIESTABLE, ASTABLE Y METAESTABLE

·         Circuitos Monoestables: Estos circuitos cambian de estado sólo si se mantiene la señal de entrada (nivel alto o bajo), cuando ésta se quita, la salida regresa a su estado anterior, es decir poseen un sólo estado estable y otro meta estables.

·         Circuitos Aestables: Son circuitos gobernados por una red de tiempo R-C (Resistencia-Capacitor) y un circuito de realimentación, a diferencia de los anteriores se puede decir que no poseen un estado estable sino dos meta estables

·         Circuitos Bi estables o Flip-Flop (FF): Son aquellos que cambian de estado cada vez que reciben una señal de entrada (ya sea nivel bajo o alto), es decir retienen el dato de salida aunque desaparezca el de entrada, poseen dos estados estables. 


En casi todos los tipos de equipo digital se encuentran flip-flops programados o conectados como contadores, usándose no solamente como contadores sino como equipo para dar la secuencia de operación, división de frecuencias, así como para manipulación matemática.

En el sentido más elemental, los contadores son sistemas de memoria que “recuerdan” cuántos pulsos de reloj han sido aplicados en la entrada. La secuencia en que esta información se almacena depende de las condiciones de la aplicación y del criterio del diseñador de equipo lógico. Muchos de los contadores más comunes se encuentran disponibles en paquetes de circuitos integrados.

Son circuitos digitales lógicos secuénciales de salida binaria o cuenta binaria, característica de temporización y de memoria, por lo cual están constituidos a base de flip-flops.

CARACTERÍSTICAS IMPORTANTES

o    Un número máximo de cuentas (módulo del contador)

o    Cuenta ascendente o descendente.

o    Operación síncrona o asíncrona.

o    Autónomos o de auto detención.


UTILIDAD

Se utilizan para contar eventos.
Ejemplos:

o    número de pulsos de reloj.

o    medir frecuencias.

o    Se utilizan como divisores de frecuencia y para almacenar datos. Ejemplo: en un reloj digital.

o    Se utilizan para direccionamiento secuencial y algunos circuitos aritméticos.

Registros

Los registros son circuitos secuenciales construidos a base de Flip-Flops los cuales permiten almacenamiento de información. Generalmente, los registros están construidos a base de Flip-Flops tipo D, debido a que siempre que a la entrada se coloca un 1 lógico, se desea obtener a la salida Q un 1 lógico, y siempre que a la entrada se coloca un 0 lógico, se desea obtener a la salida Q un 0 lógico. Un registro puede presentar diferentes funcionalidades definida por el desplazamiento de la información y la carga en paralelo de la información.

Los registros, pueden tener diferentes movimientos, los cuales dependen de su forma de entrada y salida de datos.

En la figura anterior se muestra los diferentes movimientos de datos en un registro. La primera imagen corresponde a entrada en paralelo, salida en paralelo. La segunda imagen corresponde a entrada en serie con desplazamiento a la derecha, salida en paralelo. La tercera imagen corresponde a entrada en serie con desplazamiento a la izquierda, salida en paralelo. La cuarta imagen corresponde a entrada en serie con desplazamiento a la derecha, salida en serie. La quinta imagen corresponde a entrada en serie con desplazamiento a la izquierda, salida en serie. La sexta imagen corresponde a entrada en paralelo, salida en serie con desplazamiento a la derecha.

Registros con Entrada y Salida en Paralelo

Un registro con entrada y salida en paralelo, tiene como objetivo, capturar un dato en paralelo y colocarlo directamente en la salida del registro. La siguiente figura presenta el diseño de dicho registro.

Registros de Desplazamiento con Entrada y Salida en Serie

Un registro con entrada y salida en serie, tiene como objetivo, capturar un dato bit a bit dado una frecuencia. Con este tipo de implementaciones, la entrada y la salida del registro son solo un bit.

Los registros de desplazamiento pueden tener  entrada de datos en el bit de menor peso, de esta forma los bits a la salida se obtienen en el bit de mayor peso. Este tipo de desplazamiento, es un desplazamiento a la izquierda. Este desplazamiento se puede representar de la siguiente forma:

En la representación anterior, se inicializa las salidas Q en 0. Suponiendo que se ingresa por el bit de menor peso un uno, en el siguiente flanco de reloj, se desplaza hacia la izquierda todos los bits, obteniendo un desplazamiento por cada flanco de reloj.

La siguiente figura presenta un registro de desplazamiento hacia la izquierda

Por otro lado, los registros de desplazamiento pueden tener  entrada de datos en el bit de mayor  peso, de esta forma los bits a la salida se obtienen en el bit de menor peso. Este tipo de desplazamiento, es un desplazamiento a la derecha. Este desplazamiento se puede representar de la siguiente forma:


En la representación anterior, se inicializa las salidas Q en 0. Suponiendo que se ingresa por el bit de mayor peso un uno, en el siguiente flanco de reloj, se desplaza hacia la derecha todos los bits, obteniendo un desplazamiento por cada flanco de reloj.

La siguiente figura presenta un registro de desplazamiento hacia la derecha

Registros de Desplazamiento en Cascada

El registro 74194, contiene en su configuración diferentes posibilidades. Este registro, puede hacer carga en paralelo, desplazamiento a la derecha y desplazamiento a la izquierda. Este circuito además es apropiado para hacer conexiones en cascada, de esa forma, puede implementarse registro de más de 4 bits.

La siguiente figura muestra una implementación de un registro de 8 bits construido a base de registros 74194, los cuales son registros de 4 bits.



Descripción y características y tipo de memoria.

ELEMENTOS DE MEMORIA

Como ya hemos comentado, la diferencia básica entre la lógica combi nacional y secuencial radica en la propiedad de almacenamiento de esta última. Esta propiedad puede ser alcanzada de dos formas diferentes:

•De forma implícita, a través de lazos de realimentación directa (con o sin elementos de retraso)

•De forma explícita, a través de elementos de memoria.

Por lo tanto, en este tema nos centraremos en las principales características y tipos de estos elementos, que nos podemos encontrar en los sistemas secuenciales.

También presentaremos los grandes sistemas de almacenamiento, y sus características, que nos podemos encontrar en sistemas complejos como sistemas informáticos.

1. Introducción. Definiciones y Clasificaciones.

Entre las muchas definiciones que podemos encontrar de elemento de memoria, vamos a elegir la siguiente:

Un elemento de memoria es aquel elemento capaz de almacenar un estado durante un tiempo determinado.

El primer elemento está formado por dos inversores realimentados de tal forma que el valor a la entrada del primer inversor es el mismo que a la salida del segundo inversor, estando


de acuerdo con el lazo de realimentación. Por lo tanto, mientras que el dato de entrada no cambie, el dato de salida permanecerá sin cambiar, es decir, quedará almacenado. De igual forma podemos comprobar que una simple línea de conexión muestra el mismo comportamiento, de tal forma que la tensión es almacenada en el condensador parásito asociado a dicha línea.

La diferencia entre ambos elementos se encuentra en el tiempo que permanece almacenado el dato, característica que se suele denominar duración de la información . En el primer elemento, la información permanecerá almacenada indefinidamente hasta que el dato de entrada cambie su valor. En cambio, en el segundo caso, de la misma forma que hay un con- densador parásito, también existe una resistencia parásita, creando un camino de descarga a través de la resistencia. Como el dato no es regenerado por ningún elemento (como sucede con los inversores en el primer elemento), cuando se sobrepasa un determinado tiempo, que se denomina tiempo de descarga y suele considerarse proporcional al producto RC, la tensión almacenada no es lo suficiente alta como para identificar un nivel lógico o cambia su valor. A este tipo de almacenamiento se denomina almacenamiento dinámico; mientras que cuando el dato permanece durante un tiempo indefinido, el almacenamiento se denomina almacena- miento estático . En el caso del almacenamiento dinámico, para evitar la pérdida de la información es necesario volver a almacenar la información de forma periódica (antes de superar el tiempo de descarga), lo cual se conoce como ciclo de refresco.

Otra propiedad que podemos encontrar en los ejemplos anteriores consiste en un almacenamiento instantáneo. Cuando el dato de entrada cambia, el valor almacenado en el elemento de memoria cambia de forma instantánea (después de que se haya superado el retraso impuesto por el elemento), como podemos ver en la figura 3.2. A esta propiedad se la conoce con el nombre de transparencia, diciéndose entonces que estamos considerando un elemento de memoria transparente.



Figura 3.2.- Formas de onda correspondiente a un elemento de memoria transparente

En contraposición a este tipo de elementos podemos encontrar elementos de memoria no transparentes. En este tipo de elementos, los cambios correspondientes a los datos almacena- dos no obedecen directamente a los cambios de los datos de entrada, sino que solamente se producirán cuando lo indique un señal de control. Así, los elementos mostrados en la figura 3.3(a) pertenecen a este grupo.

Como podemos ver en la figura 3.3(b), la señal de control C controla un conmutador que permite o no el paso del dato de entrada al resto del elemento. Así, mientras C tenga un valor bajo, evitando el paso del dato de entrada, el elemento mantiene almacenado el dato anterior (en el caso de las formas de onda se ha supuesto un nivel bajo). En esta fase de operación se dice que el elemento es opaco o está en su fase opaca, de tal forma que se pierde toda influencia respecto a los datos de entrada. En cambio, cuando la señal C permite el paso del dato de


  
No podemos olvidar que estamos estudiando una parte de la Electrónica Digital, y por lo tanto, nuestros datos podrán tener dos valores: ‘1’ ó ‘0’ lógico. Entonces, los elementos de memoria deben poder almacenar dos estados, correspondientes a los dos valores lógicos. Este es el motivo por el cual a los elementos de memoria que utilizamos en los sistemas secuencia- les también se les conozca como vi estables. A partir de ahora utilizaremos los conceptos de elemento de memoria o vi estable de forma totalmente equivalente.

Una vez realizada esta puntualización vamos a estudiar los principales tipos de vi estables que podemos encontrar. Para ello, se han dividido, utilizando los criterios de transparencia, en vi estables transparentes, latches y flip-flops.

 Elementos de Memoria Transparentes.
En primer lugar consideraremos los elementos de memoria transparentes, es decir, los vi estables que carecen de señal de control.

jueves, 9 de julio de 2015


PRACTICAS DE ARDUINO (mega 2560)


POTENCIOMETRO
El potenciómetro es un dispositivo electromecánico que consta de una resistencia de valor fijo sobre la que se desplaza un contacto deslizante, el cursor, que la divide eléctricamente.

Conclusión:

En esta práctica se utilizo un potenciómetro y dos leds al utilizar el potenciómetro bajamos el voltaje y lo subimos con el potenciómetro y se reflejaba en el led se configuraron las salidas del potenciómetro paraqué el potenciómetro regule el voltaje y sea el que le asigne la salida hacia al led.


LISTADO DE COMPONENTES:
  • 1 Potenciómetro de 10kΩ
  • 2 Diodo LED
  • Varios cables 
CODIGO: IMAGEN DEL CIRCUITO:
int potPin=A2;
int ledPin=13;
int val=0;
void setup()
{
pinMode(ledPin,OUTPUT);
}
void loop()
{
val=analogRead(potPin);
digitalWrite(ledPin,HIGH);
delay(val);
digitalWrite(ledPin,LOW);
delay(val);
}


CODIFICADOR

Se trata de encender y apagar 3 LEDs colocados en las salidas 23,24,26,28,30 Y 32 (PIN23, PIN24,PIN26,PIN28,PIN30 Y PIN32 ) con una cadencia de 200 ms. Las variables asignadas a cada led son ledPin1, ledPin2 y ledPin3.

Conclusión:
En esta práctica utilizamos tres lets, tres resistencias y cables, configuramos la salida para cada led de igual manera lo único que cambia de cada led es el delay que es el tiempo asignado para cada led en este caso cada led tiene diferente delay para que uno prenda más tiempo y que también solo uno parpadee antes de pasar al siguiente led esto es casi lo mismo como están configurado los semáforos. 
 
LISTADO DE COMPONENTES:
  • 3 OHMS
  • 3 LET’S
CODIGO: IMAGEN DEL CIRCUITO:
int ledPin1=6;
int ledPin2=7;
int ledPin3=8;


void setup()
{
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}
void loop()
{
digitalWrite(ledPin1, HIGH);
delay(200);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(200);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
delay(200);
digitalWrite(ledPin3, LOW);
}




DECODIFICADOR



Un decodificador o descodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada (natural,BCD , etc.) de N bits de entrada y M líneas de salida
Conclusión:

En la práctica siguiente utilizamos mas led que en este caso son seis leds porque no utilizamos ningún display por eso utilizamos seis leds que son los números cada led se le asigna un numero y así es como u utilizamos el decodificador.

LISTADO DE COMPONENTES:
6 led
6 ohms
circuitos


CODIGO:
int pin23=23;
int pin24=24;
int pin26=26;
int pin28=28;
int pin30=30;
int pin32=32;
int timer=200;


void setup()
{
pinMode(pin23,OUTPUT);
pinMode(pin24,OUTPUT);
pinMode(pin26,OUTPUT);
pinMode(pin28,OUTPUT);
pinMode(pin30,OUTPUT);
pinMode(pin32,OUTPUT);
}

void loop()
{
digitalWrite(pin23,HIGH);
delay(timer);
digitalWrite(pin23,LOW);
delay(timer);
digitalWrite(pin24,HIGH);
delay(timer);
digitalWrite(pin24,LOW);
delay(timer);
digitalWrite(pin26,HIGH);
delay(timer);
digitalWrite(pin26,LOW);
delay(timer);
digitalWrite(pin28,HIGH);
delay(timer);
digitalWrite(pin28,LOW);
delay(timer);
digitalWrite(pin30,HIGH);
delay(timer);
digitalWrite(pin30,LOW);
delay(timer);
digitalWrite(pin32,HIGH);
delay(timer);
digitalWrite(pin32,LOW);
delay(timer);
digitalWrite(pin30,HIGH);
delay(timer);
digitalWrite(pin30,LOW);
delay(timer);
digitalWrite(pin28,HIGH);
delay(timer);
digitalWrite(pin28,LOW);
delay(timer);
digitalWrite(pin26,HIGH);
delay(timer);
digitalWrite(pin26,LOW);
delay(timer);
digitalWrite(pin24,HIGH);
delay(timer);
digitalWrite(pin24,LOW);
delay(timer);
}

CICUITOS ARITMETICOS


DEFINICIÓN


Estos tienen como objetivo realizar operaciones aritméticas en formato binario o BCD, punto fijo o punto flotante. Dependiendo de la aplicación se utilizarán unos u otros.

Son dispositivos MSI que pueden realizar operaciones aritméticas (suma, resta, multiplicación y división) con números binarios. De todos los dispositivos, nos centraremos en los comparadores de magnitud, detectores y generadores de paridad, sumadores y ALU’s; (El diseño MSI surgió gracias a los avances en la tecnología de integración. Estos avances abarataron los costes de producción, y permitieron el desarrollo de circuitos más generales.)

EJERCICIO


En este ejercicio se realizo un circuito donde presionando un botón se realizara una función aritmética, la suma y en el display será representada de manera binaria. La suma va del 0 al 9 y se cicla.

MATERIALES
1 Display de 7 dígitos (cátodo común)
1 Resistencia 10KO
Arduino Mega 2560
1 Push botón

CIRCUITO





CÓDIGO

int pinBtnS = 3;
int pinA = 11;
int pinB = 10;
int pinC= 9;
int pinD = 8;
int pinE = 7;
int pinF = 6;
int pinG = 5;


int ANODOCOMUN = 0;
int CATODOCOMUN = 1;

int anterior = 0;
int estadoS = 0;
int estadoR = 0;
int number = 0;

void setup()
{
  pinMode(pinBtnS, INPUT);
  pinMode(pinA, OUTPUT);
  pinMode(pinB, OUTPUT);
  pinMode(pinC, OUTPUT);
  pinMode(pinD, OUTPUT);
  pinMode(pinE, OUTPUT);
  pinMode(pinF, OUTPUT);
  pinMode(pinG, OUTPUT);
}

void writeNumber(int number, int type = 1, int pinA = 11, int pinB = 10, int pinC = 9, int pinD = 8, int pinE = 7, int pinF = 6, int pinG = 5)
{
  switch(number)
  {
    default:
    case 0:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, HIGH);
      }

      break;

    case 1:
      if(type == 0)
      {
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
      }
      break;

    case 2:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, LOW);
      }
      break;

    case 3:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, LOW);
      }
      break;

    case 4:
      if(type == 0)
      {
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;

    case 5:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;

    case 6:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;

    case 7:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
      }
      break;
      case 8:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;
    case 9:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      else
      break;
  }
}
void loop()
{
  estadoS = digitalRead(pinBtnS);
  if(estadoS && anterior == 0)
  {
    number++;
    if(number == 10)
      number = 0;
  }
  anterior = estadoS;
  writeNumber(number, ANODOCOMUN, pinA, pinB, pinC, pinD, pinE, pinF, pinG);
}