viernes, 24 de julio de 2015

Comparador de magnitudes

Comparadores de magnitud

Un comparador de magnitud es un circuito combinacional que compara dos números, A y B y determina sus magnitudes relativas. La salida de la comparación se especifica por tres variables binarias que indican si A>B, A=B o A
Para determinar si A es mayor o menor que B, se inspeccionan las magnitudes relativas de pares de dígitos significativos empezando desde la posición mas significativa. Si los dos dígitos son iguales, el par de dígitos de la siguiente posición significativa más baja se comparan. Esta comparación continúa hasta que se alcanza un par de dígitos desiguales. Si el dígito correspondiente de A es 0 y B es 1, se tiene que A < B.
Funciones para A mayor o menor que B La comparación secuencial puede expresarse en forma lógica por las siguientes dos funciones booleanas:
(A>B)= A3B3’ + A2B2’X3 + A1B1’X3X2 + A0B0’X3X2X1
(A<B)= A3’B3 + A2’B2X3 + A1’B1X3X2 + A0’B0X3X2X1

Circuito Comparador
Los circuitos comparadores son integrados que se encargan de evaluar dos números en sistema binario conformados por cuatro dígitos cada uno. Dichos circuitos nos informan si los números son diferentes o iguales por medio de tres salidas.


La siguiente imagen contiene un esquema que indica el orden de los pines de la referencia mas común de integrados comparadores que es la 7485.


Construccion de circuito




Materiales

·          - Circuito integrado 7485
·         - 3 led’s
·         - 3 resistencias de 330 Ω
·         - Interruptor de 8 vías (Nosotros lo haremos programando los pulsos en el arduino)
·         Arduino

Descripción
En este proyecto vamos a construir un sistema comparador, este se encarga de comparar 2 números en su sistema binario con un interruptor de 8 vías creando los pulsos ya sean high o Low correspondiendo a “0” y a “1”. Este interruptor lo vamos a sustituir con la tablilla arduino ya que con este dispositivo puedes generar dichos pulsos sin la necesidad de utilizar un interruptor.


Estas son entradas del circuito integrado estas van a estar a los pines 15, 13, 12, 10 ya que son aquí donde vamos introducir los pulsos binarios que uniéndolos van a ser el primer número a comparar.
En las entradas 1, 14, 11, 9 es donde vamos a introducir los pulsos binarios del segundo número.

Los pines 5, 6, 7 son las salidas donde nos va comparar los 2 números introducíos en en las entradas y nos dira si “es mayor que”, “Menor que” y una “igualdad”. En el pin 5 será “A>B” en el 5 abra “A=B” y en el 7 “A<B”. Estas salidas irán conectadas a 3 led los cuales nos indicaran cual de la 3 salidas se activó.
Posición de los switch
A=0001
B=0010
A<B Se enciende el tercer led




A=0010
B=0001
A>B Se enciende el primer led




A=0010
B=0010
A=B se enciende el led de en medio

Arduino
En arduino vamos a programar los pulsos binarios  que van salir para convertirlos en números binarios y compararlos y así decidir cuál es mayor según el circuito integrado y los led indicadores.
Las salidas 22, 24, 26, 28 irán conectadas al circuito integrado en los pines 15, 13, 12, 10
Las salidas 31, 33, 35, 37 irán conectadas al circuito integrado en los pines 1, 14, 11, 9

int a1=22;
int a2=24;
int a3=26;
int a4=28;
//Primer número que sería el numero A
int b1=31;
int b2=33;
int b3=35;
int b4=37;
//Segundo numero B
 void setup(){
   pinMode(a1, OUTPUT);
   pinMode(a2, OUTPUT);
   pinMode(a3, OUTPUT);
   pinMode(a4, OUTPUT);
   pinMode(b1, OUTPUT);
   pinMode(b2, OUTPUT);
   pinMode(b3, OUTPUT);
   pinMode(b4, OUTPUT);
 }
 void loop()
 {
   digitalWrite(a1,HIGH);
   digitalWrite(a2,LOW);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,HIGH);
   digitalWrite(b2,LOW);
   digitalWrite(b3,LOW);
   digitalWrite(b4,LOW);
   //A=0001    B=0001
   delay(100);
   digitalWrite(a1,HIGH);
   digitalWrite(a2,LOW);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,LOW);
   digitalWrite(b2,LOW);
   digitalWrite(b3,LOW);
   digitalWrite(b4,LOW);
   //A=0001   B=0000
   delay(100);
     
   digitalWrite(a1,LOW);
   digitalWrite(a2,LOW);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,HIGH);
   digitalWrite(b2,LOW);
   digitalWrite(b3,LOW);
   digitalWrite(b4,LOW);
   //A=0000    B=0001
   delay(100);
  
   digitalWrite(a1,LOW);
   digitalWrite(a2,LOW);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,LOW);
   digitalWrite(b2,HIGH);
   digitalWrite(b3,LOW);
   digitalWrite(b4,LOW);
   //A=0000   B=0010
   delay(100);
  
   digitalWrite(a1,HIGH);
   digitalWrite(a2,HIGH);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,LOW);
   digitalWrite(b2,LOW);
   digitalWrite(b3,LOW);
   digitalWrite(b4,LOW);
   //A=0011   B=0000
   delay(100);
  
   digitalWrite(a1,HIGH);
   digitalWrite(a2,LOW);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,HIGH);
   digitalWrite(b2,HIGH);
   digitalWrite(b3,LOW);
   digitalWrite(b4,LOW);
   //A=0001    B=0011
   delay(100);
  
   digitalWrite(a1,HIGH);
   digitalWrite(a2,LOW);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,HIGH);
   digitalWrite(b2,HIGH);
   digitalWrite(b3,HIGH);
   digitalWrite(b4,LOW);
   //A=0001   B=0111
   delay(100);
  
   digitalWrite(a1,LOW);
   digitalWrite(a2,LOW);
   digitalWrite(a3,LOW);
   digitalWrite(a4,LOW);
   digitalWrite(b1,LOW);
   digitalWrite(b2,LOW);
   digitalWrite(b3,LOW);
   digitalWrite(b4,LOW);
   //A=0000   B=0000
   delay(1000);
  
 }



Conclusión

Mi conclusión es que este circuito serviría mucho en varios casos al momento de armar una maquina en la industria ya que puede decidir cuál es mayor o menor y ayudaría a facilitar el trabajo, además te ayudaría a ahorrar componentes utilizando este circuito integrado. 


No hay comentarios.:

Publicar un comentario